summaryrefslogtreecommitdiff
path: root/gcc/cselib.c
diff options
context:
space:
mode:
authorsteven <steven@138bc75d-0d04-0410-961f-82ee72b054a4>2005-04-10 08:45:25 +0000
committersteven <steven@138bc75d-0d04-0410-961f-82ee72b054a4>2005-04-10 08:45:25 +0000
commitdefc80168592ecb030888c160c71320514b2cbf0 (patch)
tree6229d5f39b16f05c907b4000ab97e789cb96da6b /gcc/cselib.c
parentef948a604bd208b1079f290c30b29153ef0ed0b9 (diff)
downloadgcc-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.c13
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;