The first is a helper patch to allow targets to check shrink-wrap-separate enabled or not. The second is zcmp extension implementation in RISC-V.
Fei Gao (2): allow target to check shrink-wrap-separate enabled or not support cm.push cm.pop cm.popret in zcmp and resolve confilct with shrink-wrap-separate gcc/config/riscv/iterators.md | 15 + gcc/config/riscv/predicates.md | 96 ++ gcc/config/riscv/riscv-protos.h | 2 + gcc/config/riscv/riscv.cc | 455 ++++++- gcc/config/riscv/riscv.h | 25 + gcc/config/riscv/riscv.md | 2 + gcc/config/riscv/zc.md | 1042 +++++++++++++++++ gcc/shrink-wrap.cc | 25 +- gcc/shrink-wrap.h | 1 + gcc/testsuite/gcc.target/riscv/rv32e_zcmp.c | 256 ++++ gcc/testsuite/gcc.target/riscv/rv32i_zcmp.c | 256 ++++ .../gcc.target/riscv/zcmp_push_fpr.c | 34 + .../riscv/zcmp_shrink_wrap_separate.c | 93 ++ .../riscv/zcmp_shrink_wrap_separate2.c | 93 ++ .../gcc.target/riscv/zcmp_stack_alignment.c | 24 + 15 files changed, 2357 insertions(+), 62 deletions(-) create mode 100644 gcc/config/riscv/zc.md 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_push_fpr.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 -- 2.17.1