This patch series improves the support for the mips target in GCC,
and adds the support for the new architectures.

These patches are cherry-picked from the mips_rel/11_2_0/master
and mips_rel/9_3_0/master branches from the MIPS' repository:
https://github.com/MIPS/gcc .
Further details on the individual changes are included in the
respective patches.

Changes in v3:
- Rebased on the current GCC master.
- Dropped patches that had already been upstreamed or depended on
  changes not included in this series.
- Added test cases for the remaining patches.
- Expanded the commit messages with descriptions.

Link to v2:
https://sourceware.org/pipermail/gcc-patches/2025-March/677807.html

Chao-ying Fu (3):
  MIPS: Hazard barrier return support
  MIPS: Add support for -mclib=[newlib,small,tiny]
  MIPS: Check anti-dependence between 0 and 3 for loads

Matthew Fortune (5):
  MIPS: Add support for -mdead-loads
  MIPS: Add -msdata-num and -msdata-opt-list support
  MIPS: Add -munique-sections feature
  MIPS: Add -minline-intermix to ignore mips16/nomips16
  MIPS: Improve inlined memcpy

Mihailo Stojanovic (4):
  MIPS: Test solution on dspmac builtins
  MIPS: Inefficient scattered double precision load in MSA
  MIPS: Inefficient 64-bit signed modulo by powers of two
  MIPS: Implement synthesised conditional xor/or

Robert Suchanek (1):
  MIPS: Load/store bonding improvements

Simon Dardis (1):
  MIPS: Add -mfunc-opt-list=<FILE>

 gcc/config/mips/loongson-mmi.md               |    2 +-
 gcc/config/mips/mips-msa.md                   |    2 +-
 gcc/config/mips/mips-opts.h                   |    7 +
 gcc/config/mips/mips-protos.h                 |    8 +-
 gcc/config/mips/mips.cc                       | 1665 ++++++++++++++++-
 gcc/config/mips/mips.h                        |   15 +-
 gcc/config/mips/mips.md                       |  123 +-
 gcc/config/mips/mips.opt                      |   44 +
 gcc/config/mips/predicates.md                 |    5 +
 gcc/doc/extend.texi                           |   17 +
 gcc/doc/invoke.texi                           |  106 ++
 gcc/ifcvt.cc                                  |  134 ++
 gcc/testsuite/gcc.dg/Wstringop-overflow-47.c  |    6 +-
 gcc/testsuite/gcc.target/mips/align-1-o32.c   |    2 +-
 gcc/testsuite/gcc.target/mips/cond_xor-1.c    |   16 +
 gcc/testsuite/gcc.target/mips/cond_xor-2.c    |   15 +
 gcc/testsuite/gcc.target/mips/cond_xor.c      |   16 +
 gcc/testsuite/gcc.target/mips/dead-loads-1.c  |   11 +
 gcc/testsuite/gcc.target/mips/dead-loads-2.c  |   12 +
 .../gcc.target/mips/func-opt-list-1.c         |   15 +
 .../gcc.target/mips/func-opt-list-1.txt       |    1 +
 .../mips/hazard-barrier-return-attribute.c    |    2 +-
 .../gcc.target/mips/inline-intermix-1.c       |   13 +
 .../gcc.target/mips/inline-intermix-2.c       |   13 +
 .../gcc.target/mips/inline-intermix-3.c       |   13 +
 .../gcc.target/mips/inline-intermix-4.c       |   13 +
 .../gcc.target/mips/inline-memcpy-limit.c     |   17 +
 .../gcc.target/mips/inline-memcpy-straight.c  |   18 +
 .../gcc.target/mips/mac_zero_reload.c         |   32 +
 gcc/testsuite/gcc.target/mips/mips.exp        |   27 +
 gcc/testsuite/gcc.target/mips/mod-pow2.c      |  176 ++
 .../gcc.target/mips/msa-combine-fill-d.c      |   13 +
 .../mips/p5600-bonding-save-restore.c         |   13 +
 gcc/testsuite/gcc.target/mips/sdata-num-1.c   |   22 +
 .../gcc.target/mips/sdata-opt-list-1.c        |   21 +
 .../gcc.target/mips/sdata-opt-list-1.lst      |    1 +
 .../gcc.target/mips/unique-sections-bad.c     |    3 +
 .../gcc.target/mips/unique-sections.c         |   15 +
 .../gcc.target/mips/unique-sections.txt       |    3 +
 gcc/varasm.cc                                 |   11 +
 40 files changed, 2532 insertions(+), 116 deletions(-)
 create mode 100644 gcc/testsuite/gcc.target/mips/cond_xor-1.c
 create mode 100644 gcc/testsuite/gcc.target/mips/cond_xor-2.c
 create mode 100644 gcc/testsuite/gcc.target/mips/cond_xor.c
 create mode 100644 gcc/testsuite/gcc.target/mips/dead-loads-1.c
 create mode 100644 gcc/testsuite/gcc.target/mips/dead-loads-2.c
 create mode 100644 gcc/testsuite/gcc.target/mips/func-opt-list-1.c
 create mode 100644 gcc/testsuite/gcc.target/mips/func-opt-list-1.txt
 create mode 100644 gcc/testsuite/gcc.target/mips/inline-intermix-1.c
 create mode 100644 gcc/testsuite/gcc.target/mips/inline-intermix-2.c
 create mode 100644 gcc/testsuite/gcc.target/mips/inline-intermix-3.c
 create mode 100644 gcc/testsuite/gcc.target/mips/inline-intermix-4.c
 create mode 100644 gcc/testsuite/gcc.target/mips/inline-memcpy-limit.c
 create mode 100644 gcc/testsuite/gcc.target/mips/inline-memcpy-straight.c
 create mode 100644 gcc/testsuite/gcc.target/mips/mac_zero_reload.c
 create mode 100644 gcc/testsuite/gcc.target/mips/mod-pow2.c
 create mode 100644 gcc/testsuite/gcc.target/mips/msa-combine-fill-d.c
 create mode 100644 gcc/testsuite/gcc.target/mips/p5600-bonding-save-restore.c
 create mode 100644 gcc/testsuite/gcc.target/mips/sdata-num-1.c
 create mode 100644 gcc/testsuite/gcc.target/mips/sdata-opt-list-1.c
 create mode 100644 gcc/testsuite/gcc.target/mips/sdata-opt-list-1.lst
 create mode 100644 gcc/testsuite/gcc.target/mips/unique-sections-bad.c
 create mode 100644 gcc/testsuite/gcc.target/mips/unique-sections.c
 create mode 100644 gcc/testsuite/gcc.target/mips/unique-sections.txt

-- 
2.43.0

Reply via email to