]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Use eliminate_regs when looking for pseudo's equivalent memory location in an insn.
authorBernd Schmidt <bernds@redhat.com>
Fri, 30 Mar 2001 13:13:16 +0000 (13:13 +0000)
committerBernd Schmidt <bernds@gcc.gnu.org>
Fri, 30 Mar 2001 13:13:16 +0000 (13:13 +0000)
From-SVN: r40964

gcc/ChangeLog
gcc/reload1.c

index 8639d907cfbe6f3adf9043e537bc776b4fff10cb..f899c1c3e9eaae1bc8072fa332853d19de29b1ba 100644 (file)
@@ -2,6 +2,9 @@
 
        * jump.c (delete_barrier_successors): Fix error in last change.
 
+       * reload1.c (delete_output_reload): Call eliminate_regs on substed.
+       (reload_as_needed): Call update_eliminable_offsets a bit later.
+
 2001-03-28  Bernd Schmidt  <bernds@redhat.com>
 
        * flow.c (propagate_block): When trying to delete a case vector, cope
index e95ff5e7ef5521ed3229d0424d24cad7e0a00590..f8d87517a1b619ec365acfa31be327f8a8df0951 100644 (file)
@@ -4278,9 +4278,6 @@ reload_as_needed (live_known)
                            spill_reg_order);
            }
 
-         if (num_eliminable && chain->need_elim)
-           update_eliminable_offsets ();
-
          if (n_reloads > 0)
            {
              rtx next = NEXT_INSN (insn);
@@ -4327,6 +4324,10 @@ reload_as_needed (live_known)
                      NOTE_LINE_NUMBER (p) = NOTE_INSN_DELETED;
                    }
            }
+
+         if (num_eliminable && chain->need_elim)
+           update_eliminable_offsets ();
+
          /* Any previously reloaded spilled pseudo reg, stored in this insn,
             is no longer validly lying around to save a future reload.
             Note that this does not detect pseudos that were reloaded
@@ -8071,7 +8072,9 @@ delete_output_reload (insn, j, last_reload_reg)
     }
   n_occurrences = count_occurrences (PATTERN (insn), reg);
   if (substed)
-    n_occurrences += count_occurrences (PATTERN (insn), substed);
+    n_occurrences += count_occurrences (PATTERN (insn),
+                                       eliminate_regs (substed, 0,
+                                                       NULL_RTX));
   if (n_occurrences > n_inherited)
     return;