[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