Revert my previous patch to make the valgrind bots happy.
[oota-llvm.git] / lib / Target / PTX / PTXTargetMachine.cpp
index 1889df41dcb378c9a0b284bae288ca7678e5c7a5..f62a5299a11d2341f1912972fc9bdc14fe91ad01 100644 (file)
 //===----------------------------------------------------------------------===//
 
 #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
+namespace llvm {
+  MCStreamer *createPTXAsmStreamer(MCContext &Ctx, formatted_raw_ostream &OS,
+                                   bool isLittleEndian, bool isVerboseAsm,
+                                   MCInstPrinter *InstPrint,
+                                   MCCodeEmitter *CE,
+                                   bool ShowInst);
+}
+
+extern "C" void LLVMInitializePTXTarget() {
   RegisterTargetMachine<PTXTargetMachine> X(ThePTXTarget);
+  RegisterAsmInfo<PTXMCAsmInfo> Y(ThePTXTarget);
+  TargetRegistry::RegisterAsmStreamer(ThePTXTarget, createPTXAsmStreamer);
 }
 
+// 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(Subtarget),
+    InstrInfo(*this),
+    TLInfo(*this),
+    Subtarget(TT, FS) {
+}
+
+bool PTXTargetMachine::addInstSelector(PassManagerBase &PM,
+                                       CodeGenOpt::Level OptLevel) {
+  PM.add(createPTXISelDag(*this, OptLevel));
+  PM.add(createPTXMFInfoExtract(*this, OptLevel));
+  return false;
 }