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> 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]
> 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>
> 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]
> > 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>
> 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
> >> 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
> >
>
>
> ------------------------------------------------------------------------------
> 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
>
------------------------------------------------------------------------------
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