mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-09-14 15:25:25 +00:00
formatted_raw_ostream is a wrapper over another stream to add column and line number tracking. It is used only for asm printing. This patch moves the its creation down to where we know we are printing assembly. This has the following advantages: * Simpler lifetime management: std::unique_ptr * We don't compute column and line number of object files :-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@234535 91177308-0d34-0410-b5e6-96231b3b80d8
44 lines
1.4 KiB
C++
44 lines
1.4 KiB
C++
//===-- CPPTargetMachine.h - TargetMachine for the C++ backend --*- C++ -*-===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
// This file declares the TargetMachine that is used by the C++ backend.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef LLVM_LIB_TARGET_CPPBACKEND_CPPTARGETMACHINE_H
|
|
#define LLVM_LIB_TARGET_CPPBACKEND_CPPTARGETMACHINE_H
|
|
|
|
#include "llvm/IR/DataLayout.h"
|
|
#include "llvm/Target/TargetMachine.h"
|
|
#include "llvm/Target/TargetSubtargetInfo.h"
|
|
|
|
namespace llvm {
|
|
|
|
class formatted_raw_ostream;
|
|
|
|
struct CPPTargetMachine : public TargetMachine {
|
|
CPPTargetMachine(const Target &T, StringRef TT, StringRef CPU, StringRef FS,
|
|
const TargetOptions &Options, Reloc::Model RM,
|
|
CodeModel::Model CM, CodeGenOpt::Level OL)
|
|
: TargetMachine(T, "", TT, CPU, FS, Options) {}
|
|
|
|
public:
|
|
bool addPassesToEmitFile(PassManagerBase &PM, raw_ostream &Out,
|
|
CodeGenFileType FileType, bool DisableVerify,
|
|
AnalysisID StartAfter,
|
|
AnalysisID StopAfter) override;
|
|
};
|
|
|
|
extern Target TheCppBackendTarget;
|
|
|
|
} // End llvm namespace
|
|
|
|
|
|
#endif
|