[PATCH] D15559: [SCEVExpander] Make findExistingExpansion smarter
Charlie Turner via llvm-commits
llvm-commits at lists.llvm.org
Thu Dec 24 02:33:19 PST 2015
chatur01 added a comment.
In http://reviews.llvm.org/D15559#315149, @flyingforyou wrote:
> Current algorithm doesn't care about where does trip count's division come from.
> That means, if TripCount is divided by some value in loop's preheader, compiler will give up doing unrolling. (Even if IV's step is one or minus one.)
> If IV's step is constant likes one or minus one or multiple of 2, we don't need to generate division for computing trip count.
I ran some benchmarks against http://reviews.llvm.org/differential/diff/43408/
spec regressions on a Cortex-A57 (A64):
There's a small improvement in 254_gap
(I'm focussing on SPEC because it's less noisy than the benchmarks in test-suite, although I do note a 23% improvement in `lnt.MultiSource/Benchmarks/MiBench/automotive-susan/automotive-susan` and a 7.76% regression in `lnt.SingleSource/Benchmarks/Shootout-C++/ackermann`)
spec regressions on a Cortex-A57 (T32):
and an improvement in:
> I tested this patch on r256132 with test-suite, spec2000,2006, commercial benchmarks. There is no regression on Cortex-A57.
Did you notice these regressions on your hardware? I find it strange to think this could all be accounted to different revisions of this core. I'm testing on this platform: http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dto0038a/index.html)
I see some small improvments in a commerical benchmark (1-2%), but it is worth mentioning the SPEC changes, since I wouldn't write those off as no regressions; it's definite regression in SPEC, but whether the other improvements in test-suite balance them in the view of the community is debatable.
More information about the llvm-commits