From: claziss <[email protected]>
Hi,
This bunch of patches contain a number of critical patches to ARC backend:
- For ZOL: we have two patches which are avoiding the last ZOL instruction
to be placed into a delay slot, and update the number of uses for the ZOL
labels.
Also, we enable the DBNZ instruction only for ARC HS Core3 cpus. Tests are
provided.
- Update the legitimate constant hook.
- The trampoline implementation is revamped, and tested to work on ARC
Linux.
Without this patch trampolines are not working for ARC linux.
- The accumulator registers usage can be controlled via -ffixed option,
Also update
a number of patterns to reflect usage of accumulator regs.
- Add trap instruction, needed for ARC linux.
- Add TARGET_CANNOT_SUBSTITUE_MEM_EQUIV, to avoid LRA issues. Test
provided.
Ok to apply?
Claudiu
Claudiu Zissulescu:
[ARC][LRA] Use TARGET_CANNOT_SUBSTITUTE_MEM_EQUIV.
[ARC] Don't allow the last ZOL insn to be in a delay slot.
[ARC] Add trap instruction.
[ARC] Update legitimate constant hook.
[ARC] Enable unaligned access.
[ARC] Revamp trampoline implementation.
[ARC][ZOL] Update uses for hw-loop labels.
[ARC] Add ARCv2 core3 tune option.
[ARC][FIX] Consider command line ffixed- option.
[ARC] Update (u)maddsidi patterns.
gcc/config/arc/arc-arch.h | 3 +-
gcc/config/arc/arc-c.def | 1 +
gcc/config/arc/arc.c | 197 ++++++++++++++++++-----------
gcc/config/arc/arc.h | 6 +-
gcc/config/arc/arc.md | 74 +++++++----
gcc/config/arc/arc.opt | 40 +++---
gcc/testsuite/gcc.target/arc/loop-2.cpp | 18 +++
gcc/testsuite/gcc.target/arc/loop-3.c | 27 ++++
gcc/testsuite/gcc.target/arc/loop-4.c | 14 ++
gcc/testsuite/gcc.target/arc/lra-1.c | 17 +++
gcc/testsuite/gcc.target/arc/tls-1.c | 26 ++++
gcc/testsuite/gcc.target/arc/tumaddsidi4.c | 14 ++
12 files changed, 320 insertions(+), 117 deletions(-)
create mode 100644 gcc/testsuite/gcc.target/arc/loop-2.cpp
create mode 100644 gcc/testsuite/gcc.target/arc/loop-3.c
create mode 100644 gcc/testsuite/gcc.target/arc/loop-4.c
create mode 100644 gcc/testsuite/gcc.target/arc/lra-1.c
create mode 100644 gcc/testsuite/gcc.target/arc/tls-1.c
create mode 100755 gcc/testsuite/gcc.target/arc/tumaddsidi4.c
--
1.9.1