[PATCH] D19338: New code hoisting pass based on GVN (optimistic approach)

Mehdi Amini via llvm-commits llvm-commits at lists.llvm.org
Thu Apr 28 15:40:05 PDT 2016


These numbers looks really great. Out of curiosity, do you happen to have runtime measurements as well?

> On Apr 28, 2016, at 3:33 PM, Sebastian Pop <sebpop at gmail.com> wrote:
> 
> sebpop updated this revision to Diff 55499.
> sebpop added a comment.
> 
> Update patch to use Memory SSA as a minimal data dependence analysis.
> We may want to commit the fix to MemorySSA.cpp as a separate patch.
> 
> On the SPEC 2006 benchmarks with the patch (the number between parentheses is the difference against without the patch, positive is more with the patch):
> Number of call sites deleted, not inlined: 20419 (+25)
> Number of functions deleted because all callers found: 70393 (-104)
> Number of functions inlined: 182452 (+333)
> Number of allocas merged together: 227 (0)
> Number of caller-callers analyzed: 200825 (+464)
> Number of call sites analyzed: 446853 (+1047)
> Number of hoisted instructions: 34977
> Number of instructions removed: 88044
> 
> On the llvm test-suite the numbers are:
> Number of hoisted instructions: 35125
> Number of instructions removed: 234484
> 
> 
> http://reviews.llvm.org/D19338
> 
> Files:
>  llvm/include/llvm/InitializePasses.h
>  llvm/include/llvm/LinkAllPasses.h
>  llvm/include/llvm/Transforms/Scalar.h
>  llvm/include/llvm/Transforms/Scalar/GVN.h
>  llvm/lib/Passes/PassRegistry.def
>  llvm/lib/Transforms/IPO/PassManagerBuilder.cpp
>  llvm/lib/Transforms/Scalar/CMakeLists.txt
>  llvm/lib/Transforms/Scalar/GVNHoist.cpp
>  llvm/lib/Transforms/Scalar/Scalar.cpp
>  llvm/lib/Transforms/Utils/MemorySSA.cpp
>  llvm/lib/Transforms/Utils/SimplifyCFG.cpp
>  llvm/test/Transforms/GVN/hoist.ll
> 
> <D19338.55499.patch>



More information about the llvm-commits mailing list