LoopPeel add new incoming values to exit phi nodes which can change the
SCEV for the phi after 20d798bd47ec51.
Forget SCEVs for such phis.
Fixes #56044.
Paths
| Differential D128164
[LoopPeel] Forget SCEV for updated exit phi values. ClosedPublic Authored by fhahn on Jun 20 2022, 2:13 AM.
Details Summary LoopPeel add new incoming values to exit phi nodes which can change the Forget SCEVs for such phis. Fixes #56044.
Diff Detail
Event Timelinefhahn retitled this revision from [LoopPeel] Forget updated exit phi values. to [LoopPeel] Forget SCEV for updated exit phi values..Jun 20 2022, 2:21 AM Comment Actions This looks reasonable to me -- only thing that's not entirely clear to me is why forgetTopmostLoop() doesn't end up doing this. The forgetLoop() implementation is very aggressive, and I would have expected that the use-def walk would reach the exit phis as well. Comment Actions
It looks like forgetLoop only invalidates uses of AddRecs, headers phis and BTC users. The problematic phi here is %lcssa.1 which is not reachable through any of the roots forgetLoop uses for invalidation. This revision is now accepted and ready to land.Jun 20 2022, 2:37 AM This revision was landed with ongoing or failed builds.Jun 20 2022, 4:20 AM Closed by commit rGcfc741bc0e02: [LoopPeel] Forget SCEV for updated exit phi values. (authored by fhahn). · Explain Why This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 438337 llvm/lib/Transforms/Utils/LoopPeel.cpp
llvm/test/Transforms/LoopUnroll/scevunroll.ll
|