Re: Teach ipa-cp to propagate value ranges over binary operaitons too

2019-11-12 Thread Jan Hubicka
> > well, it all relies on the simple fact that arithmetic jump function > discovery does not cross NOP_EXPRs, or any chain of assignments, so they > are only constructed from things like > > _2 = param_2(D) + 4; > bar (_2); > > but not from > > _1 = (NOP_EXPR) param_2(D); > _2 = _1 +

Re: Teach ipa-cp to propagate value ranges over binary operaitons too

2019-11-12 Thread Martin Jambor
Hi, On Tue, Nov 12 2019, Richard Biener wrote: > On Tue, 12 Nov 2019, Jan Hubicka wrote: > >> Hi, >> this patch adds propagation of value ranges through binary operations. >> This is disabled for value ranges within SCC to avoid infinite loop during >> propagation. I am bit worried about types he

Re: Teach ipa-cp to propagate value ranges over binary operaitons too

2019-11-12 Thread Jan Hubicka
> > + tree op = ipa_get_jf_pass_through_operand (jfunc); > > + value_range op_vr (op, op); > > + value_range op_res,res; > > + > > Do we really know operation is tcc_binary here? Constant propagation already assumes that at the same spot: if (TREE_CODE_CLASS (opcode) == tcc_unary)

Re: Teach ipa-cp to propagate value ranges over binary operaitons too

2019-11-12 Thread Richard Biener
On Tue, 12 Nov 2019, Jan Hubicka wrote: > Hi, > this patch adds propagation of value ranges through binary operations. > This is disabled for value ranges within SCC to avoid infinite loop during > propagation. I am bit worried about types here. As far as I can say we > have something like > >

Teach ipa-cp to propagate value ranges over binary operaitons too

2019-11-12 Thread Jan Hubicka
Hi, this patch adds propagation of value ranges through binary operations. This is disabled for value ranges within SCC to avoid infinite loop during propagation. I am bit worried about types here. As far as I can say we have something like VR in lattice of type1 foo (type1 param) { bar ((type