diff options
author | Florian Hahn <flo@fhahn.com> | 2025-10-20 11:53:47 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-10-20 10:53:47 +0000 |
commit | b4dbb1cdc46bfe41244f4313582ce3270f5fe845 (patch) | |
tree | 69222a6954a0ba7b8b57dccd986d34c02a9d2e44 /clang/unittests/Format/FormatTestJava.cpp | |
parent | 9fe1f29541109ac10e1399deb85da0507135f836 (diff) | |
download | llvm-b4dbb1cdc46bfe41244f4313582ce3270f5fe845.zip llvm-b4dbb1cdc46bfe41244f4313582ce3270f5fe845.tar.gz llvm-b4dbb1cdc46bfe41244f4313582ce3270f5fe845.tar.bz2 |
[VPlan] Be more careful with CSE in replicate regions. (#162110)
Recipes in replicate regions implicitly depend on the region's
predicate. Limit CSE to recipes in the same block, when either recipe is
in a replicate region.
This allows handling VPPredInstPHIRecipe during CSE. If we perform CSE
on recipes inside a replicate region, we may end up with 2
VPPredInstPHIRecipes sharing the same operand. This is incompatible with
current VPPredInstPHIRecipe codegen, which re-sets the current value of
its operand in VPTransformState. This can cause crashes in the added
test cases.
Note that this patch only modifies ::isEqual to check for replicating
regions and not getHash, as CSE across replicating regions should be
uncommon.
Fixes https://github.com/llvm/llvm-project/issues/157314.
Fixes https://github.com/llvm/llvm-project/issues/161974.
PR: https://github.com/llvm/llvm-project/pull/162110
Diffstat (limited to 'clang/unittests/Format/FormatTestJava.cpp')
0 files changed, 0 insertions, 0 deletions