https://gcc.gnu.org/g:47be1c267605af617de741f039a4009a94fcb71f
commit r17-5234-g47be1c267605af617de741f039a4009a94fcb71f Author: Trevor Saunders <[email protected]> Date: Wed Oct 14 14:26:11 2026 +0200 config/i386/ use rtx_insn * more gcc/ChangeLog: * config/i386/i386-expand.cc (ix86_expand_sse2_mulv4si3): Record the emitted insn as an rtx_insn *. * config/i386/i386-protos.h (ix86_dep_by_shift_count): Take an rtx_insn *. (ix86_match_ccmode): Likewise. (ix86_match_ptest_ccmode): Likewise. (ix86_check_movs): Likewise. (ix86_check_no_addr_space): Likewise. * config/i386/i386.cc (ix86_check_movs): Likewise. (ix86_check_no_addr_space): Likewise. (insn_uses_reg_mem): Likewise. (ix86_dep_by_shift_count): Likewise. (ix86_match_ccmode): Likewise. (ix86_match_ptest_ccmode): Likewise. * config/i386/x86-tune-sched-atom.cc (swap_top_of_ready_list): Read DEP_PRO as an rtx_insn *. Diff: --- gcc/config/i386/i386-expand.cc | 4 ++-- gcc/config/i386/i386-protos.h | 11 ++++++----- gcc/config/i386/i386.cc | 12 ++++++------ gcc/config/i386/x86-tune-sched-atom.cc | 6 ++---- 4 files changed, 16 insertions(+), 17 deletions(-) diff --git a/gcc/config/i386/i386-expand.cc b/gcc/config/i386/i386-expand.cc index dab5e98a2e35..30da8c7fcfff 100644 --- a/gcc/config/i386/i386-expand.cc +++ b/gcc/config/i386/i386-expand.cc @@ -28750,9 +28750,9 @@ ix86_expand_sse2_mulv4si3 (rtx op0, rtx op1, rtx op2) emit_insn (gen_sse2_pshufd_1 (res_2, gen_lowpart (V4SImode, res_4), const0_rtx, const2_rtx, const0_rtx, const0_rtx)); - res_1 = emit_insn (gen_vec_interleave_lowv4si (op0, res_1, res_2)); + rtx_insn *insn = emit_insn (gen_vec_interleave_lowv4si (op0, res_1, res_2)); - set_unique_reg_note (res_1, REG_EQUAL, gen_rtx_MULT (V4SImode, op1, op2)); + set_unique_reg_note (insn, REG_EQUAL, gen_rtx_MULT (V4SImode, op1, op2)); } void diff --git a/gcc/config/i386/i386-protos.h b/gcc/config/i386/i386-protos.h index 23f82b6239ee..915371c976c7 100644 --- a/gcc/config/i386/i386-protos.h +++ b/gcc/config/i386/i386-protos.h @@ -131,7 +131,8 @@ extern void ix86_split_lea_for_addr (rtx_insn *, rtx[], machine_mode); extern bool ix86_lea_for_add_ok (rtx_insn *, rtx[]); extern int ix86_last_zero_store_uid; extern bool ix86_vec_interleave_v2df_operator_ok (rtx operands[3], bool high); -extern bool ix86_dep_by_shift_count (const_rtx set_insn, const_rtx use_insn); +extern bool ix86_dep_by_shift_count (const rtx_insn *set_insn, + const rtx_insn *use_insn); extern bool ix86_agi_dependent (rtx_insn *set_insn, rtx_insn *use_insn); extern rtx ix86_build_const_vector (machine_mode, bool, rtx); extern rtx ix86_build_signbit_mask (machine_mode, bool, bool); @@ -151,8 +152,8 @@ extern void ix86_split_fp_absneg_operator (enum rtx_code, machine_mode, rtx[]); extern void ix86_expand_copysign (rtx []); extern void ix86_expand_xorsign (rtx []); -extern bool ix86_match_ccmode (rtx, machine_mode); -extern bool ix86_match_ptest_ccmode (rtx); +extern bool ix86_match_ccmode (rtx_insn *, machine_mode); +extern bool ix86_match_ptest_ccmode (rtx_insn *); extern void ix86_expand_branch (enum rtx_code, rtx, rtx, rtx); extern void ix86_expand_setcc (rtx, enum rtx_code, rtx, rtx); extern bool ix86_expand_int_movcc (rtx[]); @@ -188,8 +189,8 @@ extern void ix86_expand_v2di_ashiftrt (rtx[]); extern rtx ix86_replace_reg_with_reg (rtx, rtx, rtx); extern rtx ix86_find_base_term (rtx); extern bool ix86_check_movabs (rtx, int); -extern bool ix86_check_movs (rtx, int); -extern bool ix86_check_no_addr_space (rtx); +extern bool ix86_check_movs (rtx_insn *, int); +extern bool ix86_check_no_addr_space (rtx_insn *); extern void ix86_split_idivmod (machine_mode, rtx[], bool); extern bool ix86_hardreg_mov_ok (rtx, rtx); diff --git a/gcc/config/i386/i386.cc b/gcc/config/i386/i386.cc index d556fd101554..843af8a61fe1 100644 --- a/gcc/config/i386/i386.cc +++ b/gcc/config/i386/i386.cc @@ -5342,7 +5342,7 @@ ix86_check_movabs (rtx insn, int opnum) /* Return true if XVECEXP idx of INSN satisfies MOVS arguments. */ bool -ix86_check_movs (rtx insn, int idx) +ix86_check_movs (rtx_insn *insn, int idx) { rtx pat = PATTERN (insn); gcc_assert (GET_CODE (pat) == PARALLEL); @@ -5363,7 +5363,7 @@ ix86_check_movs (rtx insn, int idx) /* Return false if INSN contains a MEM with a non-default address space. */ bool -ix86_check_no_addr_space (rtx insn) +ix86_check_no_addr_space (rtx_insn *insn) { subrtx_var_iterator::array_type array; FOR_EACH_SUBRTX_VAR (iter, array, PATTERN (insn), ALL) @@ -16263,7 +16263,7 @@ insn_defines_reg (unsigned int regno1, unsigned int regno2, REGNO as a part of address expression. */ static bool -insn_uses_reg_mem (unsigned int regno, rtx insn) +insn_uses_reg_mem (unsigned int regno, rtx_insn *insn) { df_ref use; @@ -16838,7 +16838,7 @@ ix86_dep_by_shift_count_body (const_rtx set_body, const_rtx use_body) USE_INSN. */ bool -ix86_dep_by_shift_count (const_rtx set_insn, const_rtx use_insn) +ix86_dep_by_shift_count (const rtx_insn *set_insn, const rtx_insn *use_insn) { return ix86_dep_by_shift_count_body (PATTERN (set_insn), PATTERN (use_insn)); @@ -17072,7 +17072,7 @@ int ix86_get_flags_cc (rtx_code code) CC mode is at least as constrained as REQ_MODE. */ bool -ix86_match_ccmode (rtx insn, machine_mode req_mode) +ix86_match_ccmode (rtx_insn *insn, machine_mode req_mode) { rtx set; machine_mode set_mode; @@ -17223,7 +17223,7 @@ ix86_cc_mode (enum rtx_code code, rtx op0, rtx op1) INSN has source and destination with suitable matching CC modes. */ bool -ix86_match_ptest_ccmode (rtx insn) +ix86_match_ptest_ccmode (rtx_insn *insn) { rtx set, src; machine_mode set_mode; diff --git a/gcc/config/i386/x86-tune-sched-atom.cc b/gcc/config/i386/x86-tune-sched-atom.cc index 4e433b0fa652..095882e5e35f 100644 --- a/gcc/config/i386/x86-tune-sched-atom.cc +++ b/gcc/config/i386/x86-tune-sched-atom.cc @@ -155,8 +155,7 @@ swap_top_of_ready_list (rtx_insn **ready, int n_ready) /* Determine winner more precise. */ FOR_EACH_DEP (top, SD_LIST_RES_BACK, sd_it, dep) { - rtx pro; - pro = DEP_PRO (dep); + rtx_insn *pro = DEP_PRO (dep); if (!NONDEBUG_INSN_P (pro)) continue; if (INSN_TICK (pro) > clock1) @@ -164,8 +163,7 @@ swap_top_of_ready_list (rtx_insn **ready, int n_ready) } FOR_EACH_DEP (next, SD_LIST_RES_BACK, sd_it, dep) { - rtx pro; - pro = DEP_PRO (dep); + rtx_insn *pro = DEP_PRO (dep); if (!NONDEBUG_INSN_P (pro)) continue; if (INSN_TICK (pro) > clock2)
