BTW, sorry for procrastinated for so long, I know I owe someone a review, just couldn't remember who. Sun
On Tue, Jul 12, 2011 at 8:44 PM, Sun Chan <sun.c...@gmail.com> wrote: > I am ok with the changes, except you have not address my original > question, cand/cior is originally designed to allow CSE of such > expressions, with your new changes, you gain some, but loose some > also. How do you allow better heuristics to do one or the other > Sun > > On Tue, Jul 12, 2011 at 8:38 AM, David Coakley <dcoak...@gmail.com> wrote: >> I don't see a problem with that. I also put the related function >> wn_is_assign_return in wn.cxx. >> >> A revised patch is attached. >> >> On Mon, Jul 11, 2011 at 3:11 PM, Ye, Mei <mei...@amd.com> wrote: >>> Can "wn_is_assign" placed in common/com/wn.cxx? >>> >>> -Mei >>> >>> -----Original Message----- >>> From: David Coakley [mailto:dcoak...@gmail.com] >>> Sent: Monday, July 11, 2011 11:43 AM >>> To: open64-devel; Sun Chan >>> Subject: Re: [Open64-devel] revised patch to enable more if-conversion >>> >>> I did not receive any feedback on this patch. Did anyone get a chance to >>> review it? >>> >>> On Tue, Jun 21, 2011 at 2:25 PM, David Coakley <dcoak...@gmail.com> wrote: >>>> The attached patch is a minor revision to a patch that I posted a few >>>> weeks ago. The code in lower_if() was modified to make it more clear >>>> when the transformation is applied: >>>> >>>> if (Action(LOWER_SHORTCIRCUIT) && >>>> OPT_Lower_Splitsinglecand && WOPT_Enable_Simple_If_Conv >= 1) >>>> { >>>> lower_split_single_cand(tree, actions); >>>> } >>>> >>>> I have added more detail to the description in an attempt to address >>>> some questions raised by the earlier patch: >>>> >>>> Convert: >>>> if (a && b) >>>> x = ... >>>> To: >>>> if (a) >>>> if (b) >>>> x = ... >>>> To enable more if-conversion. >>>> >>>> Without this transformation, WHIRL-lowering creates control flow that >>>> WOPT-if-conversion can't handle. With this transformation, this now >>>> looks like any other if-conversion opportunity to WOPT. >>>> So this transformation enables more if-conversion (i.e. replace branch >>>> with conditional move). >>>> >>>> The transformation is enabled when the internal flag >>>> OPT_Lower_Splitsinglecand is on (the default) and when if-conversion >>>> is enabled in WOPT. It is applied when the action flag >>>> LOWER_SHORTCIRCUIT is set (mainopt phase). >>>> >>>> As part of the transformation, all profile info is updated to be >>>> consistent: in-edge weights equal out-edge weights, all new edges have >>>> weights, overall incoming/outgoing frequency to the original node does >>>> not change, and the frequency of "if a && b" >>>> is true is equal to the frequency of "if a/if b" is true. >>>> >>>> >>>> Sun and others, please let me know if it looks ok. >>>> >>>> -David Coakley / AMD Open Source Compiler Engineering >>>> >>> >>> >> > ------------------------------------------------------------------------------ All of the data generated in your IT infrastructure is seriously valuable. Why? It contains a definitive record of application performance, security threats, fraudulent activity, and more. Splunk takes this data and makes sense of it. IT sense. And common sense. http://p.sf.net/sfu/splunk-d2d-c2 _______________________________________________ Open64-devel mailing list Open64-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/open64-devel