diff options
Diffstat (limited to 'lib/Target/PTX/PTXTargetMachine.cpp')
-rw-r--r-- | lib/Target/PTX/PTXTargetMachine.cpp | 24 |
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; } |