mbox

[0/5] A few CRIS port improvements

Message ID 20220202002121.C1AC220438@pchp3.se.axis.com
Headers

Message

Hans-Peter Nilsson Feb. 2, 2022, 12:21 a.m. UTC
  I'm taking advantage of CRIS being a lesser important target and as
such not subject to the constraints of GCC being in stage 4.
I'm applying this set of CRIS-specific changes that don't have much
expected effect on generated code.

1: cris: Don't default to -mmul-bug-workaround
Avoid the workaround having a sort-of pseudorandom effect
on observability of code-quality changes.

2: cris: For expanded movsi, don't match operands we know will be
    reloaded
A random improvement noticed while looking at the performance impact
of the other changes, helping reload to behave better.

3:  cris: Remove CRIS v32 ACR artefacts
The bigger cleanup; tightening up register classes.  A left-over from
r11-220 / d0780379c1b6.  Unfortunately on its own has a negative
effect on performance, when applied in this order.  Don't apply
without the other patches in this set unless you're actually
interested in seeing the fallout.

4:  cris: Don't discriminate against ALL_REGS in TARGET_REGISTER_MOVE_COST
A workaround for a problem from before IRA, one that didn't fit well
with the register class cleanup.

5: cris: Reload using special-regs before general-regs
Fixing a flaw exposed by the register class cleanup.

 gcc/config/cris/constraints.md |  7 +++++-
 gcc/config/cris/cris.cc        | 36 +++++++++++++-------------
 gcc/config/cris/cris.h         | 46 ++++++++++++++++------------------
 gcc/config/cris/cris.md        | 33 +++++++++++++++++-------
 gcc/doc/invoke.texi            |  2 +-
 5 files changed, 70 insertions(+), 54 deletions(-)