[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