Move malloc/free lowering after tracing until lli supports
calls to external malloc/free functions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@893 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/tools/llc/llc.cpp b/tools/llc/llc.cpp
index 76364aa..3761b3a 100644
--- a/tools/llc/llc.cpp
+++ b/tools/llc/llc.cpp
@@ -121,9 +121,6 @@
   // 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 @@
       } 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));