On 24/08/2020 09:40, Richard Biener wrote:
On Mon, Aug 17, 2020 at 3:22 PM Erick Ochoa
<erick.oc...@theobroma-systems.com> wrote:

Hello,

I'm looking to understand better the points-to analysis (IPA-PTA) and
the alias analysis (build_alias).

How is the information produced by IPA-PTA consumed?

Are alias sets in build_alias computed by the intersections of the
points_to_set(s) (computed by IPA-PTA)?

My intuition tells me that it could be relatively simple to move
build_alias to be an SIMPLE_IPA_PASS performed just after IPA-PTA, but I
do not have enough experience in GCC to tell if this is correct. What
could be some difficulties which I am not seeing? (Either move, or
create a new IPA-ALIAS SIMPLE_IPA_PASS.) This pass would have the same
sensitivity as IPA-PTA { flow-insensitive, context-insensitive,
field-sensitive } because the alias sets could be computed by the
intersection of points-to-sets.

Both IPA-PTA and build_alias do the same, they build PTA constraint
sets, solve them and attach points-to info to SSA names.  Just IPA-PTA
does this for the whole TU while build_alias does it for a function at a time.

So I guess I do not understand your question.

Hi Richard,

I'm just trying to imagine what a data-layout optimization would look like if instead of using the type-escape analysis we used the points-to analysis to find out which variables/memory locations escape and what that would mean for the transformation itself.

One of the things that I think would be needed are alias-sets. I thought that build_alias was building alias sets but I was mistaken. However, computing the alias sets should not be too difficult.

Also continuing imagining what a data-layout optimization would look like in GCC, since IPA-PTA is a SIMPLE_IPA_PASS and if alias sets are indeed needed, I was asking what would be the reception to a SIMPLE_IPA_PASS that computes alias sets just after IPA-PTA. (As opposed to a full ipa pass).




Richard.


Thanks!

Reply via email to