summaryrefslogtreecommitdiff
path: root/gcc/global.c
diff options
context:
space:
mode:
authormmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>1999-10-27 19:27:41 +0000
committermmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>1999-10-27 19:27:41 +0000
commitec8895d7f89aeca28ca1ea1ea2145cfc085158eb (patch)
treeea2baf03b5fb6cdb1cb4627f42bbf6bd5341560e /gcc/global.c
parentbf307050129bbf6822c587772b7babc5c0d4ed0b (diff)
downloadgcc-ec8895d7f89aeca28ca1ea1ea2145cfc085158eb.tar.gz
* rtl.h (note_stores): Add additional paramter.
* rtlanal.c (reg_set_p_1): Take additional paramter. (reg_set_last_1): Likewise. (reg_set_p): Adjust call to note_stores. (reg_set_last): Likewise. (note_stores): Pass data parameter to worker function. * alias.c (record_set): Take additional parameter. (init_alias_analysis): Pass it. * caller-save.c (mark_set_regs): Take additional parameter. (save_call_clobbered_regs): Pass NULL to note_stores. * combine.c (set_nonzero_bits_and_sign_copies): Take additional parameter. (record_dead_and_set_regs_1): Likewise. (reg_dead_at_p_1): Likewise. (combine_instructions): Adjust calls to note_stores. (try_combine): Likewise. (record_dead_insn): Remove. (record_dead_and_set_regs): Adjust calls to note_stores. (reg_dead_at_p): Likewise. * cse.c (invalidate_skipped_set): Take additional parameter. (cse_check_loop_start): Likewise. (cse_check_loop_start_value): Remove. (cse_set_around_loop): Adjust calls to note_stores. * flow.c (notice_stack_pointer_modification): Take additional parameter. Remove duplicate declaration. (record_volatile_insns): Adjust calls to note_stores. * gcse.c (record_set_info): Take additional parameter. (record_last_set_info): Likewise. (invalidate_nonnull_info): Likewise. (record_set_insn): Remove. (compute_sets): Adjust calls to note_stores. (last_set_insn): Remove. (compute_hash_table): Adjust calls to note_stores. (insert_insn_end_bb): Likewise. (delete_null_pointer_checks): Likewise. * global.c (mark_reg_store): Take additional parameter. (mark_reg_clobber): Likewise. (reg_becomes_live): Likewise. (global_conflicts): Adjust calls to note_stores. (build_insn_chain): Likewise. * integrate.c (note_modified_parmregs): Take additional parameter. (mark_stores): Likewise. Make it static. (save_for_inline_nocopy): Adjust calls to note_stores. (try_constants): Likewise. * integrate.h (mark_stores): Remove declaration. * jump.c (mark_modified_reg): Take additional parameter. (thread_jumps): Adjust calls to note_stores. * local-alloc.c (validate_equiv_mem_from_store): Take additional parameter. (no_equiv): Likewise. (reg_is_set): Likewise. (validate_equiv_mem): Adjust calls to note_stores. (update_equiv_regs): Likewise. (block_alloc): Likewise. * loop.c (note_set_pseudo_multiple_uses_retval): Remove. (note_addr_stored): Take additional parameter. (note_set_pseudo_multiple_uses): Likewise. (record_initial): Likewise. (prescan_loop): Adjust calls to note_stores. (strength_reduce): Likewise. (check_dbra_loop): Likewise. * regmove.c (flags_set_1): Take additional paramter. (mark_flags_life_zones): Adjust calls to note_stores. * reload1.c (mark_not_eliminable): Take additional parameter. (forget_old_reloads_1): Likewise. (reload_cse_invalidate_rtx): Likewise. (reload_cse_check_clobber): Likewise. (reload_combine_note_store): Likewise. (move2add_note_store): Likewise. (reload): Adjust calls to note_stores. (reload_as_needed): Likewise. (emit_reload_insns): Likewise. (reload_cse_regs_1): Likewise. (reload_cse_record_set): Adjust calls to reload_cse_invalidate_rtx. (reload_combine): Adjust calls to note_stores. * resource.c (update_live_status): Take additional paramter. (mark_target_live_regs): Adjust calls to note_stores. * stupid.c (find_clobbered_regs): Take additional parameter. (stupid_life_analysis): Adjust calls to note_stores. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@30221 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/global.c')
-rw-r--r--gcc/global.c25
1 files changed, 14 insertions, 11 deletions
diff --git a/gcc/global.c b/gcc/global.c
index 44564e8dd2e..0b8aedd4cf8 100644
--- a/gcc/global.c
+++ b/gcc/global.c
@@ -264,14 +264,14 @@ static void prune_preferences PROTO((void));
static void find_reg PROTO((int, HARD_REG_SET, int, int, int));
static void record_one_conflict PROTO((int));
static void record_conflicts PROTO((int *, int));
-static void mark_reg_store PROTO((rtx, rtx));
-static void mark_reg_clobber PROTO((rtx, rtx));
+static void mark_reg_store PROTO((rtx, rtx, void *));
+static void mark_reg_clobber PROTO((rtx, rtx, void *));
static void mark_reg_conflicts PROTO((rtx));
static void mark_reg_death PROTO((rtx));
static void mark_reg_live_nc PROTO((int, enum machine_mode));
static void set_preference PROTO((rtx, rtx));
static void dump_conflicts PROTO((FILE *));
-static void reg_becomes_live PROTO((rtx, rtx));
+static void reg_becomes_live PROTO((rtx, rtx, void *));
static void reg_dies PROTO((int, enum machine_mode));
static void build_insn_chain PROTO((rtx));
@@ -722,7 +722,7 @@ global_conflicts ()
/* Mark any registers clobbered by INSN as live,
so they conflict with the inputs. */
- note_stores (PATTERN (insn), mark_reg_clobber);
+ note_stores (PATTERN (insn), mark_reg_clobber, NULL);
/* Mark any registers dead after INSN as dead now. */
@@ -735,12 +735,12 @@ global_conflicts ()
Clobbers are processed again, so they conflict with
the registers that are set. */
- note_stores (PATTERN (insn), mark_reg_store);
+ note_stores (PATTERN (insn), mark_reg_store, NULL);
#ifdef AUTO_INC_DEC
for (link = REG_NOTES (insn); link; link = XEXP (link, 1))
if (REG_NOTE_KIND (link) == REG_INC)
- mark_reg_store (XEXP (link, 0), NULL_RTX);
+ mark_reg_store (XEXP (link, 0), NULL_RTX, NULL);
#endif
/* If INSN has multiple outputs, then any reg that dies here
@@ -1341,8 +1341,9 @@ record_conflicts (allocno_vec, len)
a REG_INC note was found for it). */
static void
-mark_reg_store (reg, setter)
+mark_reg_store (reg, setter, data)
rtx reg, setter;
+ void *data ATTRIBUTE_UNUSED;
{
register int regno;
@@ -1398,11 +1399,12 @@ mark_reg_store (reg, setter)
/* Like mark_reg_set except notice just CLOBBERs; ignore SETs. */
static void
-mark_reg_clobber (reg, setter)
+mark_reg_clobber (reg, setter, data)
rtx reg, setter;
+ void *data ATTRIBUTE_UNUSED;
{
if (GET_CODE (setter) == CLOBBER)
- mark_reg_store (reg, setter);
+ mark_reg_store (reg, setter, data);
}
/* Record that REG has conflicts with all the regs currently live.
@@ -1623,9 +1625,10 @@ static regset live_relevant_regs;
/* Record in live_relevant_regs that register REG became live. This
is called via note_stores. */
static void
-reg_becomes_live (reg, setter)
+reg_becomes_live (reg, setter, data)
rtx reg;
rtx setter ATTRIBUTE_UNUSED;
+ void *data ATTRIBUTE_UNUSED;
{
int regno;
@@ -1718,7 +1721,7 @@ build_insn_chain (first)
/* Mark everything born in this instruction as live. */
- note_stores (PATTERN (first), reg_becomes_live);
+ note_stores (PATTERN (first), reg_becomes_live, NULL);
}
/* Remember which registers are live at the end of the insn, before