mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-01-11 17:35:12 +08:00
Make cselib_subst_to_values global.
From-SVN: r44717
This commit is contained in:
parent
4b6c534074
commit
9170044420
@ -15,6 +15,11 @@
|
||||
* sched-rgn.c (rgn_sched_info): Likewise.
|
||||
* Makefile.in (sched-deps.o): Update dependencies.
|
||||
|
||||
* cselib.h (cselib_subst_to_values): Declare.
|
||||
* cselib.c (cselib_subst_to_values): No longer static. Allow MEMs
|
||||
that have no value and autoincs to be handled by generating a new
|
||||
dummy value.
|
||||
|
||||
2001-08-08 Graham Stott <grahams@redhat.com>
|
||||
|
||||
* final.c (shorten_branches): Update the INSN_ADDRESSES of insns
|
||||
|
18
gcc/cselib.c
18
gcc/cselib.c
@ -60,7 +60,6 @@ static cselib_val *new_cselib_val PARAMS ((unsigned int,
|
||||
static void add_mem_for_addr PARAMS ((cselib_val *, cselib_val *,
|
||||
rtx));
|
||||
static cselib_val *cselib_lookup_mem PARAMS ((rtx, int));
|
||||
static rtx cselib_subst_to_values PARAMS ((rtx));
|
||||
static void cselib_invalidate_regno PARAMS ((unsigned int,
|
||||
enum machine_mode));
|
||||
static int cselib_mem_conflict_p PARAMS ((rtx, rtx));
|
||||
@ -765,7 +764,7 @@ cselib_lookup_mem (x, create)
|
||||
X isn't actually modified; if modifications are needed, new rtl is
|
||||
allocated. However, the return value can share rtl with X. */
|
||||
|
||||
static rtx
|
||||
rtx
|
||||
cselib_subst_to_values (x)
|
||||
rtx x;
|
||||
{
|
||||
@ -788,7 +787,11 @@ cselib_subst_to_values (x)
|
||||
case MEM:
|
||||
e = cselib_lookup_mem (x, 0);
|
||||
if (! e)
|
||||
abort ();
|
||||
{
|
||||
/* This happens for autoincrements. Assign a value that doesn't
|
||||
match any other. */
|
||||
e = new_cselib_val (++next_unknown_value, GET_MODE (x));
|
||||
}
|
||||
return e->u.val_rtx;
|
||||
|
||||
/* CONST_DOUBLEs must be special-cased here so that we won't try to
|
||||
@ -797,6 +800,15 @@ cselib_subst_to_values (x)
|
||||
case CONST_INT:
|
||||
return x;
|
||||
|
||||
case POST_INC:
|
||||
case PRE_INC:
|
||||
case POST_DEC:
|
||||
case PRE_DEC:
|
||||
case POST_MODIFY:
|
||||
case PRE_MODIFY:
|
||||
e = new_cselib_val (++next_unknown_value, GET_MODE (x));
|
||||
return e->u.val_rtx;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
@ -65,3 +65,4 @@ extern void cselib_finish PARAMS ((void));
|
||||
extern void cselib_process_insn PARAMS ((rtx));
|
||||
extern int rtx_equal_for_cselib_p PARAMS ((rtx, rtx));
|
||||
extern int references_value_p PARAMS ((rtx, int));
|
||||
extern rtx cselib_subst_to_values PARAMS ((rtx));
|
||||
|
Loading…
Reference in New Issue
Block a user