summaryrefslogtreecommitdiff
path: root/gcc/rtlanal.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/rtlanal.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/rtlanal.c')
-rw-r--r--gcc/rtlanal.c27
1 files changed, 15 insertions, 12 deletions
diff --git a/gcc/rtlanal.c b/gcc/rtlanal.c
index 012f6db9468..573bed01dca 100644
--- a/gcc/rtlanal.c
+++ b/gcc/rtlanal.c
@@ -24,8 +24,8 @@ Boston, MA 02111-1307, USA. */
#include "rtl.h"
static int rtx_addr_can_trap_p PROTO((rtx));
-static void reg_set_p_1 PROTO((rtx, rtx));
-static void reg_set_last_1 PROTO((rtx, rtx));
+static void reg_set_p_1 PROTO((rtx, rtx, void *));
+static void reg_set_last_1 PROTO((rtx, rtx, void *));
/* Forward declarations */
@@ -473,9 +473,10 @@ static rtx reg_set_reg;
static int reg_set_flag;
static void
-reg_set_p_1 (x, pat)
+reg_set_p_1 (x, pat, data)
rtx x;
rtx pat ATTRIBUTE_UNUSED;
+ void *data ATTRIBUTE_UNUSED;
{
/* We don't want to return 1 if X is a MEM that contains a register
within REG_SET_REG. */
@@ -514,7 +515,7 @@ reg_set_p (reg, insn)
reg_set_reg = reg;
reg_set_flag = 0;
- note_stores (body, reg_set_p_1);
+ note_stores (body, reg_set_p_1, NULL);
return reg_set_flag;
}
@@ -980,9 +981,10 @@ static int reg_set_last_first_regno, reg_set_last_last_regno;
/* Called via note_stores from reg_set_last. */
static void
-reg_set_last_1 (x, pat)
+reg_set_last_1 (x, pat, data)
rtx x;
rtx pat;
+ void *data ATTRIBUTE_UNUSED;
{
int first, last;
@@ -1047,7 +1049,7 @@ reg_set_last (x, insn)
insn = PREV_INSN (insn))
if (GET_RTX_CLASS (GET_CODE (insn)) == 'i')
{
- note_stores (PATTERN (insn), reg_set_last_1);
+ note_stores (PATTERN (insn), reg_set_last_1, NULL);
if (reg_set_last_unknown)
return 0;
else if (reg_set_last_value)
@@ -1184,9 +1186,10 @@ rtx_equal_p (x, y)
the SUBREG will be passed. */
void
-note_stores (x, fun)
+note_stores (x, fun, data)
register rtx x;
- void (*fun) PROTO ((rtx, rtx));
+ void (*fun) PROTO ((rtx, rtx, void *));
+ void *data;
{
if ((GET_CODE (x) == SET || GET_CODE (x) == CLOBBER))
{
@@ -1204,10 +1207,10 @@ note_stores (x, fun)
{
register int i;
for (i = XVECLEN (dest, 0) - 1; i >= 0; i--)
- (*fun) (SET_DEST (XVECEXP (dest, 0, i)), x);
+ (*fun) (SET_DEST (XVECEXP (dest, 0, i)), x, data);
}
else
- (*fun) (dest, x);
+ (*fun) (dest, x, data);
}
else if (GET_CODE (x) == PARALLEL)
{
@@ -1231,10 +1234,10 @@ note_stores (x, fun)
{
register int i;
for (i = XVECLEN (dest, 0) - 1; i >= 0; i--)
- (*fun) (SET_DEST (XVECEXP (dest, 0, i)), y);
+ (*fun) (SET_DEST (XVECEXP (dest, 0, i)), y, data);
}
else
- (*fun) (dest, y);
+ (*fun) (dest, y, data);
}
}
}