[PATCH] D9151: Loop Versioning for LICM
Ashutosh Nema via llvm-commits
llvm-commits at lists.llvm.org
Tue Jan 12 21:10:09 PST 2016
ashutosh.nema added inline comments.
================
Comment at: lib/Transforms/IPO/PassManagerBuilder.cpp:349
@@ -342,1 +348,3 @@
+ MPM.add(createLICMPass()); // Hoist loop invariants
+ }
if (!DisableUnitAtATime && OptLevel > 1 && !PrepareForLTO) {
----------------
joker.eph wrote:
> Why is is done here and not where LICM is usually done? Line 419?
> Did you try multiple placements? Do you have benchmarks results that drives this choice?
We want to run this when inining is over, because after that we may see more accurate aliasing.
That’s why we placed it after ‘createBarrierNoopPass’. If we do this earlier probably of no-alias
aliasing assumptions in version loop, other optimizations may get some benefit.
This can be schedule later as well but I don’t see any benefit.
We have observed good gains in our internal benchmarks, mostly based on customer workloads.
Repository:
rL LLVM
http://reviews.llvm.org/D9151
More information about the llvm-commits
mailing list