As the comments indicate, this is a temporary, repulsive, hack


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9982 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/tools/gccas/gccas.cpp b/tools/gccas/gccas.cpp
index c7a2204..0ed58b9 100644
--- a/tools/gccas/gccas.cpp
+++ b/tools/gccas/gccas.cpp
@@ -70,6 +70,12 @@
     addPass(PM, createFunctionInliningPass());   // Inline small functions
 
   addPass(PM, createInstructionCombiningPass()); // Cleanup code for raise
+
+  // HACK HACK HACK.  This pass should be extended to support calls like 'call
+  // (const expr cast (free))(Ty *).  Until it does so, we have to run it after
+  // instruction combining.  This should be removed after PLDI!
+  addPass(PM, createRaiseAllocationsPass());     // call %malloc -> malloc inst
+
   addPass(PM, createRaisePointerReferencesPass());// Recover type information
   addPass(PM, createTailDuplicationPass());      // Simplify cfg by copying code
   addPass(PM, createCFGSimplificationPass());    // Merge & remove BBs