[PATCH] D21387: [CFLAA] Remove non-pointer values from CFLGraph

Daniel Berlin via llvm-commits llvm-commits at lists.llvm.org
Wed Jun 15 09:51:29 PDT 2016


It's not clear to me why you don't, long term, end up with attributes both
for edges and nodes.

For example, for edges, to support field-sensitive analysis, you will
either need the offset or something as an edge attribute, so you can
differentiate what edge to follow for a given offset.
(unless y'all know another way)

On Wed, Jun 15, 2016 at 9:24 AM, Jia Chen via llvm-commits <
llvm-commits at lists.llvm.org> wrote:

> grievejia created this revision.
> grievejia added reviewers: george.burgess.iv, hfinkel.
> grievejia added a subscriber: llvm-commits.
>
> This patch introduces no functionality changes.
>
> The goal is to only let CFLAA track pointer values. Non-pointer values do
> not need to be added to CFLGraph, and any alias queries involving at least
> one non-pointer value can be answered with "NoAlias" (basicaa does this so
> I guess with the introduction of AttrEscape it would be fine for CFLAA to
> do it as well).
>
> One more change has to be done to achieve this goal, though. For
> instructions like ptrtoint, the operand is a pointer yet the result is not.
> Ideally we would want to add the operand to CFLGraph and tag it as
> AttrEscape, and just ignore the result. However, without this patch we
> cannot do that since StratifiedAttrs are attached to CFLGrpah's edges, not
> nodes. All we can do there was to add an edge from the operand to the
> result with AttrEscape attached to the edge, but then we have to add a
> non-pointer value (the result) as a node to the graph. This patch fix this
> issue by moving StratifiedAttrs from edges to nodes.
>
> http://reviews.llvm.org/D21387
>
> Files:
>   lib/Analysis/CFLAliasAnalysis.cpp
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160615/6985a399/attachment.html>


More information about the llvm-commits mailing list