[PATCH] LLVM CFL Alias Analysis -- Supporting Data Structures

Daniel Berlin dberlin at dberlin.org
Tue Aug 5 13:00:05 PDT 2014


Looks good to me, modulo one issue, but you should wait for Nick or
Hal to give you a final okay.

I know both are busy, so it may be a bit.

As for my last comment on this one:

The attributes mechanism is not entirely well described.
If the data structure is meant to truly be independent of the Aliasing
related stuff, then your description should just be "these are
attributes that builders may use for various purposes.  The semantics
are <x> on merging". or something similar.
If they aren't independent, it probably pays to give them a bit more
thought and structure, but i don't think that's worth the time quite
yet, until we know more about which end up useful/don't (IE whether
you want additional attributes"


On Mon, Aug 4, 2014 at 1:44 PM, George Burgess IV <gbiv at google.com> wrote:
> Modified data structures to support interprocedural analysis.
>
> In more specific terms:
>> Added set relationship data (aboveness/belowness) into StratifiedSets
>> Expanded aliasExternals to a more generic "Attributes"/"Attrs" type, so we can more accurately express whether uncertainty is coming from arguments or globals
>> We now remove sets that have been remapped at build-time so we conserve as much space as possible, because now the space penalty of letting a "remapped" set slip passed build time has gone up from a single bit (field in aliasingExternals bitset) to ~12 bytes.
>
> http://reviews.llvm.org/D4550
>
> Files:
>   lib/Analysis/StratifiedSets.h
>   lib/Analysis/WeightedBidirectedGraph.h




More information about the llvm-commits mailing list