[0/4,RISC-V] support zcmp extention

Message ID 20230607055215.29332-1-gaofei@eswincomputing.com
Headers
Series support zcmp extention |

Message

Fei Gao June 7, 2023, 5:52 a.m. UTC
  please be noted the series depend on the zcmp switch that Jiawei posted
https://gcc.gnu.org/pipermail/gcc-patches/2023-April/615289.html

The 1st patch is a follow up on Kito's V3 review. 
Others are new.

Fei Gao (4):
  [RISC-V] support cm.push cm.pop cm.popret in zcmp
  [RISC-V] support cm.popretz in zcmp
  [RISC-V] resolve confilct between zcmp multi push/pop and shrink-wrap-separate
  [RISC-V] support cm.mva01s cm.mvsa01 in zcmp

 gcc/config/riscv/iterators.md                 |   15 +
 gcc/config/riscv/peephole.md                  |   28 +
 gcc/config/riscv/predicates.md                |  107 ++
 gcc/config/riscv/riscv-protos.h               |    1 +
 gcc/config/riscv/riscv.cc                     |  445 ++++-
 gcc/config/riscv/riscv.h                      |   23 +
 gcc/config/riscv/riscv.md                     |    4 +
 gcc/config/riscv/zc.md                        | 1457 +++++++++++++++++
 gcc/shrink-wrap.cc                            |   25 +-
 gcc/shrink-wrap.h                             |    1 +
 gcc/testsuite/gcc.target/riscv/cm_mv_rv32.c   |   21 +
 gcc/testsuite/gcc.target/riscv/rv32e_zcmp.c   |  251 +++
 gcc/testsuite/gcc.target/riscv/rv32i_zcmp.c   |  251 +++
 .../riscv/zcmp_shrink_wrap_separate.c         |   97 ++
 .../riscv/zcmp_shrink_wrap_separate2.c        |   97 ++
 .../gcc.target/riscv/zcmp_stack_alignment.c   |   23 +
 16 files changed, 2795 insertions(+), 51 deletions(-)
 create mode 100644 gcc/config/riscv/zc.md
 create mode 100644 gcc/testsuite/gcc.target/riscv/cm_mv_rv32.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/rv32e_zcmp.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/rv32i_zcmp.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/zcmp_shrink_wrap_separate.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/zcmp_shrink_wrap_separate2.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/zcmp_stack_alignment.c