[PATCH] D70233: [WIP][NOT FOR COMMIT][Attributor] AAReachability Attribute

Hideto Ueno via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Nov 14 22:10:52 PST 2019


uenoku added a comment.

I think reachability attribute is a good idea!

> A Reachability abstract attribute answers the question "does execution at point A potentially reach point B". If this question is answered with false for all other uses of the value that might be captured, we know it is not *yet* captured and can continue with the noalias deduction. Currently, information AAReachability provides is completely pessimistic.

At the starting point, it might be a good idea to use `AAIsDead` to determine that "does execution at point A **never**  reach point B" (because `AAIsDead` answers whether point B is dead).

Btw, I think `AAIsDead` is a strict subset of `AAReachability`. If we have `AAReachability::isAssumedReachable(Instruction &From, Instruction &To)`, `AAIsDead::isAssumedDead(Instruction &I)` is equivalent to ``!AAReachability::isAssumedReachable(EntryPointOfFunction, I)`.So you should probably extend `AAIsDead`.

Maybe you can refer `must-be-executed-context` which handles the similar property.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D70233





More information about the llvm-commits mailing list