Discussion:
[Open64-devel] Queries: IPA + BE Nystrom Alias Analyzer + PREOPT
Siddhartha Jana
2012-08-20 00:56:26 UTC
Permalink
Hello again,

As a beginner at Open64 development, I had a few queries:
I would really appreciate some help on understanding this:
*********************************************************
1. Using BE Nystrom Analyzer immediately after IPA -- is this a correct
move?
In nystrom_alias_analyzer.cxx, function -->
NystromAliasAnalyzer::aliasedWithCall (ST *call, AliasTag symTag, BOOL
&mod, BOOL &ref)
This function appears to set the mod and ref bools to true without using
any POINTS TO Analysis info.
Could someone please explain this?
I notice that Do_Simple_IPAA ( *IPA_Call_Graph ) is called within IPA
[inside Perform_Interprocedural_analysis()] to migrate the mod/ref info
bottom up through the
call graph. Shouldn't the BE Nystrom Alias Analyzer be able to determine
aliasing between the symbol of a CALL WN and the Alias tag of the target
WN.
Isn't this what the function aliasedWithCall() should do?
*********************************************************
2. Want to use Alias manager with IPA Nystrom Alias Analyzer?
I have been trying to extract interprocedural alias information.
[ I having been ussing ipa_preopt.cxx and the nystom_alais_analyzer.cxx for
my reference. ]

I traverse each node of the IPA_CALL_GRAPH
and set the IPA_context for every node. After this, for every PU, I create
the alias manager and use the BE Nystrom
Alias Analysis to determine the aliasing between two WNs within a PU.
Because of the issue discussed in pt (1) above,
isn't using the IPA Nystrom Alias Analyze a cleaner approach?

If so.... this is where I am stuck...

I understand that ALIAS MANAGER can be used to access Aliasing information
through ALIAS TAG support.
I want to access information at IPA (with -ipa turned on) and not the BE
(with -O2) turned ON.
I observe that the BE Nystrom Alias Analyzer inherits from AliasAnalyzer
class.
However, IPA Nystrom Alias Analyzer does not.

Is there something I am missing....
I would like to mention that I want to use the alias information at the end
of IPA.
*********************************************************

Could someone please help me out?
Many thanks,
Sincerely,

-- Siddhartha Jana
University of Houston
Yulei Sui
2012-08-21 01:06:51 UTC
Permalink
Hello,
----------------------------------------------------------------------
Message: 1
Date: Sun, 19 Aug 2012 20:56:26 -0400
Subject: [Open64-devel] Queries: IPA + BE Nystrom Alias Analyzer +
PREOPT
<CAPkf6e2iwjdZuNpkGJjQypr5iJxG0y9aHL-9dM3o+2addcd=
Content-Type: text/plain; charset="iso-8859-1"
Hello again,
*********************************************************
1. Using BE Nystrom Analyzer immediately after IPA -- is this a correct
move?
In nystrom_alias_analyzer.cxx, function -->
NystromAliasAnalyzer::aliasedWithCall (ST *call, AliasTag symTag, BOOL
&mod, BOOL &ref)
This function appears to set the mod and ref bools to true without using
any POINTS TO Analysis info.
Could someone please explain this?
I notice that Do_Simple_IPAA ( *IPA_Call_Graph ) is called within IPA
[inside Perform_Interprocedural_analysis()] to migrate the mod/ref info
bottom up through the
call graph. Shouldn't the BE Nystrom Alias Analyzer be able to determine
aliasing between the symbol of a CALL WN and the Alias tag of the target
WN.
Isn't this what the function aliasedWithCall() should do?
There are many ways for handling aliased with calls, all depends on how
conservative you want to be.
The most conservative way is to assume all variables are aliased with the
call, secondly, you could consider only address-taken variables may aliased
with the call. More accurate analysis can be combined with ipa_analysis
results. Please refer to "_mod _ref" fields of class CallSite. You could
collect modification and reference sets of each callsite through call
chains by transitive closure in IPA. Then, use these two sets to decide
whether a certain AliasTag's points-to aliased with the call or not.
*********************************************************
2. Want to use Alias manager with IPA Nystrom Alias Analyzer?
I have been trying to extract interprocedural alias information.
[ I having been ussing ipa_preopt.cxx and the nystom_alais_analyzer.cxx for
my reference. ]
I traverse each node of the IPA_CALL_GRAPH
and set the IPA_context for every node. After this, for every PU, I create
the alias manager and use the BE Nystrom
Alias Analysis to determine the aliasing between two WNs within a PU.
Because of the issue discussed in pt (1) above,
isn't using the IPA Nystrom Alias Analyze a cleaner approach?
If so.... this is where I am stuck...
First of all, given two WNs, you would like to figure it out whether they
are aliased or not by using IPA_Nystrom_Alias_Analyzer results? Is this
what you want?
If it is. I would suggest several other alternative convenient ways for
doing it. Using ALIAS_MANAGER directly in IPA is not that intuitive,
as ALIAS_MANAGER is originally designed for BE, and have to be created
multiple times for each PU. Two other ways might be more easy to solve your
problem:

1) AliasTag. After IPA_PREOPT, IPA_Nystrom_Alias_Analyzer points-to
results will be transfered AliasTag and associated with each WN(please
refer to "genAliasTag" and "transferAliasTag". Remember to keep
_aliasTagMap of each PU). Using AliasTag directly in IPA would be more
efficient than ALIAS_MANAGER.

2) ConstraintGraphNode. Using WN_MAP_ALIAS_CGNODE you could map each WN to
a ConstraintGraphNode(many to one map, multiple WNs may map to one CGNode).


Regards
Yulei
I understand that ALIAS MANAGER can be used to access Aliasing information
through ALIAS TAG support.
I want to access information at IPA (with -ipa turned on) and not the BE
(with -O2) turned ON.
I observe that the BE Nystrom Alias Analyzer inherits from AliasAnalyzer
class.
However, IPA Nystrom Alias Analyzer does not.
Is there something I am missing....
I would like to mention that I want to use the alias information at the end
of IPA.
*********************************************************
Could someone please help me out?
Many thanks,
Sincerely,
-- Siddhartha Jana
University of Houston
-------------- next part --------------
An HTML attachment was scrubbed...
Loading...