Minor regression with recent IRA changes

Jeff Law law@redhat.com
Mon Feb 24 21:51:00 GMT 2020



I don't think this is worth reverting the IRA changes.  BUt in case
someone raises the issue....

The bit_shift test for visium will fail with the recent IRA changes.

The change in register allocation results in not needing a move at the
start of the function.  This is generally good :-)  However in this
test that move previously allowed removal of a cmp insn during cmpelim.
With no move insn we can't eliminate the compare and the test fails.

Interestingly enough after cmpelim runs we run CE for if-conversion
which happens to put a suitable reg->reg copy in the right place to be
used to eliminate the compare.  But alas there's no cmpelim after CE,
so not only did we fail to eliminate the compare, there's a move in the
final assembly that would have worked just fine for our purposes.

There's a number of cascading effects (reorg) that make the resulting
code somewhat harder to follow from a performance standpoint.  But I
believe ultimately it is a regression, but one I consider very minor
and not worth reverting the IRA changes for since better register
allocation in general should trump compare/test elimination from a
performance standpoint.

Jeff






More information about the Gcc-patches mailing list