diff options
author | mmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4> | 1999-10-27 19:27:41 +0000 |
---|---|---|
committer | mmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4> | 1999-10-27 19:27:41 +0000 |
commit | ec8895d7f89aeca28ca1ea1ea2145cfc085158eb (patch) | |
tree | ea2baf03b5fb6cdb1cb4627f42bbf6bd5341560e /gcc/global.c | |
parent | bf307050129bbf6822c587772b7babc5c0d4ed0b (diff) | |
download | gcc-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.c | 25 |
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 |