[PATCH] D93529: [GVN][BasicAA] Enable clobbering in GVN.

Daniil Fukalov via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Dec 18 02:42:45 PST 2020


dfukalov created this revision.
dfukalov added reviewers: nikic, asbirlea, fhahn.
Herald added subscribers: bmahjour, hiraditya.
dfukalov requested review of this revision.
Herald added a project: LLVM.

For the cases of two clobbering loads and one loaded object is fully contained
in the second `BasicAAResult::aliasGEP` returns just `PartialAlias` that
is actually more common case of partial overlap. It also estimates the relative
offset of two GEPs but it is not used further.

GVN then fails to clobber second loaded since VNCoercion utility doesn't have
enough euristics to repeat AA functinality.

The change stores estimated clobbering offsets in cache and returns it for GVN.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D93529

Files:
  llvm/include/llvm/Analysis/AliasAnalysis.h
  llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
  llvm/lib/Analysis/AliasAnalysis.cpp
  llvm/lib/Analysis/BasicAliasAnalysis.cpp
  llvm/lib/Analysis/CaptureTracking.cpp
  llvm/lib/Analysis/MemoryDependenceAnalysis.cpp
  llvm/lib/Transforms/Scalar/GVN.cpp
  llvm/test/Transforms/GVN/partial-alias-clobber.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D93529.312734.patch
Type: text/x-patch
Size: 11239 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20201218/4a02e1f7/attachment.bin>


More information about the llvm-commits mailing list