llvm-project
b4dbb1cd - [VPlan] Be more careful with CSE in replicate regions. (#162110)

Commit
16 days ago
[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
Author
Parents
Loading