Implement use of new IntrinsicLowering interface.
authorReid Spencer <rspencer@reidspencer.com>
Mon, 29 Jan 2007 17:51:02 +0000 (17:51 +0000)
committerReid Spencer <rspencer@reidspencer.com>
Mon, 29 Jan 2007 17:51:02 +0000 (17:51 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33619 91177308-0d34-0410-b5e6-96231b3b80d8

lib/ExecutionEngine/Interpreter/Interpreter.cpp
lib/Target/CBackend/CBackend.cpp

index d39b5e1cf6ceeac183fae22eb9a40c54f59221f4..2b805ada4c16339453407f327c324db874b6180f 100644 (file)
@@ -66,7 +66,7 @@ Interpreter::Interpreter(Module *M) : ExecutionEngine(M), TD(M) {
   initializeExternalFunctions();
   emitGlobals();
 
-  IL = new IntrinsicLowering();
+  IL = new IntrinsicLowering(TD);
 }
 
 Interpreter::~Interpreter() {
index 0c808131b602c7664463e6c9b0d5b6c7197f0479..a6d3fb52279c2b7bab4d48c8b62738d7463380f4 100644 (file)
@@ -32,6 +32,7 @@
 #include "llvm/Transforms/Scalar.h"
 #include "llvm/Target/TargetMachineRegistry.h"
 #include "llvm/Target/TargetAsmInfo.h"
+#include "llvm/Target/TargetData.h"
 #include "llvm/Support/CallSite.h"
 #include "llvm/Support/CFG.h"
 #include "llvm/Support/GetElementPtrTypeIterator.h"
@@ -70,16 +71,18 @@ namespace {
   /// module to a C translation unit.
   class CWriter : public FunctionPass, public InstVisitor<CWriter> {
     std::ostream &Out;
-    IntrinsicLowering IL;
+    IntrinsicLowering *IL;
     Mangler *Mang;
     LoopInfo *LI;
     const Module *TheModule;
     const TargetAsmInfo* TAsm;
+    const TargetData* TD;
     std::map<const Type *, std::string> TypeNames;
 
     std::map<const ConstantFP *, unsigned> FPConstantMap;
   public:
-    CWriter(std::ostream &o) : Out(o), TAsm(0) {}
+    CWriter(std::ostream &o) : Out(o), IL(0), Mang(0), LI(0), TheModule(0), 
+                               TAsm(0), TD(0) {}
 
     virtual const char *getPassName() const { return "C backend"; }
 
@@ -1416,7 +1419,9 @@ bool CWriter::doInitialization(Module &M) {
   // Initialize
   TheModule = &M;
 
-  IL.AddPrototypes(M);
+  TD = new TargetData(&M);
+  IL = new IntrinsicLowering(*TD);
+  IL->AddPrototypes(M);
 
   // Ensure that all structure types have names...
   Mang = new Mangler(M);
@@ -2348,7 +2353,7 @@ void CWriter::lowerIntrinsics(Function &F) {
             if (CI != &BB->front())
               Before = prior(BasicBlock::iterator(CI));
 
-            IL.LowerIntrinsicCall(CI);
+            IL->LowerIntrinsicCall(CI);
             if (Before) {        // Move iterator to instruction after call
               I = Before; ++I;
             } else {