diff options
| author | Florian Hahn <flo@fhahn.com> | 2025-10-29 11:25:46 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-10-29 18:25:46 +0000 |
| commit | 98d3a25f7431563b9eb49101b89e5b370b7d71ec (patch) | |
| tree | eaf15e499cb9225d3fa08b6c7240fb3a66d5b8b6 /clang/lib/Basic/SourceManager.cpp | |
| parent | d87c80bd46d9dc761b048cad48838a039cff214a (diff) | |
| download | llvm-98d3a25f7431563b9eb49101b89e5b370b7d71ec.zip llvm-98d3a25f7431563b9eb49101b89e5b370b7d71ec.tar.gz llvm-98d3a25f7431563b9eb49101b89e5b370b7d71ec.tar.bz2 | |
[VPlan] Don't preserve LCSSA in expandSCEVs. (#165505)
This follows similar reasoning as 45ce88758d24
(https://github.com/llvm/llvm-project/pull/159556):
LV does not preserve LCSSA, it constructs it just before processing a
loop to vectorize. Runtime check expressions are invariant to that loop,
so expanding them should not break LCSSA form for the loop we are about
to vectorize.
LV creates SCEV and memory runtime checks early on and then disconnects
the blocks temporarily. The patch fixes a mis-compile, where previously
LCSSA construction during SCEV expand may replace uses in currently
unreachable SCEV/memory check blocks.
Fixes https://github.com/llvm/llvm-project/issues/162512
PR: https://github.com/llvm/llvm-project/pull/165505
Diffstat (limited to 'clang/lib/Basic/SourceManager.cpp')
0 files changed, 0 insertions, 0 deletions
