[llvm] 7b75110 - [SCEV] Turn validity check in getExistingSCEV into assert (NFC).

Florian Hahn via llvm-commits llvm-commits at lists.llvm.org
Sun Nov 28 04:17:26 PST 2021


Author: Florian Hahn
Date: 2021-11-28T12:16:55Z
New Revision: 7b75110fac979be24eed0178caa9d1f8c68e14eb

URL: https://github.com/llvm/llvm-project/commit/7b75110fac979be24eed0178caa9d1f8c68e14eb
DIFF: https://github.com/llvm/llvm-project/commit/7b75110fac979be24eed0178caa9d1f8c68e14eb.diff

LOG: [SCEV] Turn validity check in getExistingSCEV into assert (NFC).

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

Reviewed By: nikic

Differential Revision: https://reviews.llvm.org/D114633

Added: 
    

Modified: 
    llvm/lib/Analysis/ScalarEvolution.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Analysis/ScalarEvolution.cpp b/llvm/lib/Analysis/ScalarEvolution.cpp
index f41b89517abcb..8007cefc4bd79 100644
--- a/llvm/lib/Analysis/ScalarEvolution.cpp
+++ b/llvm/lib/Analysis/ScalarEvolution.cpp
@@ -4146,10 +4146,9 @@ const SCEV *ScalarEvolution::getExistingSCEV(Value *V) {
   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;
 }


        


More information about the llvm-commits mailing list