Would replacing CAND/CIOR by LAND/LIOR work for the cases you are looking at.

Murthy

________________________________
From: shuxin yang [mailto:shuxin.ope...@gmail.com]
Sent: Monday, June 06, 2011 10:32 AM
To: Chandrasekhar Murthy
Cc: Sun Chan; open64-devel
Subject: Re: [Open64-devel] patch to enable more if-conversion

Hi:
   (Just a general question about conditional and/or, not specific to open64.)

   More often than not, I find it is more convenient to directly deal with 
cand/cor at the level higher than CG. I don't remember all these situations I 
ran into. Here is some examples:

  e.g.1: merge the if-then-else constructs
   if (c1||c1) s1 then s2;
  ..
   if (c1||c2) s3 then s4;

 e.g.2 PRE complicate cand/cor
   if (cand-cor)  {..}


   .. some stmts here

   if (cand-cor) {}

  e.g3 reorder the sub-expr in the cand/cor, suppose it is safe to to that
   c1 || c2 || c3 => c3 || c2 || c1

I believe sometimes lowered cand-cor could be more convenient. However, dealing 
with CFG is far more difficult than expression. If I were compiler designer, I 
would keep cand/cor all the way down to the point right before CG.  What is 
your take?

Thanks
Shuxin

On Mon, Jun 6, 2011 at 8:42 AM, Chandrasekhar Murthy 
<mur...@sgi.com<mailto:mur...@sgi.com>> wrote:
As some of the files in lno (access_vector.cxx, array_bounds.cxx, etc..) are 
processing these nodes, I think the lowering is done after LNO.

Murthy

-----Original Message-----
From: Sun Chan [mailto:sun.c...@gmail.com<mailto:sun.c...@gmail.com>]
Sent: Monday, June 06, 2011 8:20 AM
To: Chandrasekhar Murthy
Cc: David Coakley; open64-devel
Subject: Re: [Open64-devel] patch to enable more if-conversion

Thx Murthy, does this mean we should keep these nodes till after LNO?
David,
Is your if-conv fix at mainopt? Or is it at preopt? From this
discussion so far, this should be done in mainopt, i.e. the lowering
into your new form ought to be done at mainopt, after LNO.
Sun

On Mon, Jun 6, 2011 at 7:24 AM, Chandrasekhar Murthy 
<mur...@sgi.com<mailto:mur...@sgi.com>> wrote:
> && and || were initially handled in the frontend.
> CAND/CIOR were added later in order to move the lowering to VHO.
> The lowering was deferred to later so that LNO could also process these nodes.
>
> Murthy
>
> -----Original Message-----
> From: Sun Chan [mailto:sun.c...@gmail.com<mailto:sun.c...@gmail.com>]
> Sent: Saturday, June 04, 2011 9:54 PM
> To: David Coakley
> Cc: open64-devel
> Subject: Re: [Open64-devel] patch to enable more if-conversion
>
> I forgot why we did cand anymore. OTOH, I do remember lowering that
> with profile feedback info is tricky to get that right. Can you double
> check that you are not breaking profile info and consistency check
> with your changes?
> Sun
>
> On Fri, Jun 3, 2011 at 1:53 PM, David Coakley 
> <dcoak...@gmail.com<mailto:dcoak...@gmail.com>> wrote:
>> Could a gatekeeper please review the attached change that enables more
>> if-conversion?
>>
>> Here is the proposed log message:
>>
>> 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).  No if-conversion code was touched -
>> only lowering code.
>>
>>
>>
>>
>> I have also attached a small test program that demonstrates when the
>> transformation occurs.  Thanks,
>>
>> -David Coakley / AMD Open Source Compiler Engineering
>>
>> ------------------------------------------------------------------------------
>> Simplify data backup and recovery for your virtual environment with vRanger.
>> Installation's a snap, and flexible recovery options mean your data is safe,
>> secure and there when you need it. Discover what all the cheering's about.
>> Get your free trial download today.
>> http://p.sf.net/sfu/quest-dev2dev2
>> _______________________________________________
>> Open64-devel mailing list
>> Open64-devel@lists.sourceforge.net<mailto:Open64-devel@lists.sourceforge.net>
>> https://lists.sourceforge.net/lists/listinfo/open64-devel
>>
>>
>
> ------------------------------------------------------------------------------
> Simplify data backup and recovery for your virtual environment with vRanger.
> Installation's a snap, and flexible recovery options mean your data is safe,
> secure and there when you need it. Discover what all the cheering's about.
> Get your free trial download today.
> http://p.sf.net/sfu/quest-dev2dev2
> _______________________________________________
> Open64-devel mailing list
> Open64-devel@lists.sourceforge.net<mailto:Open64-devel@lists.sourceforge.net>
> https://lists.sourceforge.net/lists/listinfo/open64-devel
>

------------------------------------------------------------------------------
Simplify data backup and recovery for your virtual environment with vRanger.
Installation's a snap, and flexible recovery options mean your data is safe,
secure and there when you need it. Discover what all the cheering's about.
Get your free trial download today.
http://p.sf.net/sfu/quest-dev2dev2
_______________________________________________
Open64-devel mailing list
Open64-devel@lists.sourceforge.net<mailto:Open64-devel@lists.sourceforge.net>
https://lists.sourceforge.net/lists/listinfo/open64-devel

------------------------------------------------------------------------------
Simplify data backup and recovery for your virtual environment with vRanger.
Installation's a snap, and flexible recovery options mean your data is safe,
secure and there when you need it. Discover what all the cheering's about.
Get your free trial download today. 
http://p.sf.net/sfu/quest-dev2dev2 
_______________________________________________
Open64-devel mailing list
Open64-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/open64-devel

Reply via email to