https://gcc.gnu.org/g:a9b26510e83a6076dad3e25c0b12a8e21acd6278
commit r17-5239-ga9b26510e83a6076dad3e25c0b12a8e21acd6278 Author: Trevor Saunders <[email protected]> Date: Wed Oct 14 14:27:13 2026 +0200 use rtx_insn * more in config/i386/ gcc/ChangeLog: * config/i386/i386-protos.h (ix86_check_movabs): Take an rtx_insn *. * config/i386/i386.cc (ix86_check_movabs): Likewise. (insn_is_function_arg): Likewise. * config/i386/x86-tune-sched-bd.cc (find_constant): Likewise. Diff: --- gcc/config/i386/i386-protos.h | 2 +- gcc/config/i386/i386.cc | 14 +++++++------- gcc/config/i386/x86-tune-sched-bd.cc | 5 ++--- 3 files changed, 10 insertions(+), 11 deletions(-) diff --git a/gcc/config/i386/i386-protos.h b/gcc/config/i386/i386-protos.h index 915371c976c7..e969e3c58af8 100644 --- a/gcc/config/i386/i386-protos.h +++ b/gcc/config/i386/i386-protos.h @@ -188,7 +188,7 @@ extern void ix86_expand_v1ti_ashiftrt (rtx[]); 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_movabs (rtx_insn *, int); 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); diff --git a/gcc/config/i386/i386.cc b/gcc/config/i386/i386.cc index 843af8a61fe1..136c339c8cab 100644 --- a/gcc/config/i386/i386.cc +++ b/gcc/config/i386/i386.cc @@ -5325,7 +5325,7 @@ ix86_gimplify_va_arg (tree valist, tree type, gimple_seq *pre_p, in movabs* patterns. */ bool -ix86_check_movabs (rtx insn, int opnum) +ix86_check_movabs (rtx_insn *insn, int opnum) { rtx set, mem; @@ -18291,7 +18291,7 @@ ix86_class_likely_spilled_p (reg_class_t); /* Returns true if lhs of insn is HW function argument register and set up is_spilled to true if it is likely spilled HW register. */ static bool -insn_is_function_arg (rtx insn, bool* is_spilled) +insn_is_function_arg (rtx_insn *insn, bool* is_spilled) { rtx dst; @@ -18300,12 +18300,12 @@ insn_is_function_arg (rtx insn, bool* is_spilled) /* Call instructions are not movable, ignore it. */ if (CALL_P (insn)) return false; - insn = PATTERN (insn); - if (GET_CODE (insn) == PARALLEL) - insn = XVECEXP (insn, 0, 0); - if (GET_CODE (insn) != SET) + rtx pat = PATTERN (insn); + if (GET_CODE (pat) == PARALLEL) + pat = XVECEXP (pat, 0, 0); + if (GET_CODE (pat) != SET) return false; - dst = SET_DEST (insn); + dst = SET_DEST (pat); if (REG_P (dst) && HARD_REGISTER_P (dst) && ix86_function_arg_regno_p (REGNO (dst))) { diff --git a/gcc/config/i386/x86-tune-sched-bd.cc b/gcc/config/i386/x86-tune-sched-bd.cc index ade6f45a55c8..5056fc676e08 100644 --- a/gcc/config/i386/x86-tune-sched-bd.cc +++ b/gcc/config/i386/x86-tune-sched-bd.cc @@ -332,10 +332,9 @@ allocate_next_window (int window_num) /* Compute number of immediate operands of an instruction. */ static void -find_constant (rtx in_rtx, imm_info *imm_values) +find_constant (rtx_insn *insn, imm_info *imm_values) { - if (INSN_P (in_rtx)) - in_rtx = PATTERN (in_rtx); + rtx in_rtx = INSN_P (insn) ? PATTERN (insn) : insn; subrtx_iterator::array_type array; FOR_EACH_SUBRTX (iter, array, in_rtx, ALL) if (const_rtx x = *iter)
