Commit 5ca9299f by David S. Miller Committed by David S. Miller

PR c/6689, PR optimization/6615

2002-05-17  David S. Miller  <davem@redhat.com>

	PR c/6689, PR optimization/6615
	* local-alloc.c (struct equivalence): Rename 'src' to 'src_p'
	and make it a pointer to rtx.  Update comments.
	(update_equiv_regs): When scanning for equivalences, record
	address of SET_SRC (set) in reg_equiv[].src_p.  Dereference
	it while making the equiv replacements.

From-SVN: r53561
parent 508bc172
2002-05-17 David S. Miller <davem@redhat.com>
PR c/6689, PR optimization/6615
* local-alloc.c (struct equivalence): Rename 'src' to 'src_p'
and make it a pointer to rtx. Update comments.
(update_equiv_regs): When scanning for equivalences, record
address of SET_SRC (set) in reg_equiv[].src_p. Dereference
it while making the equiv replacements.
2002-05-17 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 2002-05-17 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
* config/sparc/sparc.c (sparc_aout_select_section): Fixed typo. * config/sparc/sparc.c (sparc_aout_select_section): Fixed typo.
......
...@@ -245,7 +245,7 @@ static rtx this_insn; ...@@ -245,7 +245,7 @@ static rtx this_insn;
struct equivalence struct equivalence
{ {
/* Set when an attempt should be made to replace a register /* Set when an attempt should be made to replace a register
with the associated src entry. */ with the associated src_p entry. */
char replace; char replace;
...@@ -255,7 +255,7 @@ struct equivalence ...@@ -255,7 +255,7 @@ struct equivalence
rtx replacement; rtx replacement;
rtx src; rtx *src_p;
/* Loop depth is used to recognize equivalences which appear /* Loop depth is used to recognize equivalences which appear
to be present within the same loop (or in an inner loop). */ to be present within the same loop (or in an inner loop). */
...@@ -1005,7 +1005,7 @@ update_equiv_regs () ...@@ -1005,7 +1005,7 @@ update_equiv_regs ()
recorded_label_ref = 1; recorded_label_ref = 1;
reg_equiv[regno].replacement = XEXP (note, 0); reg_equiv[regno].replacement = XEXP (note, 0);
reg_equiv[regno].src = src; reg_equiv[regno].src_p = &SET_SRC (set);
reg_equiv[regno].loop_depth = loop_depth; reg_equiv[regno].loop_depth = loop_depth;
/* Don't mess with things live during setjmp. */ /* Don't mess with things live during setjmp. */
...@@ -1087,7 +1087,7 @@ update_equiv_regs () ...@@ -1087,7 +1087,7 @@ update_equiv_regs ()
if (asm_noperands (PATTERN (equiv_insn)) < 0 if (asm_noperands (PATTERN (equiv_insn)) < 0
&& validate_replace_rtx (regno_reg_rtx[regno], && validate_replace_rtx (regno_reg_rtx[regno],
reg_equiv[regno].src, insn)) *(reg_equiv[regno].src_p), insn))
{ {
rtx equiv_link; rtx equiv_link;
rtx last_link; rtx last_link;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment