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
