mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-14 11:32:34 +00:00
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
This commit is contained in:
parent
c23396e8de
commit
05e4e8a5d2
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user