X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=lib%2FTarget%2FXCore%2FXCoreTargetMachine.h;h=a8addfc3e4290a552a12801e5fc6ee2feb214156;hb=4bc8e7e0c1ff0b4db669c04b3e7568ff31e30fdb;hp=701a6f1dfafcf2da79ebce5413dff283d3971155;hpb=d858e90f039f5fcdc2fa93035e911a5a9505cc50;p=oota-llvm.git diff --git a/lib/Target/XCore/XCoreTargetMachine.h b/lib/Target/XCore/XCoreTargetMachine.h index 701a6f1dfaf..a8addfc3e42 100644 --- a/lib/Target/XCore/XCoreTargetMachine.h +++ b/lib/Target/XCore/XCoreTargetMachine.h @@ -11,42 +11,36 @@ // //===----------------------------------------------------------------------===// -#ifndef XCORETARGETMACHINE_H -#define XCORETARGETMACHINE_H +#ifndef LLVM_LIB_TARGET_XCORE_XCORETARGETMACHINE_H +#define LLVM_LIB_TARGET_XCORE_XCORETARGETMACHINE_H -#include "llvm/Target/TargetMachine.h" -#include "llvm/Target/TargetData.h" -#include "XCoreFrameInfo.h" #include "XCoreSubtarget.h" -#include "XCoreInstrInfo.h" -#include "XCoreISelLowering.h" +#include "llvm/Target/TargetMachine.h" namespace llvm { class XCoreTargetMachine : public LLVMTargetMachine { + std::unique_ptr TLOF; XCoreSubtarget Subtarget; - const TargetData DataLayout; // Calculates type size & alignment - XCoreInstrInfo InstrInfo; - XCoreFrameInfo FrameInfo; - XCoreTargetLowering TLInfo; public: - XCoreTargetMachine(const Target &T, const std::string &TT, - const std::string &FS); - - virtual const XCoreInstrInfo *getInstrInfo() const { return &InstrInfo; } - virtual const XCoreFrameInfo *getFrameInfo() const { return &FrameInfo; } - virtual const XCoreSubtarget *getSubtargetImpl() const { return &Subtarget; } - virtual const XCoreTargetLowering *getTargetLowering() const { - return &TLInfo; - } - - virtual const TargetRegisterInfo *getRegisterInfo() const { - return &InstrInfo.getRegisterInfo(); + XCoreTargetMachine(const Target &T, const Triple &TT, StringRef CPU, + StringRef FS, const TargetOptions &Options, + Reloc::Model RM, CodeModel::Model CM, + CodeGenOpt::Level OL); + ~XCoreTargetMachine() override; + + const XCoreSubtarget *getSubtargetImpl() const { return &Subtarget; } + const XCoreSubtarget *getSubtargetImpl(const Function &) const override { + return &Subtarget; } - virtual const TargetData *getTargetData() const { return &DataLayout; } // Pass Pipeline Configuration - virtual bool addInstSelector(PassManagerBase &PM, CodeGenOpt::Level OptLevel); + TargetPassConfig *createPassConfig(PassManagerBase &PM) override; + + TargetIRAnalysis getTargetIRAnalysis() override; + TargetLoweringObjectFile *getObjFileLowering() const override { + return TLOF.get(); + } }; } // end namespace llvm