forked from OSchip/llvm-project
![]() To make usage easier (compared to the many reachability related AAs), this patch introduces a helper API, `AA::isPotentiallyReachable`, which performs all the necessary steps. It also does the "backwards" reachability (see D106720) as that simplifies the AA a lot (backwards queries were somewhat different from the other query resolvers), and ensures we use cached values in every stage. To test inter-procedural reachability in a reasonable way this patch includes an extension to `AAPointerInfo::forallInterferingWrites`. Basically, we can exclude writes if they cannot reach a load "during the lifetime" of the allocation. That is, we need to go up the call graph to determine reachability until we can determine the allocation would be dead in the caller. This leads to new constant propagations (through memory) in `value-simplify-pointer-info-gpu.ll`. Note: The new code contains plenty debug output to determine how reachability queries are resolved. Parts extracted from D110078. Differential Revision: https://reviews.llvm.org/D118673 |
||
---|---|---|
.. | ||
X86 | ||
2008-02-01-ReturnAttrs.ll | ||
2008-07-02-array-indexing.ll | ||
2008-09-07-CGUpdate.ll | ||
2008-09-08-CGUpdateSelfEdge.ll | ||
aggregate-promote.ll | ||
alignment.ll | ||
array.ll | ||
attrs.ll | ||
basictest.ll | ||
byval-2.ll | ||
byval.ll | ||
chained.ll | ||
control-flow.ll | ||
control-flow2.ll | ||
crash.ll | ||
dbg.ll | ||
fp80.ll | ||
inalloca.ll | ||
invalidation.ll | ||
live_called_from_dead.ll | ||
live_called_from_dead_2.ll | ||
musttail.ll | ||
naked_functions.ll | ||
nonzero-address-spaces.ll | ||
pr27568.ll | ||
pr32917.ll | ||
pr33641_remove_arg_dbgvalue.ll | ||
profile.ll | ||
reserve-tbaa.ll | ||
sret.ll | ||
tail.ll | ||
variadic.ll |