[PATCH] D114633: [SCEV] Turn validity check in getExistingSCEV into assert (NFC).
Florian Hahn via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Nov 26 04:37:49 PST 2021
fhahn created this revision.
fhahn added reviewers: nikic, reames, mkazantsev.
Herald added subscribers: javed.absar, hiraditya.
fhahn requested review of this revision.
Herald added a project: LLVM.
Now that we track users of SCEV expressions, we should be able to always
invalidate containing expressions.
With that, I think the case where a value gets removed but
SCEVs containing references to it should not be possible any longer.
Turn check into an assert.
This slightly reduces compile-time:
NewPM-O3: -0.27%
NewPM-ReleaseThinLTO: -0.21%
NewPM-ReleaseLTO-g: -0.26%
http://llvm-compile-time-tracker.com/compare.php?from=c3dc6b081da6ba503e67d260033f81f61eb38ea3&to=95a4a028b1f1dd0bc3d221435953b7d2c031b3d5&stat=instructions
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D114633
Files:
llvm/lib/Analysis/ScalarEvolution.cpp
Index: llvm/lib/Analysis/ScalarEvolution.cpp
===================================================================
--- llvm/lib/Analysis/ScalarEvolution.cpp
+++ llvm/lib/Analysis/ScalarEvolution.cpp
@@ -4134,10 +4134,9 @@
ValueExprMapType::iterator I = ValueExprMap.find_as(V);
if (I != ValueExprMap.end()) {
const SCEV *S = I->second;
- if (checkValidity(S))
- return S;
- eraseValueFromMap(V);
- forgetMemoizedResults(S);
+ assert(checkValidity(S) &&
+ "existing SCEV has not been properly invalidated");
+ return S;
}
return nullptr;
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D114633.390012.patch
Type: text/x-patch
Size: 585 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20211126/bccfddb1/attachment.bin>
More information about the llvm-commits
mailing list