mbox series

[0/3] RISC-V: Add Ratified Cache Management Operation ISA Extensions

Message ID 20220325062055.12816-1-yulong@nj.iscas.ac.cn
Headers show
Series RISC-V: Add Ratified Cache Management Operation ISA Extensions | expand

Message

yulong@nj.iscas.ac.cn March 25, 2022, 6:20 a.m. UTC
From: yulong-plct <yulong@nj.iscas.ac.cn>

This patchset adds support for three recently ratified RISC-V extensions:

-   Zicbom (Cache-Block Management Instructions)
-   Zicbop (Cache-Block Prefetch hint instructions)
-   Zicboz (Cache-Block Zero Instructions)

The naming of builtin caused oddities, so in this release we have changed the names of builtin. For example, change "__builtin_riscv_zero()" to "__builtin_riscv_zicboz_cbo_zero"

Patch 1: Add Zicbom/z/p mininal support
Patch 2: Add Zicbom/z/p instructions arch support
Patch 3: Add Zicbom/z/p instructions testcases

cf. <https://github.com/riscv/riscv-CMOs/blob/fc8e97a9531ac9811971a182ae431976b86216e1/specifications/cmobase-v1.0-rc2.pdf>;

*** BLURB HERE ***

yulong-plct (3):
  RISC-V: Add mininal support for Zicbo[mzp]
  RISC-V:Cache Management Operation instructions
  RISC-V:Cache Management Operation instructions testcases

 gcc/common/config/riscv/riscv-common.cc       |  6 +++
 gcc/config/riscv/predicates.md                |  4 ++
 gcc/config/riscv/riscv-builtins.cc            | 16 ++++++
 gcc/config/riscv/riscv-cmo.def                | 17 ++++++
 gcc/config/riscv/riscv-ftypes.def             |  4 ++
 gcc/config/riscv/riscv-opts.h                 |  9 ++++
 gcc/config/riscv/riscv.md                     | 52 +++++++++++++++++++
 gcc/config/riscv/riscv.opt                    |  3 ++
 gcc/testsuite/gcc.target/riscv/cmo-zicbom-1.c | 21 ++++++++
 gcc/testsuite/gcc.target/riscv/cmo-zicbom-2.c | 21 ++++++++
 gcc/testsuite/gcc.target/riscv/cmo-zicbop-1.c | 23 ++++++++
 gcc/testsuite/gcc.target/riscv/cmo-zicbop-2.c | 23 ++++++++
 gcc/testsuite/gcc.target/riscv/cmo-zicboz-1.c |  9 ++++
 gcc/testsuite/gcc.target/riscv/cmo-zicboz-2.c |  9 ++++
 14 files changed, 217 insertions(+)
 create mode 100644 gcc/config/riscv/riscv-cmo.def
 create mode 100644 gcc/testsuite/gcc.target/riscv/cmo-zicbom-1.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/cmo-zicbom-2.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/cmo-zicbop-1.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/cmo-zicbop-2.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/cmo-zicboz-1.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/cmo-zicboz-2.c

Comments

Kito Cheng April 28, 2022, 3:27 a.m. UTC | #1
Generally this patch LGTM, but let's defer to GCC 13 :)

For builtin function...I guess we might need a document in
https://github.com/riscv-non-isa/riscv-c-api-doc first.


On Fri, Mar 25, 2022 at 2:21 PM <yulong@nj.iscas.ac.cn> wrote:
>
> From: yulong-plct <yulong@nj.iscas.ac.cn>
>
> This patchset adds support for three recently ratified RISC-V extensions:
>
> -   Zicbom (Cache-Block Management Instructions)
> -   Zicbop (Cache-Block Prefetch hint instructions)
> -   Zicboz (Cache-Block Zero Instructions)
>
> The naming of builtin caused oddities, so in this release we have changed the names of builtin. For example, change "__builtin_riscv_zero()" to "__builtin_riscv_zicboz_cbo_zero"
>
> Patch 1: Add Zicbom/z/p mininal support
> Patch 2: Add Zicbom/z/p instructions arch support
> Patch 3: Add Zicbom/z/p instructions testcases
>
> cf. <https://github.com/riscv/riscv-CMOs/blob/fc8e97a9531ac9811971a182ae431976b86216e1/specifications/cmobase-v1.0-rc2.pdf>;
>
> *** BLURB HERE ***
>
> yulong-plct (3):
>   RISC-V: Add mininal support for Zicbo[mzp]
>   RISC-V:Cache Management Operation instructions
>   RISC-V:Cache Management Operation instructions testcases
>
>  gcc/common/config/riscv/riscv-common.cc       |  6 +++
>  gcc/config/riscv/predicates.md                |  4 ++
>  gcc/config/riscv/riscv-builtins.cc            | 16 ++++++
>  gcc/config/riscv/riscv-cmo.def                | 17 ++++++
>  gcc/config/riscv/riscv-ftypes.def             |  4 ++
>  gcc/config/riscv/riscv-opts.h                 |  9 ++++
>  gcc/config/riscv/riscv.md                     | 52 +++++++++++++++++++
>  gcc/config/riscv/riscv.opt                    |  3 ++
>  gcc/testsuite/gcc.target/riscv/cmo-zicbom-1.c | 21 ++++++++
>  gcc/testsuite/gcc.target/riscv/cmo-zicbom-2.c | 21 ++++++++
>  gcc/testsuite/gcc.target/riscv/cmo-zicbop-1.c | 23 ++++++++
>  gcc/testsuite/gcc.target/riscv/cmo-zicbop-2.c | 23 ++++++++
>  gcc/testsuite/gcc.target/riscv/cmo-zicboz-1.c |  9 ++++
>  gcc/testsuite/gcc.target/riscv/cmo-zicboz-2.c |  9 ++++
>  14 files changed, 217 insertions(+)
>  create mode 100644 gcc/config/riscv/riscv-cmo.def
>  create mode 100644 gcc/testsuite/gcc.target/riscv/cmo-zicbom-1.c
>  create mode 100644 gcc/testsuite/gcc.target/riscv/cmo-zicbom-2.c
>  create mode 100644 gcc/testsuite/gcc.target/riscv/cmo-zicbop-1.c
>  create mode 100644 gcc/testsuite/gcc.target/riscv/cmo-zicbop-2.c
>  create mode 100644 gcc/testsuite/gcc.target/riscv/cmo-zicboz-1.c
>  create mode 100644 gcc/testsuite/gcc.target/riscv/cmo-zicboz-2.c
>
> --
> 2.17.1
>