summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/PTX/PTXTargetMachine.h
diff options
context:
space:
mode:
authorEric Christopher <echristo@apple.com>2010-09-18 18:52:28 +0000
committerEric Christopher <echristo@apple.com>2010-09-18 18:52:28 +0000
commitdbb199d89b58f4c2f1060dc209cd04ceb077e564 (patch)
tree0c87059b82e54a3198b44be277e4fcccf7b1b90a /llvm/lib/Target/PTX/PTXTargetMachine.h
parenta573d19662fd30a55f8b731a7e98123d8450536f (diff)
downloadbcm5719-llvm-dbb199d89b58f4c2f1060dc209cd04ceb077e564.tar.gz
bcm5719-llvm-dbb199d89b58f4c2f1060dc209cd04ceb077e564.zip
Add the exit instruction to the PTX target.
Patch by Che-Liang Chiou <clchiou@gmail.com>! llvm-svn: 114294
Diffstat (limited to 'llvm/lib/Target/PTX/PTXTargetMachine.h')
-rw-r--r--llvm/lib/Target/PTX/PTXTargetMachine.h38
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
OpenPOWER on IntegriCloud