On 7/11/23 23:50, pan2...@intel.com wrote:
From: Pan Li <pan2...@intel.com>

When investigate the FRM dynmaic rounding mode, we find the global
unknown status is quite different between the fixed-point and
floating-point. Thus, we separate the unknown function with extracting
some inner common functions.

We will also prepare more test cases in another PATCH.

Signed-off-by: Pan Li <pan2...@intel.com>

gcc/ChangeLog:

        * config/riscv/riscv.cc (regnum_definition_p): New function.
        (insn_asm_p): Ditto.
        (riscv_vxrm_mode_after): New function for fixed-point.
        (global_vxrm_state_unknown_p): Ditto.
        (riscv_frm_mode_after): New function for floating-point.
        (global_frm_state_unknown_p): Ditto.
        (riscv_mode_after): Leverage new functions.
        (riscv_entity_mode_after): Removed.
---
  gcc/config/riscv/riscv.cc | 96 +++++++++++++++++++++++++++++++++------
  1 file changed, 82 insertions(+), 14 deletions(-)

diff --git a/gcc/config/riscv/riscv.cc b/gcc/config/riscv/riscv.cc
index 38d8eb2fcf5..553fbb4435a 100644
--- a/gcc/config/riscv/riscv.cc
+++ b/gcc/config/riscv/riscv.cc
@@ -7742,19 +7742,91 @@ global_state_unknown_p (rtx_insn *insn, unsigned int 
regno)
    return false;
  }
+static bool
+regnum_definition_p (rtx_insn *insn, unsigned int regno)
Needs a function comment. This is true for each new function added. In this specific case somethign like this might be appropriate

/* Return TRUE if REGNO is set in INSN, FALSE otherwise.  */

Which begs the question, is there some reason why we're not using the existing reg_set_p or simple_regno_set from rtlanal.cc?



Jeff

Reply via email to