[PATCH] D30003: AssumptionCache: Disable the verifier by default, move it behind a hidden cl::opt and verify from releaseMemory().

Chandler Carruth via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Feb 15 14:35:01 PST 2017


chandlerc added a comment.

In https://reviews.llvm.org/D30003#677918, @dberlin wrote:

> While i agree it's troubling, it's interesting to note that we have that behavior elsewhere.
>
> For example memdep caches, but not in a way that invalidates fully.
>
> Thus, opt -gvn -gvn will give different answers than opt -gvn | opt -gvn
>  both are "correct" answers, just the former is more conservative than the latter.


Yeah, SCEV also has this property. So do several other analyses IIRC. =[

I'm not thrilled about making it worse, and we have a PR tracking this. My current best idea is to pull this up into a function analysis that can actually be invalidated. We can trivially make the new PM work this way today, and with some work could probably get it to work in the old PM as well.

(There remains the meta discussion of whether an analysis invalidation strategy to be conservatively correct is the most efficient approach or we should do something else, but even if we decide to do something else that seems significantly longer term to me.)


Repository:
  rL LLVM

https://reviews.llvm.org/D30003





More information about the llvm-commits mailing list