[v2,0/6] Add LoongArch v1.1 div32 and ld-seq-sa support

Message ID 20231117204323.453536-1-xry111@xry111.site
Headers
Series Add LoongArch v1.1 div32 and ld-seq-sa support |

Message

Xi Ruoyao Nov. 17, 2023, 8:43 p.m. UTC
  Superseds
https://gcc.gnu.org/pipermail/gcc-patches/2023-November/636795.html.

Requires
https://gcc.gnu.org/pipermail/gcc-patches/2023-November/636946.html.

Changes:

- Rebase on top of "Add LoongarchV1.1 instructions support".
- Not to translate loongarch-def.c C++.  Use int64_t instead of
  HOST_WIDE_INT in loongarch-def.h.
- In genopts, also generates cpucfg_useful_idx[] and N_CPUCFG_WORDS.
  Use decimals instead of hexidecimals for CPUCFG word index to make awk
  happy to perform numerical comparision.
- Dump arch and feature info as comments in generated assembly if
  -fverbose-asm.  It's helpful for testing and debugging.

Xi Ruoyao (6):
  LoongArch: Fix internal error running "gcc -march=native" on LA664
  LoongArch: genopts: Add infrastructure to generate code for new
    features in ISA evolution
  LoongArch: Add evolution features of base ISA revisions
  LoongArch: Take the advantage of -mdiv32 if it's enabled
  LoongArch: Don't emit dbar 0x700 if -mld-seq-sa
  LoongArch: Add fine-grained control for LAM_BH and LAMCAS

 gcc/config/loongarch/genopts/genstr.sh        |  92 ++++++++++++++-
 gcc/config/loongarch/genopts/isa-evolution.in |   4 +
 .../loongarch/genopts/loongarch-strings       |   1 +
 gcc/config/loongarch/genopts/loongarch.opt.in |  10 ++
 gcc/config/loongarch/loongarch-cpu.cc         | 105 +++++++++++-------
 gcc/config/loongarch/loongarch-cpucfg-map.h   |  50 +++++++++
 gcc/config/loongarch/loongarch-def.c          |   1 +
 gcc/config/loongarch/loongarch-def.h          |  12 ++
 gcc/config/loongarch/loongarch-opts.cc        |   3 +
 gcc/config/loongarch/loongarch-str.h          |  10 +-
 gcc/config/loongarch/loongarch.cc             |  35 +++++-
 gcc/config/loongarch/loongarch.md             |  31 +++++-
 gcc/config/loongarch/loongarch.opt            |  31 +++++-
 gcc/config/loongarch/sync.md                  |  25 +++--
 gcc/config/loongarch/t-loongarch              |  21 +++-
 .../gcc.target/loongarch/div-div32.c          |  31 ++++++
 .../gcc.target/loongarch/div-no-div32.c       |  11 ++
 17 files changed, 403 insertions(+), 70 deletions(-)
 create mode 100644 gcc/config/loongarch/genopts/isa-evolution.in
 create mode 100644 gcc/config/loongarch/loongarch-cpucfg-map.h
 create mode 100644 gcc/testsuite/gcc.target/loongarch/div-div32.c
 create mode 100644 gcc/testsuite/gcc.target/loongarch/div-no-div32.c