Hi,

On Tue, 20 Nov 2012, Martin Jambor wrote:

> > +++ gcc/ipa-cp.c    2009-09-29 15:29:05.000000000 +0200
> > @@ -298,7 +298,7 @@ ipcp_lattice_from_jfunc (struct ipa_node
> >     return;
> >        cst = caller_lat->constant;
> >  
> > -      if (jfunc->value.pass_through.operation != NOP_EXPR)
> > +      if (! CONVERT_EXPR_CODE_P (jfunc->value.pass_through.operation))
> >     cst = fold_binary (jfunc->value.pass_through.operation,
> >                        TREE_TYPE (cst), cst,
> >                        jfunc->value.pass_through.operand);
> 
> This will of course work but it is a bit strange, jump functions do
> not do any conversions, NOP_EXPR operation really means they do
> nothing to the value they pass.  Similarly in ipa-prop.c.

I see.  So you're using NOP_EXPR really just as marker tree code not with 
its usual semantics (which includes conversions).  My goal really was to 
totally get rid of any mention of NOP_EXPR starting with the middle end, 
with the next goal then being to exclusively use CONVERT_EXPR everywhere.

So, while looking strange, I think IPA could also work with that marker 
being CONVERT_EXPR ultimately.  Deserves a comment, though.  And hey, who 
knows, perhaps eventually the jump functions could also express value 
conversion :)


Ciao,
Michael.

Reply via email to