diff --git a/tools/gccas/gccas.cpp b/tools/gccas/gccas.cpp index c7a2204e32d..0ed58b97db5 100644 --- a/tools/gccas/gccas.cpp +++ b/tools/gccas/gccas.cpp @@ -70,6 +70,12 @@ void AddConfiguredTransformationPasses(PassManager &PM) { 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