summaryrefslogtreecommitdiff
path: root/lib/Target/PTX/PTXTargetMachine.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Target/PTX/PTXTargetMachine.cpp')
-rw-r--r--lib/Target/PTX/PTXTargetMachine.cpp24
1 files changed, 18 insertions, 6 deletions
diff --git a/lib/Target/PTX/PTXTargetMachine.cpp b/lib/Target/PTX/PTXTargetMachine.cpp
index 1889df41dc..1e846e5059 100644
--- a/lib/Target/PTX/PTXTargetMachine.cpp
+++ b/lib/Target/PTX/PTXTargetMachine.cpp
@@ -12,20 +12,32 @@
//===----------------------------------------------------------------------===//
#include "PTX.h"
+#include "PTXMCAsmInfo.h"
#include "PTXTargetMachine.h"
+#include "llvm/PassManager.h"
#include "llvm/Target/TargetRegistry.h"
using namespace llvm;
-extern "C" void LLVMInitializePTXTarget()
-{
- // Register the target
+extern "C" void LLVMInitializePTXTarget() {
RegisterTargetMachine<PTXTargetMachine> X(ThePTXTarget);
+ RegisterAsmInfo<PTXMCAsmInfo> Y(ThePTXTarget);
}
+// DataLayout and FrameInfo are filled with dummy data
PTXTargetMachine::PTXTargetMachine(const Target &T,
const std::string &TT,
- const std::string &FS) :
- LLVMTargetMachine(T, TT)
-{
+ const std::string &FS)
+ : LLVMTargetMachine(T, TT),
+ DataLayout("e-p:32:32-i64:32:32-f64:32:32-v128:32:128-v64:32:64-n32:64"),
+ FrameInfo(TargetFrameInfo::StackGrowsDown, 2, -2),
+ InstrInfo(*this),
+ TLInfo(*this),
+ Subtarget(TT, FS) {
+}
+
+bool PTXTargetMachine::addInstSelector(PassManagerBase &PM,
+ CodeGenOpt::Level OptLevel) {
+ PM.add(createPTXISelDag(*this, OptLevel));
+ return false;
}