On 11/22/19 1:42 AM, Segher Boessenkool wrote: > On Thu, Nov 21, 2019 at 02:36:53PM +0100, Bernd Schmidt wrote: >> Thanks. Just FYI, this is held up a little. I decided I'd also test on >> x86, and there it shows a case where ix86_rtx_cost misses something: the >> i386/pr30315.c testcase wants to combine compares into addition+jump on >> carry, but the rtx_costs show too high a cost for (compare (plus)). I'm >> testing a fix for that in i386.c. > > Maybe i386 should implement the insn_cost hook as well? For most targets > that is a lot simpler to get right than rtx_cost, but allowing memory in > many insns and all the different insn lengths complicates matters. At > least insn_cost isn't inside-out, that should make it easier to deal with > already.
That kind of thing is up to the x86 maintainers. I think the problem at hand can be fixed quite simply by detecting PLUS inside COMPARE and just counting it like we would a normal PLUS. Patch will follow once testing is complete. Bernd