>
>
> ------------------------------
>
> Message: 2
> Date: Thu, 9 Aug 2012 13:36:03 -0400
> From: Siddhartha Jana <siddharthajan...@gmail.com>
> Subject: [Open64-devel] IPA + Aliasing + Nystrom Alias Analyzer +
> debugging IPA
> To: open64-devel@lists.sourceforge.net
> Message-ID:
> <CAPkf6e3r65KXLDV7AJbRGSYSqjaoLNs5N=mFH_8Xq1Zs=
> j_...@mail.gmail.com>
> Content-Type: text/plain; charset="iso-8859-1"
>
> Hello,
> Hi,
> I am a beginner at Open64 development. I needed some help on the following:
>
> My goal:
> I am trying to access the inter-procedural alias analysis information
> within IPA,
> immediately after the completion of the inlining analysis.
>
> The current version of alias analysis in IPA is performed before inlining,
so that it could have more control over the procedure size, especially for
bottom up traversal of call graph. Please see this doc for more information:
http://dynopt.org/open64/slides/8_Ravindran.ppt
These are my observations and queries:
>
> 1. The Nystrom Alias classification is performed immediately before IPAA,
> within
> the function Perform_Interprocedural_Analysis() [in IPA_main.cxx].
> (this is in alignment with the wiki page on Nystrom Alias Analysis.)
> Here we use the alias analyzer object to perform the alias analysis using
> the function
> solver(). However, in solver, I see that the analysis is NOT
> context-sensitive
> (the BOOL contextSensitive remains FALSE) Could someone please explain
> this?
>
> context sensitive analysis of fulcra is still not as scalable as andersen
analysis for productivity compilers like open64, so this option remains
open, you could add your own context sensitive algorithm here for research
purpose.
>
> 2. Also, is it true that instantiating the Alias_Manager anytime after the
> Inter-procedural analysis will
> give me access to the alias_analysis information?
> When I did the following at the end of Perform_Interprocedural_Analysis(),
> ALIAS_MANAGER* alias_mgr =
> Create_Alias_Manager(MEM_pu_nz_pool_ptr,body);
> Dump_alias_mgr(alias_mgr, body, stdout)
> Delete_Alias_Manager (alias_mgr , MEM_pu_nz_pool_ptr);
> I get the IR, the point-to info and the alias_id info but none information
> beyond alias_id > 2.(so all I get is the preg aliasing information)
>
> If you want to use the IPA alias information there are two ways:
1) you could use "PointsTo" directly through constraint graph node(program
variable).
2) if you want to attach alias information to each WN, you can use
"AliasTag" internally supported by Open64. AliasTag is an index for a
points to set, its points to set is the memory locations the WN access.
Generating AliasTag for IPA alias information is bit more complex, Pls
refer to ipa_preopt.cxx file, it hooks the BE NystromAliasAnalyzer to do
this job. In your case, ALIAS_MANAGER can not be created directly
after Perform_Interprocedural_Analysis(), you have to switch ipa
CONTEXT, ALIAS_MANAGER have to be created multiple times for each PU.
Again, you could take a look at ipa_preopt.cxx and
nystrom_alias_analyzer.cxx to solve your problem.
> 3. Also, while debugging (with -ipa and -Wb,-OPT=nystrom) the call
> to IPA_NystromAliasAnalyzer::aliasAnalyzer()
> returns a NULL within Perform_Interprocedural_Analysis() [in IPA_main.cxx].
> Is there a previous point where the ALIAS_MANAGER is called to instantiate
> the NystromAliasAnalyzer class?
>
The quickest option for debugging IPA alias, like this :
-show -ipa -OPT:alias=field_sensitive
or you could do more for tracing the detailed debug information, like this:
-show -ipa -OPT:alias=field_sensitive -Wj,-tt24:0x1
BTW:
1) -Wb is used for debugging BE info, like NystromAliasAnalyzer.
2) You should refer to version 5.0 or later, "-OPT=nystrom" is pretty old
options.
>
>
> I would be highly obliged if someone could point me to the right direction.
>
> Awaiting reply,
> Sincerely,
> Siddhartha Jana
> University of Houston
> -------------- next part --------------
> An HTML attachment was scrubbed...
>
> ------------------------------
>
> Message: 3
> Date: Thu, 9 Aug 2012 13:56:34 -0400
> From: Siddhartha Jana <siddharthajan...@gmail.com>
> Subject: Re: [Open64-devel] IPA + Aliasing + Nystrom Alias Analyzer +
> debugging IPA
> To: open64-devel@lists.sourceforge.net
> Message-ID:
> <CAPkf6e1GG=+-EPcW6f3uLLsPw9cK8b-diVQg7qSS+j5oaMg=
> u...@mail.gmail.com>
> Content-Type: text/plain; charset="iso-8859-1"
>
> In discussion 2 below for this code fragment:
>
> ALIAS_MANAGER* alias_mgr =
> Create_Alias_Manager(MEM_pu_nz_pool_ptr,body);
> Dump_alias_mgr(alias_mgr, body, stdout)
> Delete_Alias_Manager (alias_mgr , MEM_pu_nz_pool_ptr);
>
> I forgot to mention that:
> body = WN_func_body(whirl tree of each of the nodes of the IPA_CALL_GRAPH
> )
>
> Thanks,
>
>
> On 9 August 2012 13:36, Siddhartha Jana <siddharthajan...@gmail.com>
> wrote:
>
> > Hi,
> > I am a beginner at Open64 development. I needed some help on the
> following:
> >
> > My goal:
> > I am trying to access the inter-procedural alias analysis information
> > within IPA,
> > immediately after the completion of the inlining analysis.
> >
> > These are my observations and queries:
> >
> > 1. The Nystrom Alias classification is performed immediately before IPAA,
> > within
> > the function Perform_Interprocedural_Analysis() [in IPA_main.cxx].
> > (this is in alignment with the wiki page on Nystrom Alias Analysis.)
> > Here we use the alias analyzer object to perform the alias analysis using
> > the function
> > solver(). However, in solver, I see that the analysis is NOT
> > context-sensitive
> > (the BOOL contextSensitive remains FALSE) Could someone please explain
> > this?
> >
> >
> > 2. Also, is it true that instantiating the Alias_Manager anytime after
> the
> > Inter-procedural analysis will
> > give me access to the alias_analysis information?
> > When I did the following at the end of
> Perform_Interprocedural_Analysis(),
> > ALIAS_MANAGER* alias_mgr =
> > Create_Alias_Manager(MEM_pu_nz_pool_ptr,body);
> > Dump_alias_mgr(alias_mgr, body, stdout)
> > Delete_Alias_Manager (alias_mgr , MEM_pu_nz_pool_ptr);
> > I get the IR, the point-to info and the alias_id info but none
> information
> > beyond alias_id > 2.(so all I get is the preg aliasing information)
> >
> >
> > 3. Also, while debugging (with -ipa and -Wb,-OPT=nystrom) the call
> > to IPA_NystromAliasAnalyzer::aliasAnalyzer()
> > returns a NULL within Perform_Interprocedural_Analysis() [in
> > IPA_main.cxx].
> > Is there a previous point where the ALIAS_MANAGER is called to
> instantiate
> > the NystromAliasAnalyzer class?
> >
> >
> > I would be highly obliged if someone could point me to the right
> direction.
> >
> > Awaiting reply,
> > Sincerely,
> > Siddhartha Jana
> > University of Houston
> >
> >
> -------------- next part --------------
> An HTML attachment was scrubbed...
>
> ------------------------------
>
> Message: 4
> Date: Thu, 9 Aug 2012 15:28:43 -0400
> From: Siddhartha Jana <siddharthajan...@gmail.com>
> Subject: Re: [Open64-devel] IPA + Aliasing + Nystrom Alias Analyzer +
> debugging IPA
> To: open64-devel@lists.sourceforge.net
> Message-ID:
> <
> capkf6e0k9s1h34sqodpasroxhj6ktfjmh2vcblrjdtpwyqt...@mail.gmail.com>
> Content-Type: text/plain; charset="iso-8859-1"
>
> Sorry for the multiple emails. For section 3:
> Also the flag used was -Wb,-OPT:alias=nystrom
>
>
>
> On 9 August 2012 13:56, Siddhartha Jana <siddharthajan...@gmail.com>
> wrote:
>
> > In discussion 2 below for this code fragment:
> >
> > ALIAS_MANAGER* alias_mgr =
> > Create_Alias_Manager(MEM_pu_nz_pool_ptr,body);
> > Dump_alias_mgr(alias_mgr, body, stdout)
> > Delete_Alias_Manager (alias_mgr , MEM_pu_nz_pool_ptr);
> >
> > I forgot to mention that:
> > body = WN_func_body(whirl tree of each of the nodes of the
> IPA_CALL_GRAPH
> > )
> >
> > Thanks,
> >
> >
> > On 9 August 2012 13:36, Siddhartha Jana <siddharthajan...@gmail.com
> >wrote:
> >
> >> Hi,
> >> I am a beginner at Open64 development. I needed some help on the
> >> following:
> >>
> >> My goal:
> >> I am trying to access the inter-procedural alias analysis information
> >> within IPA,
> >> immediately after the completion of the inlining analysis.
> >>
> >> These are my observations and queries:
> >>
> >> 1. The Nystrom Alias classification is performed immediately before
> IPAA,
> >> within
> >> the function Perform_Interprocedural_Analysis() [in IPA_main.cxx].
> >> (this is in alignment with the wiki page on Nystrom Alias Analysis.)
> >> Here we use the alias analyzer object to perform the alias analysis
> using
> >> the function
> >> solver(). However, in solver, I see that the analysis is NOT
> >> context-sensitive
> >> (the BOOL contextSensitive remains FALSE) Could someone please explain
> >> this?
> >>
> >>
> >> 2. Also, is it true that instantiating the Alias_Manager anytime after
> >> the Inter-procedural analysis will
> >> give me access to the alias_analysis information?
> >> When I did the following at the end of
> Perform_Interprocedural_Analysis(),
> >> ALIAS_MANAGER* alias_mgr =
> >> Create_Alias_Manager(MEM_pu_nz_pool_ptr,body);
> >> Dump_alias_mgr(alias_mgr, body, stdout)
> >> Delete_Alias_Manager (alias_mgr , MEM_pu_nz_pool_ptr);
> >> I get the IR, the point-to info and the alias_id info but none
> >> information beyond alias_id > 2.(so all I get is the preg aliasing
> >> information)
> >>
> >>
> >> 3. Also, while debugging (with -ipa and -Wb,-OPT=nystrom) the call
> >> to IPA_NystromAliasAnalyzer::aliasAnalyzer()
> >> returns a NULL within Perform_Interprocedural_Analysis() [in
> >> IPA_main.cxx].
> >> Is there a previous point where the ALIAS_MANAGER is called to
> >> instantiate the NystromAliasAnalyzer class?
> >>
> >>
> >> I would be highly obliged if someone could point me to the right
> >> direction.
> >>
> >> Awaiting reply,
> >> Sincerely,
> >> Siddhartha Jana
> >> University of Houston
> >>
> >>
> >
> -------------- next part --------------
> An HTML attachment was scrubbed...
>
> ------------------------------
>
>
> ------------------------------------------------------------------------------
> Live Security Virtual Conference
> Exclusive live event will cover all the ways today's security and
> threat landscape has changed and how IT managers can respond. Discussions
> will include endpoint security, mobile security and the latest in malware
> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
>
> ------------------------------
>
> _______________________________________________
> Open64-devel mailing list
> Open64-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/open64-devel
>
>
> End of Open64-devel Digest, Vol 69, Issue 7
> *******************************************
>
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Open64-devel mailing list
Open64-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/open64-devel