Re: [PATCH] RISC-V: Replace CONSTEXPR with constexpr
Committed, thanks! On Mon, Oct 24, 2022 at 10:21 AM wrote: > > From: Ju-Zhe Zhong > > Move away from the pre-C++11 compatibility macro CONSTEXPR. > This patch is inspired by aarch64: > https://gcc.gnu.org/pipermail/gcc-patches/2022-October/603974.html. > > gcc/ChangeLog: > > * config/riscv/riscv-vector-builtins-bases.cc: Replace CONSTEXPR > with constexpr throughout. > * config/riscv/riscv-vector-builtins-shapes.cc (SHAPE): Likewise. > * config/riscv/riscv-vector-builtins.cc (struct > registered_function_hasher): Likewise. > * config/riscv/riscv-vector-builtins.h (struct rvv_arg_type_info): > Likewise. > > --- > gcc/config/riscv/riscv-vector-builtins-bases.cc | 4 ++-- > gcc/config/riscv/riscv-vector-builtins-shapes.cc | 2 +- > gcc/config/riscv/riscv-vector-builtins.cc| 14 +++--- > gcc/config/riscv/riscv-vector-builtins.h | 2 +- > 4 files changed, 11 insertions(+), 11 deletions(-) > > diff --git a/gcc/config/riscv/riscv-vector-builtins-bases.cc > b/gcc/config/riscv/riscv-vector-builtins-bases.cc > index 231b63a610d..713a7566e29 100644 > --- a/gcc/config/riscv/riscv-vector-builtins-bases.cc > +++ b/gcc/config/riscv/riscv-vector-builtins-bases.cc > @@ -84,8 +84,8 @@ public: >} > }; > > -static CONSTEXPR const vsetvl vsetvl_obj; > -static CONSTEXPR const vsetvl vsetvlmax_obj; > +static constexpr const vsetvl vsetvl_obj; > +static constexpr const vsetvl vsetvlmax_obj; > namespace bases { > const function_base *const vsetvl = &vsetvl_obj; > const function_base *const vsetvlmax = &vsetvlmax_obj; > diff --git a/gcc/config/riscv/riscv-vector-builtins-shapes.cc > b/gcc/config/riscv/riscv-vector-builtins-shapes.cc > index 24fc1c02341..14c59690c06 100644 > --- a/gcc/config/riscv/riscv-vector-builtins-shapes.cc > +++ b/gcc/config/riscv/riscv-vector-builtins-shapes.cc > @@ -71,7 +71,7 @@ build_all (function_builder &b, const function_group_info > &group) > /* Declare the function shape NAME, pointing it to an instance > of class _def. */ > #define SHAPE(DEF, VAR) \ > - static CONSTEXPR const DEF##_def VAR##_obj; \ > + static constexpr const DEF##_def VAR##_obj; \ >namespace shapes { const function_shape *const VAR = &VAR##_obj; } > > /* Base class for for build. */ > diff --git a/gcc/config/riscv/riscv-vector-builtins.cc > b/gcc/config/riscv/riscv-vector-builtins.cc > index dc410788c99..caeb97211f9 100644 > --- a/gcc/config/riscv/riscv-vector-builtins.cc > +++ b/gcc/config/riscv/riscv-vector-builtins.cc > @@ -88,7 +88,7 @@ struct registered_function_hasher : > nofree_ptr_hash > }; > > /* Static information about each RVV type. */ > -static CONSTEXPR const vector_type_info vector_types[] = { > +static constexpr const vector_type_info vector_types[] = { > #define DEF_RVV_TYPE(NAME, NCHARS, ABI_NAME, ARGS...) > \ >{#NAME, #ABI_NAME, "u" #NCHARS #ABI_NAME}, > #include "riscv-vector-builtins.def" > @@ -123,23 +123,23 @@ static const rvv_type_info i_ops[] = { > #include "riscv-vector-builtins-types.def" >{NUM_VECTOR_TYPES, 0}}; > > -static CONSTEXPR const rvv_arg_type_info rvv_arg_type_info_end > +static constexpr const rvv_arg_type_info rvv_arg_type_info_end >= rvv_arg_type_info (NUM_BASE_TYPES); > > /* A list of args for size_t func (void) function. */ > -static CONSTEXPR const rvv_arg_type_info void_args[] > +static constexpr const rvv_arg_type_info void_args[] >= {rvv_arg_type_info (RVV_BASE_void), rvv_arg_type_info_end}; > > /* A list of args for size_t func (size_t) function. */ > -static CONSTEXPR const rvv_arg_type_info size_args[] > +static constexpr const rvv_arg_type_info size_args[] >= {rvv_arg_type_info (RVV_BASE_size), rvv_arg_type_info_end}; > > /* A list of none preds that will be registered for intrinsic functions. */ > -static CONSTEXPR const predication_type_index none_preds[] > +static constexpr const predication_type_index none_preds[] >= {PRED_TYPE_none, NUM_PRED_TYPES}; > > /* A static operand information for size_t func (void) function > registration. */ > -static CONSTEXPR const rvv_op_info i_none_size_void_ops > +static constexpr const rvv_op_info i_none_size_void_ops >= {i_ops,/* Types */ > OP_TYPE_none, /* Suffix */ > rvv_arg_type_info (RVV_BASE_size), /* Return type */ > @@ -147,7 +147,7 @@ static CONSTEXPR const rvv_op_info i_none_size_void_ops > > /* A static operand information for size_t func (size_t) function > registration. > */ > -static CONSTEXPR const rvv_op_info i_none_size_size_ops > +static constexpr const rvv_op_info i_none_size_size_ops >= {i_ops,/* Types */ > OP_TYPE_none, /* Suffix */ > rvv_arg_type_info (RVV_BASE_size), /* Return type */ > diff --git a/gcc/config/riscv/riscv-vector-builtins.h > b/gcc/config/riscv/riscv-vector-builtins.h > index 425da12326c..e5636e23a7c 100644 > --- a
[PATCH] RISC-V: Replace CONSTEXPR with constexpr
From: Ju-Zhe Zhong Move away from the pre-C++11 compatibility macro CONSTEXPR. This patch is inspired by aarch64: https://gcc.gnu.org/pipermail/gcc-patches/2022-October/603974.html. gcc/ChangeLog: * config/riscv/riscv-vector-builtins-bases.cc: Replace CONSTEXPR with constexpr throughout. * config/riscv/riscv-vector-builtins-shapes.cc (SHAPE): Likewise. * config/riscv/riscv-vector-builtins.cc (struct registered_function_hasher): Likewise. * config/riscv/riscv-vector-builtins.h (struct rvv_arg_type_info): Likewise. --- gcc/config/riscv/riscv-vector-builtins-bases.cc | 4 ++-- gcc/config/riscv/riscv-vector-builtins-shapes.cc | 2 +- gcc/config/riscv/riscv-vector-builtins.cc| 14 +++--- gcc/config/riscv/riscv-vector-builtins.h | 2 +- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/gcc/config/riscv/riscv-vector-builtins-bases.cc b/gcc/config/riscv/riscv-vector-builtins-bases.cc index 231b63a610d..713a7566e29 100644 --- a/gcc/config/riscv/riscv-vector-builtins-bases.cc +++ b/gcc/config/riscv/riscv-vector-builtins-bases.cc @@ -84,8 +84,8 @@ public: } }; -static CONSTEXPR const vsetvl vsetvl_obj; -static CONSTEXPR const vsetvl vsetvlmax_obj; +static constexpr const vsetvl vsetvl_obj; +static constexpr const vsetvl vsetvlmax_obj; namespace bases { const function_base *const vsetvl = &vsetvl_obj; const function_base *const vsetvlmax = &vsetvlmax_obj; diff --git a/gcc/config/riscv/riscv-vector-builtins-shapes.cc b/gcc/config/riscv/riscv-vector-builtins-shapes.cc index 24fc1c02341..14c59690c06 100644 --- a/gcc/config/riscv/riscv-vector-builtins-shapes.cc +++ b/gcc/config/riscv/riscv-vector-builtins-shapes.cc @@ -71,7 +71,7 @@ build_all (function_builder &b, const function_group_info &group) /* Declare the function shape NAME, pointing it to an instance of class _def. */ #define SHAPE(DEF, VAR) \ - static CONSTEXPR const DEF##_def VAR##_obj; \ + static constexpr const DEF##_def VAR##_obj; \ namespace shapes { const function_shape *const VAR = &VAR##_obj; } /* Base class for for build. */ diff --git a/gcc/config/riscv/riscv-vector-builtins.cc b/gcc/config/riscv/riscv-vector-builtins.cc index dc410788c99..caeb97211f9 100644 --- a/gcc/config/riscv/riscv-vector-builtins.cc +++ b/gcc/config/riscv/riscv-vector-builtins.cc @@ -88,7 +88,7 @@ struct registered_function_hasher : nofree_ptr_hash }; /* Static information about each RVV type. */ -static CONSTEXPR const vector_type_info vector_types[] = { +static constexpr const vector_type_info vector_types[] = { #define DEF_RVV_TYPE(NAME, NCHARS, ABI_NAME, ARGS...) \ {#NAME, #ABI_NAME, "u" #NCHARS #ABI_NAME}, #include "riscv-vector-builtins.def" @@ -123,23 +123,23 @@ static const rvv_type_info i_ops[] = { #include "riscv-vector-builtins-types.def" {NUM_VECTOR_TYPES, 0}}; -static CONSTEXPR const rvv_arg_type_info rvv_arg_type_info_end +static constexpr const rvv_arg_type_info rvv_arg_type_info_end = rvv_arg_type_info (NUM_BASE_TYPES); /* A list of args for size_t func (void) function. */ -static CONSTEXPR const rvv_arg_type_info void_args[] +static constexpr const rvv_arg_type_info void_args[] = {rvv_arg_type_info (RVV_BASE_void), rvv_arg_type_info_end}; /* A list of args for size_t func (size_t) function. */ -static CONSTEXPR const rvv_arg_type_info size_args[] +static constexpr const rvv_arg_type_info size_args[] = {rvv_arg_type_info (RVV_BASE_size), rvv_arg_type_info_end}; /* A list of none preds that will be registered for intrinsic functions. */ -static CONSTEXPR const predication_type_index none_preds[] +static constexpr const predication_type_index none_preds[] = {PRED_TYPE_none, NUM_PRED_TYPES}; /* A static operand information for size_t func (void) function registration. */ -static CONSTEXPR const rvv_op_info i_none_size_void_ops +static constexpr const rvv_op_info i_none_size_void_ops = {i_ops,/* Types */ OP_TYPE_none, /* Suffix */ rvv_arg_type_info (RVV_BASE_size), /* Return type */ @@ -147,7 +147,7 @@ static CONSTEXPR const rvv_op_info i_none_size_void_ops /* A static operand information for size_t func (size_t) function registration. */ -static CONSTEXPR const rvv_op_info i_none_size_size_ops +static constexpr const rvv_op_info i_none_size_size_ops = {i_ops,/* Types */ OP_TYPE_none, /* Suffix */ rvv_arg_type_info (RVV_BASE_size), /* Return type */ diff --git a/gcc/config/riscv/riscv-vector-builtins.h b/gcc/config/riscv/riscv-vector-builtins.h index 425da12326c..e5636e23a7c 100644 --- a/gcc/config/riscv/riscv-vector-builtins.h +++ b/gcc/config/riscv/riscv-vector-builtins.h @@ -171,7 +171,7 @@ struct rvv_builtin_suffixes /* RVV Builtin argument information. */ struct rvv_arg_type_info { - CONSTEXPR rvv_arg_type_info (rvv_base_type base_type_in) +