RE: [Open64-devel] RE: [Ipf-orc-support] ORC optimization level and involved optimizations
Brought to you by:
ributzka,
suneeljain
From: Peng T. <tu...@te...> - 2002-06-19 17:38:33
|
Very good points. I haven't thought about these. Since you wrote the whole DG package in the compiler, you certainly know the intricacy and trade-offs better than anyone. I CCed the whole list to make sure my previous comments don't lead some poor graduate students into a life long endeavor :-) Peng. -----Original Message----- From: Dror Maydan [mailto:ma...@te...] Sent: Wednesday, June 19, 2002 10:09 AM To: Peng Tu Subject: Re: [Open64-devel] RE: [Ipf-orc-support] ORC optimization level and involved optimizations Peng Tu wrote: The function is in Build_CG_Dependence_Graph in lnopt_main.cxx. It is invoked after LNO finishs its transformations. Current CG only understands the stripped DG so it must be stripped. However, you can certainly keep the original DG and pass it to CG. You will have to change the CG to use it. I would suggest you add a new interface to the DG (dep_graph.h) such that the current CG will still get only the inner loop information (stripping on-the-fly), whereas your new CG can use the full graph. Read the comments in dep_graph.h. Another thing to keep in mind is that the dependence graph passes through the global optimizer. When the optimizer CSE load/store, it preserve the DG. It should work just fine, but may need some small fixes here and there. I'd be nervous. What happens if the optimizer deletes the outer loop because it has only one iteration. What happens if a load is moved out of an inner loop into an outer. Dror Peng. -----Original Message----- From: rong [mailto:ro...@ca...] Sent: Wednesday, June 19, 2002 6:26 AM To: Peng Tu Cc: ope...@li... Subject: Re: [Open64-devel] RE: [Ipf-orc-support] ORC optimization level and involved optimizations Thanks for the answer. Do you know exactly where the DDG for outer loops are stripped? Before Backend_Processing or after it? Do we must strip it or we can preserve it? Thanks. Rong Peng Tu wrote: It is not clear what you meant by multi-dimensional dependence.At -O3, LNO builds array dependence graph for multi-dimensionalarrays in single and nested loops. The dependence graph is usedby LNO to perform loop transformations. However, because the SWP only works on the innermost loop of nestedloops. The dependence graph for outer loops are stripped before itis passed to the SWP.I don't know if ORC has been updated with multi-dimensional arrayidentification codes in LNO. The GCC frontend always flattens arrayaccess into a linear address expression. The original LNO arrayformation routine in the Pro64 release was built for the EDG frontendwhere array subscripts are preserved.Peng. -----Original Message-----Message: 1Date: Mon, 17 Jun 2002 15:49:19 -0400From: rong <ro...@ca...>To: "Chan, Sun C" <sun...@in...>CC: "'Won So'" <ws...@eo...>, ipf...@li..., "'ope...@li...'" <ope...@li...>Subject: Re: [Open64-devel] RE: [Ipf-orc-support] ORC optimization level and involved optimiz ations.!!< br>--------------020604090800050803020207Content-Type: text/plain; charset=us-ascii; format=flowedContent-Transfer-Encoding: 7bitHello. I have another question: in level O3, you mean swp gets multi-dimensional dependence information from LNO? So it can be used not only for single loops, but also nested loops. Am I right?Thanks.Rong ---------------------------------------------------------------------------- Bringing you mounds of caffeinated joy >>> http://thinkgeek.com/sf <<<_______________________________________________Open64-devel mailing lis...@li...https://lists.sourceforge.net/lists/li stinfo/open64-devel |