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.