[PATCH] D110368: [AA] Move earliest escape tracking from DSE to AA

Florian Hahn via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sat Sep 25 12:18:46 PDT 2021


fhahn accepted this revision.
fhahn added a comment.
This revision is now accepted and ready to land.

In D110368#3021556 <https://reviews.llvm.org/D110368#3021556>, @nikic wrote:

> In D110368#3020035 <https://reviews.llvm.org/D110368#3020035>, @fhahn wrote:
>
>>> This combines the "earliest escape" analysis with the full power of BasicAA:
>>
>> Are there any test cases that show the benefit of that, other than the improvements for the load-load case discussed in D109844 <https://reviews.llvm.org/D109844> ?
>
> See the last three tests in captures-before-load.ll. Only the last one truly requires BasicAA integration though.

Great thanks!

> Ultimately my main interest here is to integrate this functionality in a way that does not require reimplementing parts of AA in DSE. Better analysis quality is just a nice side effect.

Agreed, just wanted to double check w.r.t. the description.

LGTM, I am just wondering if the change in `isEscapeSource` is required or can be split off?



================
Comment at: llvm/include/llvm/Analysis/AliasAnalysis.h:383
+/// Virtual base class for providers of capture information.
+class CaptureInfo {
+public:
----------------
nit: could just be a struct?


================
Comment at: llvm/include/llvm/Analysis/AliasAnalysis.h:407
+  const LoopInfo &LI;
+  DenseMap<const Value *, Instruction *> EarliestEscapes;
+  DenseMap<Instruction *, TinyPtrVector<const Value *>> Inst2Obj;
----------------
I should have added doc-comments in the original DSE version but unfortunately did not. Might be good to add some here.


================
Comment at: llvm/lib/Analysis/BasicAliasAnalysis.cpp:123
 
-  if (isa<Argument>(V))
-    return true;
----------------
this seems unrelated or could at least be split off?


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

https://reviews.llvm.org/D110368



More information about the llvm-commits mailing list