LGTM
> From: "Bohan Lei"<[email protected]>
> Date: Thu, Jan 8, 2026, 10:49
> Subject: [PATCH] RISC-V: Remove redundant CALL_P check
> To: <[email protected]>
> Cc: <[email protected]>, <[email protected]>, "Bohan
> Lei"<[email protected]>
> Since we are using `reg_set_p` to check VXRM definition, the `CALL_P`
> check has become redundant. VXRM is marked as call-used in riscv.h, and
> `reg_set_p` in `vxrm_unknown_p` should always return true when a call is
> encountered.
>
> gcc/ChangeLog:
>
> * config/riscv/riscv.cc (vxrm_unknown_p): Remove `CALL_P` check
> ---
> gcc/config/riscv/riscv.cc | 7 +------
> 1 file changed, 1 insertion(+), 6 deletions(-)
>
> diff --git a/gcc/config/riscv/riscv.cc b/gcc/config/riscv/riscv.cc
> index 669a9a0935c..5767cbb0bcd 100644
> --- a/gcc/config/riscv/riscv.cc
> +++ b/gcc/config/riscv/riscv.cc
> @@ -13941,15 +13941,10 @@ asm_insn_p (rtx_insn *insn)
> static bool
> vxrm_unknown_p (rtx_insn *insn)
> {
> - /* Return true if there is a definition of VXRM. */
> + /* Return true if VXRM is set or clobbered. */
> if (reg_set_p (gen_rtx_REG (SImode, VXRM_REGNUM), insn))
> return true;
>
> - /* A CALL function may contain an instruction that modifies the VXRM,
> - return true in this situation. */
> - if (CALL_P (insn))
> - return true;
> -
> /* Return true for all assembly since users may hardcode a assembly
> like this: asm volatile ("csrwi vxrm, 0"). */
> if (asm_insn_p (insn))
> --
> 2.46.0
>