On Wed, 22 Nov 2017, Jakub Jelinek wrote: > On Wed, Nov 22, 2017 at 10:41:19AM +0100, Richard Biener wrote: > > How much churn would it be to pass down a mode alongside the operands > > in expand_binop? Can't find it right now but didn't we introduce > > some rtx_with_mode pair-like stuff somewhen? > > We have rtx_mode_t for that. But there are 240+ calls to expand_binop, > and even if we add an overload that will transform it, unless we forcefully > inline it wouldn't that slow down all the spots a little bit? > The thing is, for the vast majority of binary ops we don't need the operand > modes, it is mainly comparisons, second arg of shifts/rotates and this > widening case.
Ok, so maybe split expand_binop then to the class of cases where we do need the mode and a class where we don't then? We don't have to use rtx_mode_t we can just pass two arguments. Not sure what is more convenient to use. Anyway, this doesn't have to happen in stage3, just as a general note on how I believe we changed things in other places. Richard S. may remember more here. Richard.