For PR786:
[oota-llvm.git] / lib / Target / CBackend / CTargetMachine.h
index 56c5367231248ca7de7a4fe32186011b15097716..ad0959f48211797326a529e1bef320d8e51846a7 100644 (file)
 #define CTARGETMACHINE_H
 
 #include "llvm/Target/TargetMachine.h"
+#include "llvm/Target/TargetData.h"
 
 namespace llvm {
-class IntrinsicLowering;
 
 struct CTargetMachine : public TargetMachine {
-  CTargetMachine(const Module &M, IntrinsicLowering *IL) :
-    TargetMachine("CBackend", IL, M) {}
+  const TargetData DataLayout;       // Calculates type size & alignment
+
+  CTargetMachine(const Module &M, const std::string &FS)
+    : TargetMachine("CBackend", M),
+      DataLayout("CBackend", &M) {}
 
   // This is the only thing that actually does anything here.
   virtual bool addPassesToEmitFile(PassManager &PM, std::ostream &Out,
-                                   CodeGenFileType FileType);
+                                   CodeGenFileType FileType, bool Fast);
 
   // This class always works, but shouldn't be the default in most cases.
   static unsigned getModuleMatchQuality(const Module &M) { return 1; }
+  
+  virtual const TargetData       *getTargetData() const { return &DataLayout; }
 };
 
 } // End llvm namespace