[PATCH] D64405: [DependenceAnalysis] Dependecies for loads marked with "ivnariant.load" should not be shared with general accesses. Fix for https://bugs.llvm.org/show_bug.cgi?id=42151

Philip Reames via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jul 17 09:55:30 PDT 2019


reames requested changes to this revision.
reames added a comment.

I'd like to suggest a change of approach here.  There's already precedent in the code for dealing with inconsistent results from metadata.  See the getNonLocalPointerDepFromBB handling for AATags and Size changes.  I don't see a reason why invariant_load can't be handled in the same manner in the same place.  Doing that consolidates all the cache invalidation in one place, and has the benefit of caching all accesses with as much precision as possible. (i.e. an invariant_load would be cached as invariant until the first normal load from that location was found, and then cached as normal loads)



================
Comment at: test/Analysis/DependenceAnalysis/InvariantLoad.ll:1
+; RUN: opt < %s -passes=gvn -S | FileCheck %s
+
----------------
Stylistically, I'd suggest combining these two files into one and using update_test_checks.py to generate check lines.

And surely there is a more reduced test case possible?


Repository:
  rL LLVM

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

https://reviews.llvm.org/D64405





More information about the llvm-commits mailing list