aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorDavid S. Miller <davem@redhat.com>2002-05-17 10:01:06 -0700
committerDavid S. Miller <davem@gcc.gnu.org>2002-05-17 10:01:06 -0700
commit5ca9299f10baafa4f376871390638fd5dcf42cde (patch)
tree37c3b6b43a5c89da93d5a9a3727f36603d99b384 /gcc
parent508bc1723a870c18046ac2cd68f9d37be71eebdf (diff)
downloadgcc-5ca9299f10baafa4f376871390638fd5dcf42cde.zip
gcc-5ca9299f10baafa4f376871390638fd5dcf42cde.tar.gz
gcc-5ca9299f10baafa4f376871390638fd5dcf42cde.tar.bz2
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog9
-rw-r--r--gcc/local-alloc.c8
2 files changed, 13 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 9140a29..51ac122 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,12 @@
+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>
* config/sparc/sparc.c (sparc_aout_select_section): Fixed typo.
diff --git a/gcc/local-alloc.c b/gcc/local-alloc.c
index cd216f9..d4aa8bb 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). */
@@ -1005,7 +1005,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. */
@@ -1087,7 +1087,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;