[llvm] 1c18ebb - [NFC][SCEV] Do not track users of SCEVConstants

Max Kazantsev via llvm-commits llvm-commits at lists.llvm.org
Sun Oct 24 22:33:19 PDT 2021


Author: Max Kazantsev
Date: 2021-10-25T12:30:46+07:00
New Revision: 1c18ebb2cc7c2fbd0be43d9ceaabe52d7317c19d

URL: https://github.com/llvm/llvm-project/commit/1c18ebb2cc7c2fbd0be43d9ceaabe52d7317c19d
DIFF: https://github.com/llvm/llvm-project/commit/1c18ebb2cc7c2fbd0be43d9ceaabe52d7317c19d.diff

LOG: [NFC][SCEV] Do not track users of SCEVConstants

Follow-up from D112295, suggested by Nikita: we can avoid tracking
users of SCEVConstants because dropping their cached info is unlikely
to give any new prospects for fact inference, and it should not introduce
any correctness problems.

Added: 
    

Modified: 
    llvm/lib/Analysis/ScalarEvolution.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Analysis/ScalarEvolution.cpp b/llvm/lib/Analysis/ScalarEvolution.cpp
index 7898438399c3..bb80729a2909 100644
--- a/llvm/lib/Analysis/ScalarEvolution.cpp
+++ b/llvm/lib/Analysis/ScalarEvolution.cpp
@@ -13304,7 +13304,11 @@ PredicatedScalarEvolution::PredicatedScalarEvolution(ScalarEvolution &SE,
 void ScalarEvolution::registerUser(const SCEV *User,
                                    ArrayRef<const SCEV *> Ops) {
   for (auto *Op : Ops)
-    SCEVUsers[Op].insert(User);
+    // We do not expect that forgetting cached data for SCEVConstants will ever
+    // open any prospects for sharpening or introduce any correctness issues,
+    // so we don't bother storing their dependencies.
+    if (!isa<SCEVConstant>(Op))
+      SCEVUsers[Op].insert(User);
 }
 
 const SCEV *PredicatedScalarEvolution::getSCEV(Value *V) {


        


More information about the llvm-commits mailing list