Commit 5d86f5f9 by David Malcolm Committed by David Malcolm

reload: Use rtx_insn (also touches caller-save.c and config/arc/arc)

gcc/
	* reload.h (struct insn_chain): Strengthen field "insn" from rtx
	to rtx_insn *.
	(find_reloads): Likewise for param 1.
	(subst_reloads): Likewise for sole param.
	(find_equiv_reg): Likwise for param 2.
	(regno_clobbered_p): Likwise for param 2.
	(reload): Likewise for param 1.

	* caller-save.c (save_call_clobbered_regs): Strengthen local
	"insn" from rtx to rtx_insn *.
	(insert_one_insn): Likewise for local "insn".

	* reload.c (this_insn): Likewise for this global.
	(find_reloads): Likewise for param "insn".
	(find_reloads_toplev): Likewise.
	(find_reloads_address): Likewise.
	(subst_reg_equivs): Likewise.
	(update_auto_inc_notes): Likewise.
	(find_reloads_address_1): Likewise.
	(find_reloads_subreg_address): Likewise.
	(subst_reloads): Likewise.
	(find_equiv_reg): Likewise, also for local "p".
	(regno_clobbered_p): Likewise for param "insn".

	* reload1.c (reg_reloaded_insn): Likewise for the elements of this
	array.
	(spill_reg_store): Likewise for the elements of this array.
	(remove_init_insns): Likewise for local "equiv_insn".
	(will_delete_init_insn_p): Likewise for param "insn".
	(reload): Likewise for param ""first" and local "insn".
	(calculate_needs_all_insns): Strengthen local "insn" from rtx to
	rtx_insn *.
	(calculate_elim_costs_all_insns): Likewise.
	(delete_caller_save_insns): Likewise.
	(spill_failure): Likewise for param "insn".
	(delete_dead_insn): Likewise.
	(set_label_offsets): Likewise.
	(eliminate_regs_in_insn): Likewise, also for locals "base_insn" and
	"prev_insn".
	(elimination_costs_in_insn): Likewise for param "insn".
	(set_initial_eh_label_offset): Replace use of NULL_RTX with NULL
	when referring to an insn.
	(set_initial_label_offsets): Likewise.
	(set_offsets_for_label): Strengthen param "insn" from rtx to
	rtx_insn *.
	(init_eliminable_invariants): Likewise for param "first" and local
	"insn".
	(fixup_eh_region_note): Likewise for param "insn".
	(reload_as_needed): Likewise for locals "prev", "insn",
	"old_next", "old_prev", "next".
	(gen_reload_chain_without_interm_reg_p): Likewise for locals "insn",
	"last".
	(reload_inheritance_insn): Strengthen elements of this array from
	rtx to rtx_insn *.
	(failed_reload): Likewise for param "insn".
	(choose_reload_regs): Likewise for local "insn".  Replace use of
	NULL_RTX with NULL when referring to an insn.
	(input_reload_insns): Strengthen elements of this array from rtx
	to rtx_insn *.
	(other_input_address_reload_insns): Likewise for this global.
	(other_input_reload_insns): Likewise for this global.
	(input_address_reload_insns): Likwise for the elements of this
	array.
	(inpaddr_address_reload_insns): Likwise for the elements of this
	array.
	(output_reload_insns): Likewise for the elements of this array.
	(output_address_reload_insns): Likewise for the elements of this
	array.
	(outaddr_address_reload_insns): Likewise for the elements of this
	array.
	(operand_reload_insns): Likewise for this global.
	(other_operand_reload_insns): Likewise for this global.
	(other_output_reload_insns): Likewise for the elements of this
	array.
	(new_spill_reg_store): Likewise for the elements of this
	array.
	(emit_input_reload_insns): Likewise for locals "insn", "temp".
	Strengthen local "where" from rtx * to rtx_insn **.
	(emit_output_reload_insns): Strengthen locals "insn", "p", "next"
	from rtx to rtx_insn *.
	(do_input_reload): Likewise for local "insn".
	(do_output_reload): Likewise for local "insn".
	(emit_reload_insns): Likewise for locals "insn" and "store_insn".
	(emit_insn_if_valid_for_reload): Likewise for return type and local
	"last".  Add checked cast to rtx_insn when returning "insn" since
	this has been through emit_insn.
	(gen_reload): Strengthen return type and locals "last", "insn", "set"
	from rtx to rtx_insn *.  Add checked cast to rtx_insn when
	returning "insn" since it's been through
	emit_insn_if_valid_for_reload at this point.
	(delete_output_reload): Strengthen param "insn" and locals
	"output_reload_insn", "i2" from rtx to rtx_insn *.
	(delete_address_reloads): Likewise for params "dead_insn",
	"current_insn" and locals "prev", "next".
	(delete_address_reloads_1): Likewise for params "dead_insn",
	"current_insn" and locals "prev", "i2".
	(inc_for_reload): Likewise for locals "last", "add_insn".
	(add_auto_inc_notes): Strengthen param "insn" from rtx to
	rtx_insn *.

	* config/arc/arc-protos.h (regno_clobbered_p): Likewise for 2nd
	param of this duplicate of the prototype from reload.h

From-SVN: r214370
parent 7839a073
2014-08-22 David Malcolm <dmalcolm@redhat.com> 2014-08-22 David Malcolm <dmalcolm@redhat.com>
* reload.h (struct insn_chain): Strengthen field "insn" from rtx
to rtx_insn *.
(find_reloads): Likewise for param 1.
(subst_reloads): Likewise for sole param.
(find_equiv_reg): Likwise for param 2.
(regno_clobbered_p): Likwise for param 2.
(reload): Likewise for param 1.
* caller-save.c (save_call_clobbered_regs): Strengthen local
"insn" from rtx to rtx_insn *.
(insert_one_insn): Likewise for local "insn".
* reload.c (this_insn): Likewise for this global.
(find_reloads): Likewise for param "insn".
(find_reloads_toplev): Likewise.
(find_reloads_address): Likewise.
(subst_reg_equivs): Likewise.
(update_auto_inc_notes): Likewise.
(find_reloads_address_1): Likewise.
(find_reloads_subreg_address): Likewise.
(subst_reloads): Likewise.
(find_equiv_reg): Likewise, also for local "p".
(regno_clobbered_p): Likewise for param "insn".
* reload1.c (reg_reloaded_insn): Likewise for the elements of this
array.
(spill_reg_store): Likewise for the elements of this array.
(remove_init_insns): Likewise for local "equiv_insn".
(will_delete_init_insn_p): Likewise for param "insn".
(reload): Likewise for param ""first" and local "insn".
(calculate_needs_all_insns): Strengthen local "insn" from rtx to
rtx_insn *.
(calculate_elim_costs_all_insns): Likewise.
(delete_caller_save_insns): Likewise.
(spill_failure): Likewise for param "insn".
(delete_dead_insn): Likewise.
(set_label_offsets): Likewise.
(eliminate_regs_in_insn): Likewise, also for locals "base_insn" and
"prev_insn".
(elimination_costs_in_insn): Likewise for param "insn".
(set_initial_eh_label_offset): Replace use of NULL_RTX with NULL
when referring to an insn.
(set_initial_label_offsets): Likewise.
(set_offsets_for_label): Strengthen param "insn" from rtx to
rtx_insn *.
(init_eliminable_invariants): Likewise for param "first" and local
"insn".
(fixup_eh_region_note): Likewise for param "insn".
(reload_as_needed): Likewise for locals "prev", "insn",
"old_next", "old_prev", "next".
(gen_reload_chain_without_interm_reg_p): Likewise for locals "insn",
"last".
(reload_inheritance_insn): Strengthen elements of this array from
rtx to rtx_insn *.
(failed_reload): Likewise for param "insn".
(choose_reload_regs): Likewise for local "insn". Replace use of
NULL_RTX with NULL when referring to an insn.
(input_reload_insns): Strengthen elements of this array from rtx
to rtx_insn *.
(other_input_address_reload_insns): Likewise for this global.
(other_input_reload_insns): Likewise for this global.
(input_address_reload_insns): Likwise for the elements of this
array.
(inpaddr_address_reload_insns): Likwise for the elements of this
array.
(output_reload_insns): Likewise for the elements of this array.
(output_address_reload_insns): Likewise for the elements of this
array.
(outaddr_address_reload_insns): Likewise for the elements of this
array.
(operand_reload_insns): Likewise for this global.
(other_operand_reload_insns): Likewise for this global.
(other_output_reload_insns): Likewise for the elements of this
array.
(new_spill_reg_store): Likewise for the elements of this
array.
(emit_input_reload_insns): Likewise for locals "insn", "temp".
Strengthen local "where" from rtx * to rtx_insn **.
(emit_output_reload_insns): Strengthen locals "insn", "p", "next"
from rtx to rtx_insn *.
(do_input_reload): Likewise for local "insn".
(do_output_reload): Likewise for local "insn".
(emit_reload_insns): Likewise for locals "insn" and "store_insn".
(emit_insn_if_valid_for_reload): Likewise for return type and local
"last". Add checked cast to rtx_insn when returning "insn" since
this has been through emit_insn.
(gen_reload): Strengthen return type and locals "last", "insn", "set"
from rtx to rtx_insn *. Add checked cast to rtx_insn when
returning "insn" since it's been through
emit_insn_if_valid_for_reload at this point.
(delete_output_reload): Strengthen param "insn" and locals
"output_reload_insn", "i2" from rtx to rtx_insn *.
(delete_address_reloads): Likewise for params "dead_insn",
"current_insn" and locals "prev", "next".
(delete_address_reloads_1): Likewise for params "dead_insn",
"current_insn" and locals "prev", "i2".
(inc_for_reload): Likewise for locals "last", "add_insn".
(add_auto_inc_notes): Strengthen param "insn" from rtx to
rtx_insn *.
* config/arc/arc-protos.h (regno_clobbered_p): Likewise for 2nd
param of this duplicate of the prototype from reload.h
2014-08-22 David Malcolm <dmalcolm@redhat.com>
* regstat.c (regstat_bb_compute_ri): Strengthen local "insn" from * regstat.c (regstat_bb_compute_ri): Strengthen local "insn" from
rtx to rtx_insn *. rtx to rtx_insn *.
(regstat_bb_compute_calls_crossed): Likewise. (regstat_bb_compute_calls_crossed): Likewise.
......
...@@ -755,7 +755,7 @@ save_call_clobbered_regs (void) ...@@ -755,7 +755,7 @@ save_call_clobbered_regs (void)
for (chain = reload_insn_chain; chain != 0; chain = next) for (chain = reload_insn_chain; chain != 0; chain = next)
{ {
rtx insn = chain->insn; rtx_insn *insn = chain->insn;
enum rtx_code code = GET_CODE (insn); enum rtx_code code = GET_CODE (insn);
next = chain->next; next = chain->next;
...@@ -1372,7 +1372,7 @@ add_used_regs (rtx *loc, void *data) ...@@ -1372,7 +1372,7 @@ add_used_regs (rtx *loc, void *data)
static struct insn_chain * static struct insn_chain *
insert_one_insn (struct insn_chain *chain, int before_p, int code, rtx pat) insert_one_insn (struct insn_chain *chain, int before_p, int code, rtx pat)
{ {
rtx insn = chain->insn; rtx_insn *insn = chain->insn;
struct insn_chain *new_chain; struct insn_chain *new_chain;
#ifdef HAVE_cc0 #ifdef HAVE_cc0
......
...@@ -113,6 +113,6 @@ extern int arc_decl_pretend_args (tree decl); ...@@ -113,6 +113,6 @@ extern int arc_decl_pretend_args (tree decl);
extern bool arc_short_comparison_p (rtx, int); extern bool arc_short_comparison_p (rtx, int);
extern bool arc_epilogue_uses (int regno); extern bool arc_epilogue_uses (int regno);
/* insn-attrtab.c doesn't include reload.h, which declares regno_clobbered_p. */ /* insn-attrtab.c doesn't include reload.h, which declares regno_clobbered_p. */
extern int regno_clobbered_p (unsigned int, rtx, enum machine_mode, int); extern int regno_clobbered_p (unsigned int, rtx_insn *, enum machine_mode, int);
extern int arc_return_slot_offset (void); extern int arc_return_slot_offset (void);
extern bool arc_legitimize_reload_address (rtx *, enum machine_mode, int, int); extern bool arc_legitimize_reload_address (rtx *, enum machine_mode, int, int);
...@@ -191,7 +191,7 @@ static int secondary_memlocs_elim_used = 0; ...@@ -191,7 +191,7 @@ static int secondary_memlocs_elim_used = 0;
/* The instruction we are doing reloads for; /* The instruction we are doing reloads for;
so we can test whether a register dies in it. */ so we can test whether a register dies in it. */
static rtx this_insn; static rtx_insn *this_insn;
/* Nonzero if this instruction is a user-specified asm with operands. */ /* Nonzero if this instruction is a user-specified asm with operands. */
static int this_insn_is_asm; static int this_insn_is_asm;
...@@ -264,24 +264,24 @@ static int hard_reg_set_here_p (unsigned int, unsigned int, rtx); ...@@ -264,24 +264,24 @@ static int hard_reg_set_here_p (unsigned int, unsigned int, rtx);
static struct decomposition decompose (rtx); static struct decomposition decompose (rtx);
static int immune_p (rtx, rtx, struct decomposition); static int immune_p (rtx, rtx, struct decomposition);
static bool alternative_allows_const_pool_ref (rtx, const char *, int); static bool alternative_allows_const_pool_ref (rtx, const char *, int);
static rtx find_reloads_toplev (rtx, int, enum reload_type, int, int, rtx, static rtx find_reloads_toplev (rtx, int, enum reload_type, int, int,
int *); rtx_insn *, int *);
static rtx make_memloc (rtx, int); static rtx make_memloc (rtx, int);
static int maybe_memory_address_addr_space_p (enum machine_mode, rtx, static int maybe_memory_address_addr_space_p (enum machine_mode, rtx,
addr_space_t, rtx *); addr_space_t, rtx *);
static int find_reloads_address (enum machine_mode, rtx *, rtx, rtx *, static int find_reloads_address (enum machine_mode, rtx *, rtx, rtx *,
int, enum reload_type, int, rtx); int, enum reload_type, int, rtx_insn *);
static rtx subst_reg_equivs (rtx, rtx); static rtx subst_reg_equivs (rtx, rtx_insn *);
static rtx subst_indexed_address (rtx); static rtx subst_indexed_address (rtx);
static void update_auto_inc_notes (rtx, int, int); static void update_auto_inc_notes (rtx_insn *, int, int);
static int find_reloads_address_1 (enum machine_mode, addr_space_t, rtx, int, static int find_reloads_address_1 (enum machine_mode, addr_space_t, rtx, int,
enum rtx_code, enum rtx_code, rtx *, enum rtx_code, enum rtx_code, rtx *,
int, enum reload_type,int, rtx); int, enum reload_type,int, rtx_insn *);
static void find_reloads_address_part (rtx, rtx *, enum reg_class, static void find_reloads_address_part (rtx, rtx *, enum reg_class,
enum machine_mode, int, enum machine_mode, int,
enum reload_type, int); enum reload_type, int);
static rtx find_reloads_subreg_address (rtx, int, enum reload_type, static rtx find_reloads_subreg_address (rtx, int, enum reload_type,
int, rtx, int *); int, rtx_insn *, int *);
static void copy_replacements_1 (rtx *, rtx *, int); static void copy_replacements_1 (rtx *, rtx *, int);
static int find_inc_amount (rtx, rtx); static int find_inc_amount (rtx, rtx);
static int refers_to_mem_for_reload_p (rtx); static int refers_to_mem_for_reload_p (rtx);
...@@ -2609,7 +2609,7 @@ safe_from_earlyclobber (rtx op, rtx clobber) ...@@ -2609,7 +2609,7 @@ safe_from_earlyclobber (rtx op, rtx clobber)
commutative operands, reg_equiv_address substitution, or whatever. */ commutative operands, reg_equiv_address substitution, or whatever. */
int int
find_reloads (rtx insn, int replace, int ind_levels, int live_known, find_reloads (rtx_insn *insn, int replace, int ind_levels, int live_known,
short *reload_reg_p) short *reload_reg_p)
{ {
int insn_code_number; int insn_code_number;
...@@ -4667,7 +4667,7 @@ alternative_allows_const_pool_ref (rtx mem ATTRIBUTE_UNUSED, ...@@ -4667,7 +4667,7 @@ alternative_allows_const_pool_ref (rtx mem ATTRIBUTE_UNUSED,
static rtx static rtx
find_reloads_toplev (rtx x, int opnum, enum reload_type type, find_reloads_toplev (rtx x, int opnum, enum reload_type type,
int ind_levels, int is_set_dest, rtx insn, int ind_levels, int is_set_dest, rtx_insn *insn,
int *address_reloaded) int *address_reloaded)
{ {
RTX_CODE code = GET_CODE (x); RTX_CODE code = GET_CODE (x);
...@@ -4875,7 +4875,7 @@ maybe_memory_address_addr_space_p (enum machine_mode mode, rtx ad, ...@@ -4875,7 +4875,7 @@ maybe_memory_address_addr_space_p (enum machine_mode mode, rtx ad,
static int static int
find_reloads_address (enum machine_mode mode, rtx *memrefloc, rtx ad, find_reloads_address (enum machine_mode mode, rtx *memrefloc, rtx ad,
rtx *loc, int opnum, enum reload_type type, rtx *loc, int opnum, enum reload_type type,
int ind_levels, rtx insn) int ind_levels, rtx_insn *insn)
{ {
addr_space_t as = memrefloc? MEM_ADDR_SPACE (*memrefloc) addr_space_t as = memrefloc? MEM_ADDR_SPACE (*memrefloc)
: ADDR_SPACE_GENERIC; : ADDR_SPACE_GENERIC;
...@@ -5277,7 +5277,7 @@ find_reloads_address (enum machine_mode mode, rtx *memrefloc, rtx ad, ...@@ -5277,7 +5277,7 @@ find_reloads_address (enum machine_mode mode, rtx *memrefloc, rtx ad,
front of it for pseudos that we have to replace with stack slots. */ front of it for pseudos that we have to replace with stack slots. */
static rtx static rtx
subst_reg_equivs (rtx ad, rtx insn) subst_reg_equivs (rtx ad, rtx_insn *insn)
{ {
RTX_CODE code = GET_CODE (ad); RTX_CODE code = GET_CODE (ad);
int i; int i;
...@@ -5453,7 +5453,7 @@ subst_indexed_address (rtx addr) ...@@ -5453,7 +5453,7 @@ subst_indexed_address (rtx addr)
RELOADNUM is the reload number. */ RELOADNUM is the reload number. */
static void static void
update_auto_inc_notes (rtx insn ATTRIBUTE_UNUSED, int regno ATTRIBUTE_UNUSED, update_auto_inc_notes (rtx_insn *insn ATTRIBUTE_UNUSED, int regno ATTRIBUTE_UNUSED,
int reloadnum ATTRIBUTE_UNUSED) int reloadnum ATTRIBUTE_UNUSED)
{ {
#ifdef AUTO_INC_DEC #ifdef AUTO_INC_DEC
...@@ -5501,7 +5501,7 @@ find_reloads_address_1 (enum machine_mode mode, addr_space_t as, ...@@ -5501,7 +5501,7 @@ find_reloads_address_1 (enum machine_mode mode, addr_space_t as,
rtx x, int context, rtx x, int context,
enum rtx_code outer_code, enum rtx_code index_code, enum rtx_code outer_code, enum rtx_code index_code,
rtx *loc, int opnum, enum reload_type type, rtx *loc, int opnum, enum reload_type type,
int ind_levels, rtx insn) int ind_levels, rtx_insn *insn)
{ {
#define REG_OK_FOR_CONTEXT(CONTEXT, REGNO, MODE, AS, OUTER, INDEX) \ #define REG_OK_FOR_CONTEXT(CONTEXT, REGNO, MODE, AS, OUTER, INDEX) \
((CONTEXT) == 0 \ ((CONTEXT) == 0 \
...@@ -6135,7 +6135,8 @@ find_reloads_address_part (rtx x, rtx *loc, enum reg_class rclass, ...@@ -6135,7 +6135,8 @@ find_reloads_address_part (rtx x, rtx *loc, enum reg_class rclass,
static rtx static rtx
find_reloads_subreg_address (rtx x, int opnum, enum reload_type type, find_reloads_subreg_address (rtx x, int opnum, enum reload_type type,
int ind_levels, rtx insn, int *address_reloaded) int ind_levels, rtx_insn *insn,
int *address_reloaded)
{ {
enum machine_mode outer_mode = GET_MODE (x); enum machine_mode outer_mode = GET_MODE (x);
enum machine_mode inner_mode = GET_MODE (SUBREG_REG (x)); enum machine_mode inner_mode = GET_MODE (SUBREG_REG (x));
...@@ -6244,7 +6245,7 @@ find_reloads_subreg_address (rtx x, int opnum, enum reload_type type, ...@@ -6244,7 +6245,7 @@ find_reloads_subreg_address (rtx x, int opnum, enum reload_type type,
Return the rtx that X translates into; usually X, but modified. */ Return the rtx that X translates into; usually X, but modified. */
void void
subst_reloads (rtx insn) subst_reloads (rtx_insn *insn)
{ {
int i; int i;
...@@ -6671,10 +6672,10 @@ refers_to_mem_for_reload_p (rtx x) ...@@ -6671,10 +6672,10 @@ refers_to_mem_for_reload_p (rtx x)
as if it were a constant except that sp is required to be unchanging. */ as if it were a constant except that sp is required to be unchanging. */
rtx rtx
find_equiv_reg (rtx goal, rtx insn, enum reg_class rclass, int other, find_equiv_reg (rtx goal, rtx_insn *insn, enum reg_class rclass, int other,
short *reload_reg_p, int goalreg, enum machine_mode mode) short *reload_reg_p, int goalreg, enum machine_mode mode)
{ {
rtx p = insn; rtx_insn *p = insn;
rtx goaltry, valtry, value, where; rtx goaltry, valtry, value, where;
rtx pat; rtx pat;
int regno = -1; int regno = -1;
...@@ -7207,7 +7208,7 @@ reg_inc_found_and_valid_p (unsigned int regno, unsigned int endregno, ...@@ -7207,7 +7208,7 @@ reg_inc_found_and_valid_p (unsigned int regno, unsigned int endregno,
REG_INC. REGNO must refer to a hard register. */ REG_INC. REGNO must refer to a hard register. */
int int
regno_clobbered_p (unsigned int regno, rtx insn, enum machine_mode mode, regno_clobbered_p (unsigned int regno, rtx_insn *insn, enum machine_mode mode,
int sets) int sets)
{ {
unsigned int nregs, endregno; unsigned int nregs, endregno;
......
...@@ -285,7 +285,7 @@ struct insn_chain ...@@ -285,7 +285,7 @@ struct insn_chain
struct insn_chain *next_need_reload; struct insn_chain *next_need_reload;
/* The rtx of the insn. */ /* The rtx of the insn. */
rtx insn; rtx_insn *insn;
/* The basic block this insn is in. */ /* The basic block this insn is in. */
int block; int block;
...@@ -364,7 +364,7 @@ extern int safe_from_earlyclobber (rtx, rtx); ...@@ -364,7 +364,7 @@ extern int safe_from_earlyclobber (rtx, rtx);
/* Search the body of INSN for values that need reloading and record them /* Search the body of INSN for values that need reloading and record them
with push_reload. REPLACE nonzero means record also where the values occur with push_reload. REPLACE nonzero means record also where the values occur
so that subst_reloads can be used. */ so that subst_reloads can be used. */
extern int find_reloads (rtx, int, int, int, short *); extern int find_reloads (rtx_insn *, int, int, int, short *);
/* Compute the sum of X and Y, making canonicalizations assumed in an /* Compute the sum of X and Y, making canonicalizations assumed in an
address, namely: sum constant integers, surround the sum of two address, namely: sum constant integers, surround the sum of two
...@@ -374,7 +374,7 @@ extern rtx form_sum (enum machine_mode, rtx, rtx); ...@@ -374,7 +374,7 @@ extern rtx form_sum (enum machine_mode, rtx, rtx);
/* Substitute into the current INSN the registers into which we have reloaded /* Substitute into the current INSN the registers into which we have reloaded
the things that need reloading. */ the things that need reloading. */
extern void subst_reloads (rtx); extern void subst_reloads (rtx_insn *);
/* Make a copy of any replacements being done into X and move those copies /* Make a copy of any replacements being done into X and move those copies
to locations in Y, a copy of X. We only look at the highest level of to locations in Y, a copy of X. We only look at the highest level of
...@@ -393,11 +393,11 @@ extern int reg_overlap_mentioned_for_reload_p (rtx, rtx); ...@@ -393,11 +393,11 @@ extern int reg_overlap_mentioned_for_reload_p (rtx, rtx);
/* Check the insns before INSN to see if there is a suitable register /* Check the insns before INSN to see if there is a suitable register
containing the same value as GOAL. */ containing the same value as GOAL. */
extern rtx find_equiv_reg (rtx, rtx, enum reg_class, int, short *, extern rtx find_equiv_reg (rtx, rtx_insn *, enum reg_class, int, short *,
int, enum machine_mode); int, enum machine_mode);
/* Return 1 if register REGNO is the subject of a clobber in insn INSN. */ /* Return 1 if register REGNO is the subject of a clobber in insn INSN. */
extern int regno_clobbered_p (unsigned int, rtx, enum machine_mode, int); extern int regno_clobbered_p (unsigned int, rtx_insn *, enum machine_mode, int);
/* Return 1 if X is an operand of an insn that is being earlyclobbered. */ /* Return 1 if X is an operand of an insn that is being earlyclobbered. */
extern int earlyclobber_operand_p (rtx); extern int earlyclobber_operand_p (rtx);
...@@ -413,7 +413,7 @@ extern int push_reload (rtx, rtx, rtx *, rtx *, enum reg_class, ...@@ -413,7 +413,7 @@ extern int push_reload (rtx, rtx, rtx *, rtx *, enum reg_class,
extern void init_reload (void); extern void init_reload (void);
/* The reload pass itself. */ /* The reload pass itself. */
extern bool reload (rtx, int); extern bool reload (rtx_insn *, int);
/* Mark the slots in regs_ever_live for the hard regs /* Mark the slots in regs_ever_live for the hard regs
used by pseudo-reg number REGNO. */ used by pseudo-reg number REGNO. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment