[llvm-commits] CVS: llvm/tools/gccas/gccas.cpp

Chris Lattner lattner at cs.uiuc.edu
Sun Feb 1 01:26:02 PST 2004


Changes in directory llvm/tools/gccas:

gccas.cpp updated: 1.91 -> 1.92

---
Log message:

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.



---
Diffs of the changes:  (+4 -2)

Index: llvm/tools/gccas/gccas.cpp
diff -u llvm/tools/gccas/gccas.cpp:1.91 llvm/tools/gccas/gccas.cpp:1.92
--- llvm/tools/gccas/gccas.cpp:1.91	Tue Jan 13 21:39:42 2004
+++ llvm/tools/gccas/gccas.cpp	Sun Feb  1 01:24:53 2004
@@ -65,18 +65,20 @@
 
   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





More information about the llvm-commits mailing list