regmove.c (struct csa_memlist): Make mem field rtx *.

* regmove.c (struct csa_memlist): Make mem field rtx *.
        (record_one_stack_ref): Accept rtx * instead of rtx as parameter.
        (try_apply_stack_adjustment): Replace whole MEM rtx.
        (combine_stack_adjustments_for_block): Update calls
        to record_one_stack_ref.

From-SVN: r32782
This commit is contained in:
Jan Hubicka 2000-03-28 17:41:40 +02:00 committed by Jeff Law
parent 04e3ec7803
commit 5a97f7c2d7
2 changed files with 19 additions and 9 deletions

View File

@ -1,3 +1,11 @@
Tue Mar 28 08:29:46 2000 Jan Hubicka <jh@suse.cz>
* regmove.c (struct csa_memlist): Make mem field rtx *.
(record_one_stack_ref): Accept rtx * instead of rtx as parameter.
(try_apply_stack_adjustment): Replace whole MEM rtx.
(combine_stack_adjustments_for_block): Update calls
to record_one_stack_ref.
2000-03-28 Neil Booth <NeilB@earthling.net>
* (cpplex.c) _cpp_read_and_prescan. Mark end of input buffer with

View File

@ -2088,7 +2088,7 @@ stable_and_no_regs_but_for_p (x, src, dst)
struct csa_memlist
{
HOST_WIDE_INT sp_offset;
rtx insn, mem;
rtx insn, *mem;
struct csa_memlist *next;
};
@ -2096,7 +2096,7 @@ static int stack_memref_p PARAMS ((rtx));
static rtx single_set_for_csa PARAMS ((rtx));
static void free_csa_memlist PARAMS ((struct csa_memlist *));
static struct csa_memlist *record_one_stack_memref
PARAMS ((rtx, rtx, struct csa_memlist *));
PARAMS ((rtx, rtx *, struct csa_memlist *));
static int try_apply_stack_adjustment
PARAMS ((rtx, struct csa_memlist *, HOST_WIDE_INT, HOST_WIDE_INT));
static void combine_stack_adjustments_for_block PARAMS ((basic_block));
@ -2188,17 +2188,17 @@ free_csa_memlist (memlist)
static struct csa_memlist *
record_one_stack_memref (insn, mem, next_memlist)
rtx insn, mem;
rtx insn, *mem;
struct csa_memlist *next_memlist;
{
struct csa_memlist *ml;
ml = (struct csa_memlist *) xmalloc (sizeof (*ml));
if (XEXP (mem, 0) == stack_pointer_rtx)
if (XEXP (*mem, 0) == stack_pointer_rtx)
ml->sp_offset = 0;
else
ml->sp_offset = INTVAL (XEXP (XEXP (mem, 0), 1));
ml->sp_offset = INTVAL (XEXP (XEXP (*mem, 0), 1));
ml->insn = insn;
ml->mem = mem;
@ -2241,8 +2241,9 @@ try_apply_stack_adjustment (insn, memlist, new_adjust, delta)
return 0;
}
validate_change (ml->insn, &XEXP (ml->mem, 0),
plus_constant (stack_pointer_rtx, c), 1);
validate_change (ml->insn, ml->mem,
gen_rtx_MEM (GET_MODE (*ml->mem),
plus_constant (stack_pointer_rtx, c)), 1);
}
if (apply_change_group ())
@ -2340,7 +2341,7 @@ combine_stack_adjustments_for_block (bb)
if (last_sp_set && stack_memref_p (src)
&& ! reg_mentioned_p (stack_pointer_rtx, dest))
{
memlist = record_one_stack_memref (insn, src, memlist);
memlist = record_one_stack_memref (insn, &SET_SRC (set), memlist);
goto processed;
}
@ -2348,7 +2349,8 @@ combine_stack_adjustments_for_block (bb)
if (last_sp_set && stack_memref_p (dest)
&& ! reg_mentioned_p (stack_pointer_rtx, src))
{
memlist = record_one_stack_memref (insn, dest, memlist);
memlist = record_one_stack_memref (insn, &SET_DEST (set),
memlist);
goto processed;
}