mbox series

[COMMITTED,0/9] Small cleanups and improvements for PRU backend

Message ID cover.1715065537.git.dimitar@dinux.eu
Headers show
Series Small cleanups and improvements for PRU backend | expand

Message

Dimitar Dimitrov May 7, 2024, 7:22 a.m. UTC
This patch set includes small cleanups and code generation improvements
I implemented during stages 3 and 4.

All patches have been regression-tested individually for pru-unknown-elf
while being developed.  And the entire set was tested again on GCC 15
mainline.

Dimitar Dimitrov (9):
  pru: Implement TARGET_ADDRESS_COST
  pru: Implement zero fill for 64-bit registers
  pru: Optimize the extzv and insv patterns
  pru: Add pattern variants for zero extending destination
  pru: Skip register save if function will not return
  pru: Drop usage of ATTRIBUTE_UNUSED
  pru: Use HOST_WIDE_INT_1U macro
  pru: Refactor to use passes definition file
  pru: New validation pass for minrt

 gcc/config/pru/alu-zext.md                    |  38 +++++-
 gcc/config/pru/pru-passes.cc                  |  96 ++++++++++---
 gcc/config/pru/pru-passes.def                 |  29 ++++
 gcc/config/pru/pru-pragma.cc                  |   2 +-
 gcc/config/pru/pru-protos.h                   |   3 +-
 gcc/config/pru/pru.cc                         |  58 +++++---
 gcc/config/pru/pru.md                         | 128 +++++++++++++++---
 gcc/config/pru/t-pru                          |   2 +
 gcc/testsuite/g++.target/pru/minrt-1.cc       |  10 ++
 gcc/testsuite/g++.target/pru/minrt-2.cc       |  10 ++
 gcc/testsuite/g++.target/pru/minrt-3.cc       |   9 ++
 gcc/testsuite/g++.target/pru/pru.exp          |  34 +++++
 gcc/testsuite/gcc.target/pru/ashiftrt.c       |   2 +-
 gcc/testsuite/gcc.target/pru/extzv-1.c        |  14 ++
 gcc/testsuite/gcc.target/pru/extzv-2.c        |  15 ++
 gcc/testsuite/gcc.target/pru/extzv-3.c        |  13 ++
 gcc/testsuite/gcc.target/pru/insv-1.c         |  14 ++
 gcc/testsuite/gcc.target/pru/insv-2.c         |  14 ++
 gcc/testsuite/gcc.target/pru/insv-3.c         |  14 ++
 gcc/testsuite/gcc.target/pru/insv-4.c         |  14 ++
 gcc/testsuite/gcc.target/pru/minrt-1.c        |  10 ++
 gcc/testsuite/gcc.target/pru/minrt-2.c        |  10 ++
 gcc/testsuite/gcc.target/pru/minrt-3.c        |   9 ++
 gcc/testsuite/gcc.target/pru/mov-0.c          |  19 +++
 .../gcc.target/pru/noreturn-prologue-1.c      |  10 ++
 .../gcc.target/pru/noreturn-prologue-2.c      |  11 ++
 .../gcc.target/pru/zero_extend-op0.c          |  28 ++++
 27 files changed, 549 insertions(+), 67 deletions(-)
 create mode 100644 gcc/config/pru/pru-passes.def
 create mode 100644 gcc/testsuite/g++.target/pru/minrt-1.cc
 create mode 100644 gcc/testsuite/g++.target/pru/minrt-2.cc
 create mode 100644 gcc/testsuite/g++.target/pru/minrt-3.cc
 create mode 100644 gcc/testsuite/g++.target/pru/pru.exp
 create mode 100644 gcc/testsuite/gcc.target/pru/extzv-1.c
 create mode 100644 gcc/testsuite/gcc.target/pru/extzv-2.c
 create mode 100644 gcc/testsuite/gcc.target/pru/extzv-3.c
 create mode 100644 gcc/testsuite/gcc.target/pru/insv-1.c
 create mode 100644 gcc/testsuite/gcc.target/pru/insv-2.c
 create mode 100644 gcc/testsuite/gcc.target/pru/insv-3.c
 create mode 100644 gcc/testsuite/gcc.target/pru/insv-4.c
 create mode 100644 gcc/testsuite/gcc.target/pru/minrt-1.c
 create mode 100644 gcc/testsuite/gcc.target/pru/minrt-2.c
 create mode 100644 gcc/testsuite/gcc.target/pru/minrt-3.c
 create mode 100644 gcc/testsuite/gcc.target/pru/mov-0.c
 create mode 100644 gcc/testsuite/gcc.target/pru/noreturn-prologue-1.c
 create mode 100644 gcc/testsuite/gcc.target/pru/noreturn-prologue-2.c
 create mode 100644 gcc/testsuite/gcc.target/pru/zero_extend-op0.c