From 05e4e8a5d26828380a0f0c7133860928170f9de8 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Sun, 1 Feb 2004 07:24:53 +0000 Subject: [PATCH] Now that tailduplication does not bork SSA form, run mem2reg earlier in gccas. This tremendously improves the code generated by the LLVM optimizer, primarily by making the inliner more aggressive. For example, it improves the stepanov benchmark from 55.56 mega-additions/sec to 98.04 Ma/s. It also improves the oopack/iterator benchmark from 338.3MFLOPS/s to 1103.4MFLOPS/s. Less noteworthy, it improves oopack/matrix from 573 -> 641 MFLOPS/s. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11053 91177308-0d34-0410-b5e6-96231b3b80d8 --- tools/gccas/gccas.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tools/gccas/gccas.cpp b/tools/gccas/gccas.cpp index 40053303db6..1abf251fce3 100644 --- a/tools/gccas/gccas.cpp +++ b/tools/gccas/gccas.cpp @@ -65,18 +65,20 @@ void AddConfiguredTransformationPasses(PassManager &PM) { if (DisableOptimizations) return; - addPass(PM, createCFGSimplificationPass()); // Clean up disgusting code addPass(PM, createRaiseAllocationsPass()); // call %malloc -> malloc inst + addPass(PM, createCFGSimplificationPass()); // Clean up disgusting code + addPass(PM, createPromoteMemoryToRegister()); // Kill useless allocas addPass(PM, createGlobalDCEPass()); // Remove unused globals addPass(PM, createIPConstantPropagationPass());// IP Constant Propagation addPass(PM, createDeadArgEliminationPass()); // Dead argument elimination + addPass(PM, createInstructionCombiningPass()); // Clean up after IPCP & DAE + addPass(PM, createCFGSimplificationPass()); // Clean up after IPCP & DAE addPass(PM, createPruneEHPass()); // Remove dead EH info if (!DisableInline) addPass(PM, createFunctionInliningPass()); // Inline small functions - addPass(PM, createInstructionCombiningPass()); // Cleanup code for raise addPass(PM, createRaisePointerReferencesPass());// Recover type information addPass(PM, createTailDuplicationPass()); // Simplify cfg by copying code addPass(PM, createCFGSimplificationPass()); // Merge & remove BBs