[llvm] 66b2820 - [LoopVectorize] Remove redundant code in emitSCEVChecks (#111132)
via llvm-commits
llvm-commits at lists.llvm.org
Sun Oct 6 23:58:30 PDT 2024
Author: David Sherwood
Date: 2024-10-07T07:58:27+01:00
New Revision: 66b282014cff346ab20c6c8aed774ca2c6bfefd1
URL: https://github.com/llvm/llvm-project/commit/66b282014cff346ab20c6c8aed774ca2c6bfefd1
DIFF: https://github.com/llvm/llvm-project/commit/66b282014cff346ab20c6c8aed774ca2c6bfefd1.diff
LOG: [LoopVectorize] Remove redundant code in emitSCEVChecks (#111132)
There was some code in emitSCEVChecks to update the dominator
tree if LoopBypassBlocks is empty, however there are no tests
that fail when replacing this code with an assert. I built
both SPEC2017 and the LLVM test suite and also didn't see any
build failures. I've removed the code for now and added an
assert to guard this in case anything changes, since it seems
pointless to have code that's impossible to defend.
Added:
Modified:
llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp b/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
index 447656b2a9950f..001c8987667df8 100644
--- a/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+++ b/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
@@ -2486,18 +2486,8 @@ BasicBlock *InnerLoopVectorizer::emitSCEVChecks(BasicBlock *Bypass) {
(OptForSizeBasedOnProfile &&
Cost->Hints->getForce() != LoopVectorizeHints::FK_Enabled)) &&
"Cannot SCEV check stride or overflow when optimizing for size");
-
-
- // Update dominator only if this is first RT check.
- if (LoopBypassBlocks.empty()) {
- DT->changeImmediateDominator(Bypass, SCEVCheckBlock);
- if (!Cost->requiresScalarEpilogue(VF.isVector()))
- // If there is an epilogue which must run, there's no edge from the
- // middle block to exit blocks and thus no need to update the immediate
- // dominator of the exit blocks.
- DT->changeImmediateDominator(LoopExitBlock, SCEVCheckBlock);
- }
-
+ assert(!LoopBypassBlocks.empty() &&
+ "Should already be a bypass block due to iteration count check");
LoopBypassBlocks.push_back(SCEVCheckBlock);
AddedSafetyChecks = true;
return SCEVCheckBlock;
More information about the llvm-commits
mailing list