mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-09-24 23:28:41 +00:00
Introduce MCCodeGenInfo, which keeps information that can affect codegen
(including compilation, assembly). Move relocation model Reloc::Model from TargetMachine to MCCodeGenInfo so it's accessible even without TargetMachine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135468 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -22,19 +22,17 @@ extern "C" void LLVMInitializeAlphaTarget() {
|
||||
RegisterTargetMachine<AlphaTargetMachine> X(TheAlphaTarget);
|
||||
}
|
||||
|
||||
AlphaTargetMachine::AlphaTargetMachine(const Target &T, const std::string &TT,
|
||||
const std::string &CPU,
|
||||
const std::string &FS)
|
||||
: LLVMTargetMachine(T, TT, CPU, FS),
|
||||
AlphaTargetMachine::AlphaTargetMachine(const Target &T, StringRef TT,
|
||||
StringRef CPU,
|
||||
StringRef FS, Reloc::Model RM)
|
||||
: LLVMTargetMachine(T, TT, CPU, FS, RM),
|
||||
DataLayout("e-f128:128:128-n64"),
|
||||
FrameLowering(Subtarget),
|
||||
Subtarget(TT, CPU, FS),
|
||||
TLInfo(*this),
|
||||
TSInfo(*this) {
|
||||
setRelocationModel(Reloc::PIC_);
|
||||
}
|
||||
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Pass Pipeline Configuration
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
@@ -36,8 +36,8 @@ class AlphaTargetMachine : public LLVMTargetMachine {
|
||||
AlphaSelectionDAGInfo TSInfo;
|
||||
|
||||
public:
|
||||
AlphaTargetMachine(const Target &T, const std::string &TT,
|
||||
const std::string &CPU, const std::string &FS);
|
||||
AlphaTargetMachine(const Target &T, StringRef TT,
|
||||
StringRef CPU, StringRef FS, Reloc::Model RM);
|
||||
|
||||
virtual const AlphaInstrInfo *getInstrInfo() const { return &InstrInfo; }
|
||||
virtual const TargetFrameLowering *getFrameLowering() const {
|
||||
|
@@ -65,3 +65,15 @@ extern "C" void LLVMInitializeAlphaMCSubtargetInfo() {
|
||||
extern "C" void LLVMInitializeAlphaMCAsmInfo() {
|
||||
RegisterMCAsmInfo<AlphaMCAsmInfo> X(TheAlphaTarget);
|
||||
}
|
||||
|
||||
MCCodeGenInfo *createAlphaMCCodeGenInfo(StringRef TT, Reloc::Model RM) {
|
||||
MCCodeGenInfo *X = new MCCodeGenInfo();
|
||||
X->InitMCCodeGenInfo(Reloc::PIC_);
|
||||
return X;
|
||||
}
|
||||
|
||||
extern "C" void LLVMInitializeAlphaMCCodeGenInfo() {
|
||||
TargetRegistry::RegisterMCCodeGenInfo(TheAlphaTarget,
|
||||
createAlphaMCCodeGenInfo);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user