gcc/config/cris: Remove shared-library and CRIS v32 support.
authorHans-Peter Nilsson <hp@axis.com>
Wed, 22 Jan 2020 04:52:16 +0000 (05:52 +0100)
committerHans-Peter Nilsson <hp@axis.com>
Sat, 9 May 2020 01:29:14 +0000 (03:29 +0200)
commitd0780379c1b621813fbea60449bc51b65f6f8c6e
tree31262352dd0257b77a99bc044a0a23a67e3d0649
parent0e44849e9ef3f44b398dd824f7a4916a486325d3
gcc/config/cris: Remove shared-library and CRIS v32 support.

Part of the removal of crisv32-* and cris-*-linux* (cris-elf remains).

Essentially everything is gone, including functions and
target-specific definitions and most obvious knock-on effects,
like removing unused functions and arguments.

There's one exception: the register-class effects of the CRIS v32
ACR register are deliberately excluded and left in (i.e. its
use by-number is removed and the ACE_REGS regclass is always
unusable - but present).  Changing register class definitions to
remove ACR_REGS and related classes (folding their uses into
remaining classes), causes extra register moves in libgcc (as an
immediate observation; actual net effect unknown), which is
unwanted both for performance reasons and also causing extra
work comparing before/after cc0-machinery-conversion changes
ahead.  The actual cause and solution for these negative effects
of cleaning up the register-classes will at the moment have to
remain to-be-investigated.

If CRIS v32 support is reinstated, consider doing the .md part
not as separate patterns with opposite conditions but merged
patterns with necessarily-different alternatives using the
"enabled" attribute (which was not invented back then).

Also, a single ACR-related RTL-dump example in a cris.md
comment, related to a strict_low_part issue is kept, but marked
as obsolete.

Note that the "b" register-constraint (non-ACR registers; can be
used for post-increment) is left in, as that may have extant
uses outside of gcc.  Its availability is tested by
gcc.target/cris/asm-b-1.c.  When ACR register classes are
removed, it's probably best to make it equal to GENERAL_REGS.

gcc:
* config/cris: Remove shared-library and CRIS v32 support.
gcc/ChangeLog
gcc/config/cris/constraints.md
gcc/config/cris/cris-protos.h
gcc/config/cris/cris.c
gcc/config/cris/cris.h
gcc/config/cris/cris.md
gcc/config/cris/cris.opt
gcc/config/cris/predicates.md
gcc/config/cris/sync.md