diff options
Diffstat (limited to 'llvm/lib/Target/PTX/PTXTargetMachine.h')
-rw-r--r-- | llvm/lib/Target/PTX/PTXTargetMachine.h | 38 |
1 files changed, 33 insertions, 5 deletions
diff --git a/llvm/lib/Target/PTX/PTXTargetMachine.h b/llvm/lib/Target/PTX/PTXTargetMachine.h index c447b874785..b1379b4cdb0 100644 --- a/llvm/lib/Target/PTX/PTXTargetMachine.h +++ b/llvm/lib/Target/PTX/PTXTargetMachine.h @@ -14,14 +14,42 @@ #ifndef PTX_TARGET_MACHINE_H #define PTX_TARGET_MACHINE_H +#include "PTXISelLowering.h" +#include "PTXInstrInfo.h" +#include "PTXSubtarget.h" +#include "llvm/Target/TargetData.h" +#include "llvm/Target/TargetFrameInfo.h" #include "llvm/Target/TargetMachine.h" namespace llvm { - class PTXTargetMachine : public LLVMTargetMachine { - public: - PTXTargetMachine(const Target &T, const std::string &TT, - const std::string &FS); - }; // class PTXTargetMachine +class PTXTargetMachine : public LLVMTargetMachine { + private: + const TargetData DataLayout; + TargetFrameInfo FrameInfo; + PTXInstrInfo InstrInfo; + PTXTargetLowering TLInfo; + PTXSubtarget Subtarget; + + public: + PTXTargetMachine(const Target &T, const std::string &TT, + const std::string &FS); + + virtual const TargetData *getTargetData() const { return &DataLayout; } + + virtual const TargetFrameInfo *getFrameInfo() const { return &FrameInfo; } + + virtual const PTXInstrInfo *getInstrInfo() const { return &InstrInfo; } + virtual const TargetRegisterInfo *getRegisterInfo() const { + return &InstrInfo.getRegisterInfo(); } + + virtual const PTXTargetLowering *getTargetLowering() const { + return &TLInfo; } + + virtual const PTXSubtarget *getSubtargetImpl() const { return &Subtarget; } + + virtual bool addInstSelector(PassManagerBase &PM, + CodeGenOpt::Level OptLevel); +}; // class PTXTargetMachine } // namespace llvm #endif // PTX_TARGET_MACHINE_H |