From: claziss <claz...@synopsys.com>

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

Reply via email to