diff options
author | steven <steven@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-04-10 08:45:25 +0000 |
---|---|---|
committer | steven <steven@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-04-10 08:45:25 +0000 |
commit | defc80168592ecb030888c160c71320514b2cbf0 (patch) | |
tree | 6229d5f39b16f05c907b4000ab97e789cb96da6b /gcc/cselib.c | |
parent | ef948a604bd208b1079f290c30b29153ef0ed0b9 (diff) | |
download | gcc-defc80168592ecb030888c160c71320514b2cbf0.tar.gz |
* cselib.c (clear_table): Rename to cselib_clear_table.
* cselib.h (cselib_clear_table): Add prototype.
* gcse.c (gcse_main): Make 'f' argument unused.
(alloc_gcse_mem): Do not walk the insn chain, walk the contents
of each basic block instead.
(compute_sets, compute_hash_table_work): Likewise.
(constprop_register): Change int 'alter_jumps' argument to bool.
(do_local_cprop): Likewise.
(local_cprop_pass): Likewise. Also walk basic blocks instead of
the insn chain. Explicitly clear the cselib tables after finishing
one basic block. Make sure there are no unterminated libcall blocks.
Update compute_sets call.
(cprop): Walk basic blocks instead of the insn chain.
(one_cprop_pass, compute_ld_motion_mems, compute_store_table):
Likewise.
(bypass_jumps): Update alloc_gcse_mem, compute_sets, and
one_cprop_pass calls.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@97945 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cselib.c')
-rw-r--r-- | gcc/cselib.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/gcc/cselib.c b/gcc/cselib.c index 351d22d4110..b7a8963da77 100644 --- a/gcc/cselib.c +++ b/gcc/cselib.c @@ -50,7 +50,6 @@ static struct elt_loc_list *new_elt_loc_list (struct elt_loc_list *, rtx); static void unchain_one_value (cselib_val *); static void unchain_one_elt_list (struct elt_list **); static void unchain_one_elt_loc_list (struct elt_loc_list **); -static void clear_table (void); static int discard_useless_locs (void **, void *); static int discard_useless_values (void **, void *); static void remove_useless_values (void); @@ -106,11 +105,11 @@ static unsigned int reg_values_size; #define REG_VALUES(i) reg_values[i] /* The largest number of hard regs used by any entry added to the - REG_VALUES table. Cleared on each clear_table() invocation. */ + REG_VALUES table. Cleared on each cselib_clear_table() invocation. */ static unsigned int max_value_regs; /* Here the set of indices I with REG_VALUES(I) != 0 is saved. This is used - in clear_table() for fast emptying. */ + in cselib_clear_table() for fast emptying. */ static unsigned int *used_regs; static unsigned int n_used_regs; @@ -200,8 +199,8 @@ unchain_one_value (cselib_val *v) initialization. If CLEAR_ALL isn't set, then only clear the entries which are known to have been used. */ -static void -clear_table (void) +void +cselib_clear_table (void) { unsigned int i; @@ -1362,7 +1361,7 @@ cselib_process_insn (rtx insn) { if (find_reg_note (insn, REG_RETVAL, NULL)) cselib_current_insn_in_libcall = false; - clear_table (); + cselib_clear_table (); return; } @@ -1464,7 +1463,7 @@ cselib_finish (void) free_alloc_pool (elt_loc_list_pool); free_alloc_pool (cselib_val_pool); free_alloc_pool (value_pool); - clear_table (); + cselib_clear_table (); htab_delete (hash_table); free (used_regs); used_regs = 0; |