LoopSimplifyCFG should update ScEv for all loops after a block is deleted.
If the deleted block "Succ" is part of L, then it is part of all parent loops, so forget all parent loops as well.
Details
Diff Detail
- Repository
- rL LLVM
- Build Status
Buildable 21209 Build 21209: arc lint + arc unit
Event Timeline
LGTM
test/Transforms/LoopIdiom/scev-invalidation_topmostloop.ll | ||
---|---|---|
5 ↗ | (On Diff #159747) | Please add | FileCheck %s to command line and smth like CHECK: @f1 in the test itself. |
test/Transforms/LoopIdiom/scev-invalidation_topmostloop.ll | ||
---|---|---|
5 ↗ | (On Diff #159747) | Is this actually testing the functionality of this change? I'm wondering how this problem was discovered. If it was a miscompilation, we should have a test that ensures we don't reintroduce the problem. If it was discovered by inspection,. then I'm guessing constructing a proper test would be difficult. I asked about a test not as a demand to produce one but rather to try to see if we have an actual observed problem we could capture in a test. If we don't I'm not sure constructing a test that doesn't actually test anything is useful. |
test/Transforms/LoopIdiom/scev-invalidation_topmostloop.ll | ||
---|---|---|
5 ↗ | (On Diff #159747) | The test triggers an assert without this fix, so it fails without needing any kind of CHECK. The issue was discovered by Mikael who also provided the failing test. |