Move malloc/free lowering after tracing until lli supports
authorVikram S. Adve <vadve@cs.uiuc.edu>
Thu, 18 Oct 2001 18:20:20 +0000 (18:20 +0000)
committerVikram S. Adve <vadve@cs.uiuc.edu>
Thu, 18 Oct 2001 18:20:20 +0000 (18:20 +0000)
calls to external malloc/free functions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@893 91177308-0d34-0410-b5e6-96231b3b80d8

tools/llc/llc.cpp

index 76364aabc23ede95caf550d0df2c29b7fbf0b2fc..3761b3aa8920ee2ce7d2d2e7906d6062809847b9 100644 (file)
@@ -121,9 +121,6 @@ int main(int argc, char **argv) {
   // Build up all of the passes that we want to do to the module...
   vector<Pass*> Passes;
 
-  // Replace malloc and free instructions with library calls
-  Passes.push_back(new LowerAllocations(Target.DataLayout));
-
   // Hoist constants out of PHI nodes into predecessor BB's
   Passes.push_back(new HoistPHIConstants());
 
@@ -148,10 +145,16 @@ int main(int argc, char **argv) {
       } else {
         Passes.push_back(new PrintModulePass("", os,
                                              /*deleteStream*/ true,
-                                             /*printAsBytecode*/ ! DebugTrace));
+                                             /*printPerMethod*/ false,
+                                             /*printAsBytecode*/ !DebugTrace));
       }
     }
   
+  // Replace malloc and free instructions with library calls.
+  // Do this after tracing until lli implements these lib calls.
+  // For now, it will emulate malloc and free internally.
+  Passes.push_back(new LowerAllocations(Target.DataLayout));
+  
   // If LLVM dumping after transformations is requested, add it to the pipeline
   if (DumpAsm)
     Passes.push_back(new PrintModulePass("Code after xformations: \n",&cerr));