[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