[PATCH] D103991: [SCEV] Move mustprogress based no-self-wrap logic so it applies to all exit conditions
Philip Reames via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Nov 19 13:25:57 PST 2021
reames added a comment.
In D103991#3143636 <https://reviews.llvm.org/D103991#3143636>, @nikic wrote:
> Looking at callgrind profiles for one test case, the main additional cost is when simplifying IVs after unrolling, during the willOverflow check that zext/sext both operands. In getZeroExtendExpr we seem to spend more times in various proveNoWrapByXYZ() methods. It's not obvious to me how this change would cause that, I'd more expect the reverse effect (less need to infer additional flags because we added more here).
All I can think of is that maybe we figure out the trip count for some loop, unroll it, and then spend time analyzing the newly introduced IVs? That's really the only interaction I can find.
Out of curiosity, what kind of unrolling do you see? Full, partial, max count full, or runtime?
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D103991/new/
https://reviews.llvm.org/D103991
More information about the llvm-commits
mailing list