From: David S. Miller Date: Fri, 17 May 2002 16:58:03 +0000 (-0700) Subject: PR c/6689, PR optimization/6615 X-Git-Tag: releases/gcc-3.1.1~339 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4e4506a9b4510176a657f3f77afabccd439aa18c;p=thirdparty%2Fgcc.git PR c/6689, PR optimization/6615 2002-05-17 David S. Miller 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: r53560 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bc680343ffb1..b57b910e271f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2002-05-17 David S. Miller + + 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 Kurt Wall * doc/install.texi (Testing): Mention two common DejaGnu warnings diff --git a/gcc/local-alloc.c b/gcc/local-alloc.c index c11398f84369..05d0bde6c893 100644 --- a/gcc/local-alloc.c +++ b/gcc/local-alloc.c @@ -245,7 +245,7 @@ static rtx this_insn; struct equivalence { /* Set when an attempt should be made to replace a register - with the associated src entry. */ + with the associated src_p entry. */ char replace; @@ -255,7 +255,7 @@ struct equivalence rtx replacement; - rtx src; + rtx *src_p; /* Loop depth is used to recognize equivalences which appear to be present within the same loop (or in an inner loop). */ @@ -1004,7 +1004,7 @@ update_equiv_regs () recorded_label_ref = 1; 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; /* Don't mess with things live during setjmp. */ @@ -1086,7 +1086,7 @@ update_equiv_regs () if (asm_noperands (PATTERN (equiv_insn)) < 0 && validate_replace_rtx (regno_reg_rtx[regno], - reg_equiv[regno].src, insn)) + *(reg_equiv[regno].src_p), insn)) { rtx equiv_link; rtx last_link;