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