diff options
Diffstat (limited to 'gcc/rtlanal.c')
-rw-r--r-- | gcc/rtlanal.c | 325 |
1 files changed, 95 insertions, 230 deletions
diff --git a/gcc/rtlanal.c b/gcc/rtlanal.c index de228e39431..a7d410267d6 100644 --- a/gcc/rtlanal.c +++ b/gcc/rtlanal.c @@ -1,6 +1,6 @@ /* Analyze RTL for C-Compiler Copyright (C) 1987, 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998, - 1999, 2000, 2001, 2002 Free Software Foundation, Inc. + 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. This file is part of GCC. @@ -35,14 +35,14 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA #include "real.h" /* Forward declarations */ -static int global_reg_mentioned_p_1 PARAMS ((rtx *, void *)); -static void set_of_1 PARAMS ((rtx, rtx, void *)); -static void insn_dependent_p_1 PARAMS ((rtx, rtx, void *)); -static int rtx_referenced_p_1 PARAMS ((rtx *, void *)); -static int computed_jump_p_1 PARAMS ((rtx)); -static void parms_set PARAMS ((rtx, rtx, void *)); -static bool hoist_test_store PARAMS ((rtx, rtx, regset)); -static void hoist_update_store PARAMS ((rtx, rtx *, rtx, rtx)); +static int global_reg_mentioned_p_1 (rtx *, void *); +static void set_of_1 (rtx, rtx, void *); +static void insn_dependent_p_1 (rtx, rtx, void *); +static int rtx_referenced_p_1 (rtx *, void *); +static int computed_jump_p_1 (rtx); +static void parms_set (rtx, rtx, void *); +static bool hoist_test_store (rtx, rtx, regset); +static void hoist_update_store (rtx, rtx *, rtx, rtx); /* Bit flags that specify the machine subtype we are compiling for. Bits are tested using macros TARGET_... defined in the tm.h file @@ -56,8 +56,7 @@ int target_flags; (within one function) and so is anything marked `unchanging'. */ int -rtx_unstable_p (x) - rtx x; +rtx_unstable_p (rtx x) { RTX_CODE code = GET_CODE (x); int i; @@ -132,9 +131,7 @@ rtx_unstable_p (x) The frame pointer and the arg pointer are considered constant. */ int -rtx_varies_p (x, for_alias) - rtx x; - int for_alias; +rtx_varies_p (rtx x, int for_alias) { RTX_CODE code = GET_CODE (x); int i; @@ -219,8 +216,7 @@ rtx_varies_p (x, for_alias) /* Return 0 if the use of X as an address in a MEM can cause a trap. */ int -rtx_addr_can_trap_p (x) - rtx x; +rtx_addr_can_trap_p (rtx x) { enum rtx_code code = GET_CODE (x); @@ -283,8 +279,7 @@ rtx_addr_can_trap_p (x) /* Return true if X is an address that is known to not be zero. */ bool -nonzero_address_p (x) - rtx x; +nonzero_address_p (rtx x) { enum rtx_code code = GET_CODE (x); @@ -371,9 +366,7 @@ nonzero_address_p (x) zero, we are slightly more conservative. */ int -rtx_addr_varies_p (x, for_alias) - rtx x; - int for_alias; +rtx_addr_varies_p (rtx x, int for_alias) { enum rtx_code code; int i; @@ -409,8 +402,7 @@ rtx_addr_varies_p (x, for_alias) This is used in cse.c with the `related_value' field. */ HOST_WIDE_INT -get_integer_term (x) - rtx x; +get_integer_term (rtx x) { if (GET_CODE (x) == CONST) x = XEXP (x, 0); @@ -429,8 +421,7 @@ get_integer_term (x) Only obvious integer terms are detected. */ rtx -get_related_value (x) - rtx x; +get_related_value (rtx x) { if (GET_CODE (x) != CONST) return 0; @@ -452,9 +443,7 @@ get_related_value (x) insn used in locating the offset was found. */ rtx -get_jump_table_offset (insn, earliest) - rtx insn; - rtx *earliest; +get_jump_table_offset (rtx insn, rtx *earliest) { rtx label; rtx table; @@ -582,9 +571,7 @@ get_jump_table_offset (insn, earliest) a global register. */ static int -global_reg_mentioned_p_1 (loc, data) - rtx *loc; - void *data ATTRIBUTE_UNUSED; +global_reg_mentioned_p_1 (rtx *loc, void *data ATTRIBUTE_UNUSED) { int regno; rtx x = *loc; @@ -633,8 +620,7 @@ global_reg_mentioned_p_1 (loc, data) /* Returns nonzero if X mentions a global register. */ int -global_reg_mentioned_p (x) - rtx x; +global_reg_mentioned_p (rtx x) { if (INSN_P (x)) { @@ -657,9 +643,7 @@ global_reg_mentioned_p (x) zero, we do not count occurrences inside the destination of a SET. */ int -count_occurrences (x, find, count_dest) - rtx x, find; - int count_dest; +count_occurrences (rtx x, rtx find, int count_dest) { int i, j; enum rtx_code code; @@ -722,8 +706,7 @@ count_occurrences (x, find, count_dest) for a subexpression of IN that is Lisp "equal" to REG. */ int -reg_mentioned_p (reg, in) - rtx reg, in; +reg_mentioned_p (rtx reg, rtx in) { const char *fmt; int i; @@ -788,8 +771,7 @@ reg_mentioned_p (reg, in) no CODE_LABEL insn. */ int -no_labels_between_p (beg, end) - rtx beg, end; +no_labels_between_p (rtx beg, rtx end) { rtx p; if (beg == end) @@ -804,8 +786,7 @@ no_labels_between_p (beg, end) no JUMP_INSN insn. */ int -no_jumps_between_p (beg, end) - rtx beg, end; +no_jumps_between_p (rtx beg, rtx end) { rtx p; for (p = NEXT_INSN (beg); p != end; p = NEXT_INSN (p)) @@ -818,8 +799,7 @@ no_jumps_between_p (beg, end) FROM_INSN and TO_INSN (exclusive of those two). */ int -reg_used_between_p (reg, from_insn, to_insn) - rtx reg, from_insn, to_insn; +reg_used_between_p (rtx reg, rtx from_insn, rtx to_insn) { rtx insn; @@ -841,9 +821,7 @@ reg_used_between_p (reg, from_insn, to_insn) we do not consider it a reference. */ int -reg_referenced_p (x, body) - rtx x; - rtx body; +reg_referenced_p (rtx x, rtx body) { int i; @@ -920,8 +898,7 @@ reg_referenced_p (x, body) not count. */ int -reg_referenced_between_p (reg, from_insn, to_insn) - rtx reg, from_insn, to_insn; +reg_referenced_between_p (rtx reg, rtx from_insn, rtx to_insn) { rtx insn; @@ -941,8 +918,7 @@ reg_referenced_between_p (reg, from_insn, to_insn) FROM_INSN and TO_INSN (exclusive of those two). */ int -reg_set_between_p (reg, from_insn, to_insn) - rtx reg, from_insn, to_insn; +reg_set_between_p (rtx reg, rtx from_insn, rtx to_insn) { rtx insn; @@ -957,8 +933,7 @@ reg_set_between_p (reg, from_insn, to_insn) /* Internals of reg_set_between_p. */ int -reg_set_p (reg, insn) - rtx reg, insn; +reg_set_p (rtx reg, rtx insn) { /* We can be passed an insn or part of one. If we are passed an insn, check if a side-effect of the insn clobbers REG. */ @@ -985,9 +960,7 @@ reg_set_p (reg, insn) consider non-registers one way or the other. */ int -regs_set_between_p (x, start, end) - rtx x; - rtx start, end; +regs_set_between_p (rtx x, rtx start, rtx end) { enum rtx_code code = GET_CODE (x); const char *fmt; @@ -1032,9 +1005,7 @@ regs_set_between_p (x, start, end) X contains a MEM; this routine does usememory aliasing. */ int -modified_between_p (x, start, end) - rtx x; - rtx start, end; +modified_between_p (rtx x, rtx start, rtx end) { enum rtx_code code = GET_CODE (x); const char *fmt; @@ -1096,9 +1067,7 @@ modified_between_p (x, start, end) does use memory aliasing. */ int -modified_in_p (x, insn) - rtx x; - rtx insn; +modified_in_p (rtx x, rtx insn) { enum rtx_code code = GET_CODE (x); const char *fmt; @@ -1154,8 +1123,7 @@ modified_in_p (x, insn) anything in insn Y. */ int -insn_dependent_p (x, y) - rtx x, y; +insn_dependent_p (rtx x, rtx y) { rtx tmp; @@ -1178,10 +1146,7 @@ insn_dependent_p (x, y) /* A helper routine for insn_dependent_p called through note_stores. */ static void -insn_dependent_p_1 (x, pat, data) - rtx x; - rtx pat ATTRIBUTE_UNUSED; - void *data; +insn_dependent_p_1 (rtx x, rtx pat ATTRIBUTE_UNUSED, void *data) { rtx * pinsn = (rtx *) data; @@ -1197,10 +1162,7 @@ struct set_of_data }; static void -set_of_1 (x, pat, data1) - rtx x; - rtx pat; - void *data1; +set_of_1 (rtx x, rtx pat, void *data1) { struct set_of_data *data = (struct set_of_data *) (data1); if (rtx_equal_p (x, data->pat) @@ -1211,8 +1173,7 @@ set_of_1 (x, pat, data1) /* Give an INSN, return a SET or CLOBBER expression that does modify PAT (either directly or via STRICT_LOW_PART and similar modifiers). */ rtx -set_of (pat, insn) - rtx pat, insn; +set_of (rtx pat, rtx insn) { struct set_of_data data; data.found = NULL_RTX; @@ -1226,8 +1187,7 @@ set_of (pat, insn) will not be used, which we ignore. */ rtx -single_set_2 (insn, pat) - rtx insn, pat; +single_set_2 (rtx insn, rtx pat) { rtx set = NULL; int set_verified = 1; @@ -1280,8 +1240,7 @@ single_set_2 (insn, pat) zero. */ int -multiple_sets (insn) - rtx insn; +multiple_sets (rtx insn) { int found; int i; @@ -1312,8 +1271,7 @@ multiple_sets (insn) and there are no side effects. */ int -set_noop_p (set) - rtx set; +set_noop_p (rtx set) { rtx src = SET_SRC (set); rtx dst = SET_DEST (set); @@ -1349,8 +1307,7 @@ set_noop_p (set) value to itself. */ int -noop_move_p (insn) - rtx insn; +noop_move_p (rtx insn) { rtx pat = PATTERN (insn); @@ -1400,11 +1357,7 @@ noop_move_p (insn) be the src. */ rtx -find_last_value (x, pinsn, valid_to, allow_hwreg) - rtx x; - rtx *pinsn; - rtx valid_to; - int allow_hwreg; +find_last_value (rtx x, rtx *pinsn, rtx valid_to, int allow_hwreg) { rtx p; @@ -1450,10 +1403,8 @@ find_last_value (x, pinsn, valid_to, allow_hwreg) LOC may be zero, meaning don't ignore anything. */ int -refers_to_regno_p (regno, endregno, x, loc) - unsigned int regno, endregno; - rtx x; - rtx *loc; +refers_to_regno_p (unsigned int regno, unsigned int endregno, rtx x, + rtx *loc) { int i; unsigned int x_regno; @@ -1564,8 +1515,7 @@ refers_to_regno_p (regno, endregno, x, loc) conflict because we expect this to be a rare case. */ int -reg_overlap_mentioned_p (x, in) - rtx x, in; +reg_overlap_mentioned_p (rtx x, rtx in) { unsigned int regno, endregno; @@ -1641,9 +1591,7 @@ reg_overlap_mentioned_p (x, in) check if a MEM remains unchanged. */ rtx -reg_set_last (x, insn) - rtx x; - rtx insn; +reg_set_last (rtx x, rtx insn) { rtx orig_insn = insn; @@ -1694,10 +1642,7 @@ reg_set_last (x, insn) the SUBREG will be passed. */ void -note_stores (x, fun, data) - rtx x; - void (*fun) PARAMS ((rtx, rtx, void *)); - void *data; +note_stores (rtx x, void (*fun) (rtx, rtx, void *), void *data) { int i; @@ -1743,10 +1688,7 @@ note_stores (x, fun, data) partially set, while we do not. */ void -note_uses (pbody, fun, data) - rtx *pbody; - void (*fun) PARAMS ((rtx *, void *)); - void *data; +note_uses (rtx *pbody, void (*fun) (rtx *, void *), void *data) { rtx body = *pbody; int i; @@ -1838,9 +1780,7 @@ note_uses (pbody, fun, data) by INSN. */ int -dead_or_set_p (insn, x) - rtx insn; - rtx x; +dead_or_set_p (rtx insn, rtx x) { unsigned int regno, last_regno; unsigned int i; @@ -1867,9 +1807,7 @@ dead_or_set_p (insn, x) called from flow.c. */ int -dead_or_set_regno_p (insn, test_regno) - rtx insn; - unsigned int test_regno; +dead_or_set_regno_p (rtx insn, unsigned int test_regno) { unsigned int regno, endregno; rtx pattern; @@ -1952,10 +1890,7 @@ dead_or_set_regno_p (insn, test_regno) If DATUM is nonzero, look for one whose datum is DATUM. */ rtx -find_reg_note (insn, kind, datum) - rtx insn; - enum reg_note kind; - rtx datum; +find_reg_note (rtx insn, enum reg_note kind, rtx datum) { rtx link; @@ -1976,10 +1911,7 @@ find_reg_note (insn, kind, datum) it might be the case that the note overlaps REGNO. */ rtx -find_regno_note (insn, kind, regno) - rtx insn; - enum reg_note kind; - unsigned int regno; +find_regno_note (rtx insn, enum reg_note kind, unsigned int regno) { rtx link; @@ -2006,8 +1938,7 @@ find_regno_note (insn, kind, regno) has such a note. */ rtx -find_reg_equal_equiv_note (insn) - rtx insn; +find_reg_equal_equiv_note (rtx insn) { rtx link; @@ -2028,10 +1959,7 @@ find_reg_equal_equiv_note (insn) in the CALL_INSN_FUNCTION_USAGE information of INSN. */ int -find_reg_fusage (insn, code, datum) - rtx insn; - enum rtx_code code; - rtx datum; +find_reg_fusage (rtx insn, enum rtx_code code, rtx datum) { /* If it's not a CALL_INSN, it can't possibly have a CALL_INSN_FUNCTION_USAGE field, so don't bother checking. */ @@ -2078,10 +2006,7 @@ find_reg_fusage (insn, code, datum) in the CALL_INSN_FUNCTION_USAGE information of INSN. */ int -find_regno_fusage (insn, code, regno) - rtx insn; - enum rtx_code code; - unsigned int regno; +find_regno_fusage (rtx insn, enum rtx_code code, unsigned int regno) { rtx link; @@ -2110,8 +2035,7 @@ find_regno_fusage (insn, code, regno) /* Return true if INSN is a call to a pure function. */ int -pure_call_p (insn) - rtx insn; +pure_call_p (rtx insn) { rtx link; @@ -2135,9 +2059,7 @@ pure_call_p (insn) /* Remove register note NOTE from the REG_NOTES of INSN. */ void -remove_note (insn, note) - rtx insn; - rtx note; +remove_note (rtx insn, rtx note) { rtx link; @@ -2165,9 +2087,7 @@ remove_note (insn, note) NODE matches. */ int -in_expr_list_p (listp, node) - rtx listp; - rtx node; +in_expr_list_p (rtx listp, rtx node) { rtx x; @@ -2184,9 +2104,7 @@ in_expr_list_p (listp, node) A simple equality test is used to determine if NODE matches. */ void -remove_node_from_expr_list (node, listp) - rtx node; - rtx *listp; +remove_node_from_expr_list (rtx node, rtx *listp) { rtx temp = *listp; rtx prev = NULL_RTX; @@ -2215,8 +2133,7 @@ remove_node_from_expr_list (node, listp) only volatile asms and UNSPEC_VOLATILE instructions. */ int -volatile_insn_p (x) - rtx x; +volatile_insn_p (rtx x) { RTX_CODE code; @@ -2282,8 +2199,7 @@ volatile_insn_p (x) UNSPEC_VOLATILE operations or volatile ASM_OPERANDS expressions. */ int -volatile_refs_p (x) - rtx x; +volatile_refs_p (rtx x) { RTX_CODE code; @@ -2347,8 +2263,7 @@ volatile_refs_p (x) incrementing. */ int -side_effects_p (x) - rtx x; +side_effects_p (rtx x) { RTX_CODE code; @@ -2424,8 +2339,7 @@ side_effects_p (x) /* Return nonzero if evaluating rtx X might cause a trap. */ int -may_trap_p (x) - rtx x; +may_trap_p (rtx x) { int i; enum rtx_code code; @@ -2557,8 +2471,7 @@ may_trap_p (x) i.e., an inequality. */ int -inequality_comparisons_p (x) - rtx x; +inequality_comparisons_p (rtx x) { const char *fmt; int len, i; @@ -2621,8 +2534,7 @@ inequality_comparisons_p (x) are to be modified. */ rtx -replace_rtx (x, from, to) - rtx x, from, to; +replace_rtx (rtx x, rtx from, rtx to) { int i, j; const char *fmt; @@ -2699,11 +2611,7 @@ replace_rtx (x, from, to) otherwise, only sources are replaced. */ rtx -replace_regs (x, reg_map, nregs, replace_dest) - rtx x; - rtx *reg_map; - unsigned int nregs; - int replace_dest; +replace_regs (rtx x, rtx *reg_map, unsigned int nregs, int replace_dest) { enum rtx_code code; int i; @@ -2794,9 +2702,7 @@ replace_regs (x, reg_map, nregs, replace_dest) DATA is a REPLACE_LABEL_DATA containing the old and new labels. */ int -replace_label (x, data) - rtx *x; - void *data; +replace_label (rtx *x, void *data) { rtx l = *x; rtx tmp; @@ -2817,7 +2723,7 @@ replace_label (x, data) { rtx new_c, new_l; replace_label_data *d = (replace_label_data *) data; - + /* Create a copy of constant C; replace the label inside but do not update LABEL_NUSES because uses in constant pool are not counted. */ @@ -2861,9 +2767,7 @@ replace_label (x, data) too, otherwise FOR_EACH_RTX continues traversing *BODY. */ static int -rtx_referenced_p_1 (body, x) - rtx *body; - void *x; +rtx_referenced_p_1 (rtx *body, void *x) { rtx y = (rtx) x; @@ -2886,9 +2790,7 @@ rtx_referenced_p_1 (body, x) /* Return true if X is referenced in BODY. */ int -rtx_referenced_p (x, body) - rtx x; - rtx body; +rtx_referenced_p (rtx x, rtx body) { return for_each_rtx (&body, rtx_referenced_p_1, x); } @@ -2898,10 +2800,7 @@ rtx_referenced_p (x, body) LABEL and TABLE may be NULL. */ bool -tablejump_p (insn, label, table) - rtx insn; - rtx *label; - rtx *table; +tablejump_p (rtx insn, rtx *label, rtx *table) { rtx l, t; @@ -2926,8 +2825,7 @@ tablejump_p (insn, label, table) of an IF_THEN_ELSE. */ static int -computed_jump_p_1 (x) - rtx x; +computed_jump_p_1 (rtx x) { enum rtx_code code = GET_CODE (x); int i, j; @@ -2981,8 +2879,7 @@ computed_jump_p_1 (x) we can recognize them by a (use (label_ref)). */ int -computed_jump_p (insn) - rtx insn; +computed_jump_p (rtx insn) { int i; if (GET_CODE (insn) == JUMP_INSN) @@ -3031,10 +2928,7 @@ computed_jump_p (insn) implement many of the other routines in this file. */ int -for_each_rtx (x, f, data) - rtx *x; - rtx_function f; - void *data; +for_each_rtx (rtx *x, rtx_function f, void *data) { int result; int length; @@ -3095,9 +2989,7 @@ for_each_rtx (x, f, data) reference found if any. Otherwise, returns NULL_RTX. */ rtx -regno_use_in (regno, x) - unsigned int regno; - rtx x; +regno_use_in (unsigned int regno, rtx x) { const char *fmt; int i, j; @@ -3130,8 +3022,7 @@ regno_use_in (regno, x) and positive values for the second operand. */ int -commutative_operand_precedence (op) - rtx op; +commutative_operand_precedence (rtx op) { /* Constants always come the second operand. Prefer "nice" constants. */ if (GET_CODE (op) == CONST_INT) @@ -3165,8 +3056,7 @@ commutative_operand_precedence (op) in order to canonicalize expression. */ int -swap_commutative_operands_p (x, y) - rtx x, y; +swap_commutative_operands_p (rtx x, rtx y) { return (commutative_operand_precedence (x) < commutative_operand_precedence (y)); @@ -3175,8 +3065,7 @@ swap_commutative_operands_p (x, y) /* Return 1 if X is an autoincrement side effect and the register is not the stack pointer. */ int -auto_inc_p (x) - rtx x; +auto_inc_p (rtx x) { switch (GET_CODE (x)) { @@ -3206,10 +3095,7 @@ auto_inc_p (x) conditions as well. */ int -insns_safe_to_move_p (from, to, new_to) - rtx from; - rtx to; - rtx *new_to; +insns_safe_to_move_p (rtx from, rtx to, rtx *new_to) { int eh_region_count = 0; int past_to_p = 0; @@ -3276,8 +3162,7 @@ insns_safe_to_move_p (from, to, new_to) /* Return nonzero if IN contains a piece of rtl that has the address LOC. */ int -loc_mentioned_in_p (loc, in) - rtx *loc, in; +loc_mentioned_in_p (rtx *loc, rtx in) { enum rtx_code code = GET_CODE (in); const char *fmt = GET_RTX_FORMAT (code); @@ -3304,8 +3189,7 @@ loc_mentioned_in_p (loc, in) (counting from the least significant bit of the reg). */ unsigned int -subreg_lsb (x) - rtx x; +subreg_lsb (rtx x) { enum machine_mode inner_mode = GET_MODE (SUBREG_REG (x)); enum machine_mode mode = GET_MODE (x); @@ -3350,11 +3234,8 @@ subreg_lsb (x) ymode - The mode of a top level SUBREG (or what may become one). RETURN - The regno offset which would be used. */ unsigned int -subreg_regno_offset (xregno, xmode, offset, ymode) - unsigned int xregno; - enum machine_mode xmode; - unsigned int offset; - enum machine_mode ymode; +subreg_regno_offset (unsigned int xregno, enum machine_mode xmode, + unsigned int offset, enum machine_mode ymode) { int nregs_xmode, nregs_ymode; int mode_multiple, nregs_multiple; @@ -3396,11 +3277,8 @@ subreg_regno_offset (xregno, xmode, offset, ymode) ymode - The mode of a top level SUBREG (or what may become one). RETURN - The regno offset which would be used. */ bool -subreg_offset_representable_p (xregno, xmode, offset, ymode) - unsigned int xregno; - enum machine_mode xmode; - unsigned int offset; - enum machine_mode ymode; +subreg_offset_representable_p (unsigned int xregno, enum machine_mode xmode, + unsigned int offset, enum machine_mode ymode) { int nregs_xmode, nregs_ymode; int mode_multiple, nregs_multiple; @@ -3436,9 +3314,9 @@ subreg_offset_representable_p (xregno, xmode, offset, ymode) /* The XMODE value can be seen as a vector of NREGS_XMODE values. The subreg must represent an lowpart of given field. Compute what field it is. */ - offset -= subreg_lowpart_offset (ymode, - mode_for_size (GET_MODE_BITSIZE (xmode) - / nregs_xmode, + offset -= subreg_lowpart_offset (ymode, + mode_for_size (GET_MODE_BITSIZE (xmode) + / nregs_xmode, MODE_INT, 0)); /* size of ymode must not be greater than the size of xmode. */ @@ -3458,8 +3336,7 @@ subreg_offset_representable_p (xregno, xmode, offset, ymode) /* Return the final regno that a subreg expression refers to. */ unsigned int -subreg_regno (x) - rtx x; +subreg_regno (rtx x) { unsigned int ret; rtx subreg = SUBREG_REG (x); @@ -3480,9 +3357,7 @@ struct parms_set_data /* Helper function for noticing stores to parameter registers. */ static void -parms_set (x, pat, data) - rtx x, pat ATTRIBUTE_UNUSED; - void *data; +parms_set (rtx x, rtx pat ATTRIBUTE_UNUSED, void *data) { struct parms_set_data *d = data; if (REG_P (x) && REGNO (x) < FIRST_PSEUDO_REGISTER @@ -3496,8 +3371,7 @@ parms_set (x, pat, data) /* Look backward for first parameter to be loaded. Do not skip BOUNDARY. */ rtx -find_first_parameter_load (call_insn, boundary) - rtx call_insn, boundary; +find_first_parameter_load (rtx call_insn, rtx boundary) { struct parms_set_data parm; rtx p, before; @@ -3555,8 +3429,7 @@ find_first_parameter_load (call_insn, boundary) call instruction. */ bool -keep_with_call_p (insn) - rtx insn; +keep_with_call_p (rtx insn) { rtx set; @@ -3590,9 +3463,7 @@ keep_with_call_p (insn) whose value will be used. */ static bool -hoist_test_store (x, val, live) - rtx x, val; - regset live; +hoist_test_store (rtx x, rtx val, regset live) { if (GET_CODE (x) == SCRATCH) return true; @@ -3648,9 +3519,7 @@ hoist_test_store (x, val, live) and used by the hoisting pass. */ bool -can_hoist_insn_p (insn, val, live) - rtx insn, val; - regset live; +can_hoist_insn_p (rtx insn, rtx val, regset live) { rtx pat = PATTERN (insn); int i; @@ -3717,8 +3586,7 @@ can_hoist_insn_p (insn, val, live) be updated to NEW. */ static void -hoist_update_store (insn, xp, val, new) - rtx insn, *xp, val, new; +hoist_update_store (rtx insn, rtx *xp, rtx val, rtx new) { rtx x = *xp; @@ -3755,8 +3623,7 @@ hoist_update_store (insn, xp, val, new) and each other side effect to pseudo register by new pseudo register. */ rtx -hoist_insn_after (insn, after, val, new) - rtx insn, after, val, new; +hoist_insn_after (rtx insn, rtx after, rtx val, rtx new) { rtx pat; int i; @@ -3820,9 +3687,7 @@ hoist_insn_after (insn, after, val, new) } rtx -hoist_insn_to_edge (insn, e, val, new) - rtx insn, val, new; - edge e; +hoist_insn_to_edge (rtx insn, edge e, rtx val, rtx new) { rtx new_insn; |