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:
parent
04e3ec7803
commit
5a97f7c2d7
|
@ -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>
|
2000-03-28 Neil Booth <NeilB@earthling.net>
|
||||||
|
|
||||||
* (cpplex.c) _cpp_read_and_prescan. Mark end of input buffer with
|
* (cpplex.c) _cpp_read_and_prescan. Mark end of input buffer with
|
||||||
|
|
|
@ -2088,7 +2088,7 @@ stable_and_no_regs_but_for_p (x, src, dst)
|
||||||
struct csa_memlist
|
struct csa_memlist
|
||||||
{
|
{
|
||||||
HOST_WIDE_INT sp_offset;
|
HOST_WIDE_INT sp_offset;
|
||||||
rtx insn, mem;
|
rtx insn, *mem;
|
||||||
struct csa_memlist *next;
|
struct csa_memlist *next;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -2096,7 +2096,7 @@ static int stack_memref_p PARAMS ((rtx));
|
||||||
static rtx single_set_for_csa PARAMS ((rtx));
|
static rtx single_set_for_csa PARAMS ((rtx));
|
||||||
static void free_csa_memlist PARAMS ((struct csa_memlist *));
|
static void free_csa_memlist PARAMS ((struct csa_memlist *));
|
||||||
static struct csa_memlist *record_one_stack_memref
|
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
|
static int try_apply_stack_adjustment
|
||||||
PARAMS ((rtx, struct csa_memlist *, HOST_WIDE_INT, HOST_WIDE_INT));
|
PARAMS ((rtx, struct csa_memlist *, HOST_WIDE_INT, HOST_WIDE_INT));
|
||||||
static void combine_stack_adjustments_for_block PARAMS ((basic_block));
|
static void combine_stack_adjustments_for_block PARAMS ((basic_block));
|
||||||
|
@ -2188,17 +2188,17 @@ free_csa_memlist (memlist)
|
||||||
|
|
||||||
static struct csa_memlist *
|
static struct csa_memlist *
|
||||||
record_one_stack_memref (insn, mem, next_memlist)
|
record_one_stack_memref (insn, mem, next_memlist)
|
||||||
rtx insn, mem;
|
rtx insn, *mem;
|
||||||
struct csa_memlist *next_memlist;
|
struct csa_memlist *next_memlist;
|
||||||
{
|
{
|
||||||
struct csa_memlist *ml;
|
struct csa_memlist *ml;
|
||||||
|
|
||||||
ml = (struct csa_memlist *) xmalloc (sizeof (*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;
|
ml->sp_offset = 0;
|
||||||
else
|
else
|
||||||
ml->sp_offset = INTVAL (XEXP (XEXP (mem, 0), 1));
|
ml->sp_offset = INTVAL (XEXP (XEXP (*mem, 0), 1));
|
||||||
|
|
||||||
ml->insn = insn;
|
ml->insn = insn;
|
||||||
ml->mem = mem;
|
ml->mem = mem;
|
||||||
|
@ -2241,8 +2241,9 @@ try_apply_stack_adjustment (insn, memlist, new_adjust, delta)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
validate_change (ml->insn, &XEXP (ml->mem, 0),
|
validate_change (ml->insn, ml->mem,
|
||||||
plus_constant (stack_pointer_rtx, c), 1);
|
gen_rtx_MEM (GET_MODE (*ml->mem),
|
||||||
|
plus_constant (stack_pointer_rtx, c)), 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (apply_change_group ())
|
if (apply_change_group ())
|
||||||
|
@ -2340,7 +2341,7 @@ combine_stack_adjustments_for_block (bb)
|
||||||
if (last_sp_set && stack_memref_p (src)
|
if (last_sp_set && stack_memref_p (src)
|
||||||
&& ! reg_mentioned_p (stack_pointer_rtx, dest))
|
&& ! 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;
|
goto processed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2348,7 +2349,8 @@ combine_stack_adjustments_for_block (bb)
|
||||||
if (last_sp_set && stack_memref_p (dest)
|
if (last_sp_set && stack_memref_p (dest)
|
||||||
&& ! reg_mentioned_p (stack_pointer_rtx, src))
|
&& ! 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;
|
goto processed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue