[DependenceAnalysis] Dependecies for loads marked with "ivnariant.load" should not...
authorEvgeniy Brevnov <evgueni.brevnov@gmail.com>
Wed, 4 Mar 2020 08:36:51 +0000 (15:36 +0700)
committerEvgeniy Brevnov <evgueni.brevnov@gmail.com>
Wed, 4 Mar 2020 11:40:02 +0000 (18:40 +0700)
commit5a63813dc7fc4e3cd0c0b7b71bef031a69c9385f
treef32bad6c1dc2913687ab18d2ca16f2fa39f014a0
parent94885431e19687dcc8f2e2f23932b4a6d170b78d
[DependenceAnalysis] Dependecies for loads marked with "ivnariant.load" should not be shared with general accesses(PR42151).

Summary:
This is second attempt to fix the problem with incorrect dependencies reported in presence of invariant load. Initial fix (https://reviews.llvm.org/D64405) was reverted due to a regression reported in https://reviews.llvm.org/D70516.

The original fix changed caching behavior for invariant loads. Namely such loads are not put into the second level cache (NonLocalDepInfo). The problem with that fix is the first level cache  (CachedNonLocalPointerInfo) still works as if invariant loads were in the second level cache. The solution is in addition to not putting dependence results into the second level cache avoid putting info about invariant loads into the first level cache as well.

Reviewers: jdoerfert, reames, hfinkel, efriedma

Reviewed By: jdoerfert

Subscribers: DaniilSuchkov, hiraditya, bmahjour, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D73027
llvm/lib/Analysis/MemoryDependenceAnalysis.cpp