[PATCH] D110390: [SCEV] Establish control over disposition caches

Nikita Popov via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 27 12:19:05 PDT 2021


nikic requested changes to this revision.
nikic added a comment.
This revision now requires changes to proceed.

I'd like to see some analysis of what is actually wrong in the affected test cases. We do already invalidate dispositions in forgetValue() and forgetLoop(), and I'd like to have an understanding of why the current invalidation is insufficient. Sure, invalidating *everything* will certainly fix the problem, but I don't think that's how we want to do things if it can be avoided.



================
Comment at: llvm/lib/Analysis/ScalarEvolution.cpp:7548
+  forgetLoopDispositions();
+  forgetBlockDispositions();
 }
----------------
This looks like a really big hammer that goes against how SCEV invalidation normally works. Note that the loop above is supposed to walk all SCEVs based on the value and calls `forgetMemoizedResults()` for them -- this includes clearing the loop and block dispositions.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D110390/new/

https://reviews.llvm.org/D110390



More information about the llvm-commits mailing list