OSDN Git Service

* reload.c (find_reloads_toplev, find_reloads_address,
authorbernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 11 Apr 2007 19:44:07 +0000 (19:44 +0000)
committerbernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 11 Apr 2007 19:44:07 +0000 (19:44 +0000)
find_reloads_address_1, find_reloads_subreg_address): Use rtx_equal_p,
not a pointer equality test, to decide if we need to call
push_reg_equiv_alt_mem.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@123724 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/reload.c

index 6f75721..9889ae1 100644 (file)
@@ -1,3 +1,10 @@
+2007-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
+
+       * reload.c (find_reloads_toplev, find_reloads_address,
+       find_reloads_address_1, find_reloads_subreg_address): Use rtx_equal_p,
+       not a pointer equality test, to decide if we need to call
+       push_reg_equiv_alt_mem.
+
 2007-04-11  Sebastian Pop  <sebastian.pop@inria.fr>
 
        * tree-data-ref.c (affine_function_zero_p, constant_access_functions,
index c297494..aa22671 100644 (file)
@@ -4570,7 +4570,7 @@ find_reloads_toplev (rtx x, int opnum, enum reload_type type,
              x = mem;
              i = find_reloads_address (GET_MODE (x), &x, XEXP (x, 0), &XEXP (x, 0),
                                        opnum, type, ind_levels, insn);
-             if (x != mem)
+             if (!rtx_equal_p (x, mem))
                push_reg_equiv_alt_mem (regno, x);
              if (address_reloaded)
                *address_reloaded = i;
@@ -4785,7 +4785,7 @@ find_reloads_address (enum machine_mode mode, rtx *memrefloc, rtx ad,
                  find_reloads_address (GET_MODE (tem), &tem, XEXP (tem, 0),
                                        &XEXP (tem, 0), opnum,
                                        ADDR_TYPE (type), ind_levels, insn);
-                 if (tem != orig)
+                 if (!rtx_equal_p (tem, orig))
                    push_reg_equiv_alt_mem (regno, tem);
                }
              /* We can avoid a reload if the register's equivalent memory
@@ -5589,7 +5589,7 @@ find_reloads_address_1 (enum machine_mode mode, rtx x, int context,
                                      RELOAD_OTHER,
                                      ind_levels, insn);
 
-               if (tem != orig)
+               if (!rtx_equal_p (tem, orig))
                  push_reg_equiv_alt_mem (regno, tem);
 
                /* Then reload the memory location into a base
@@ -5656,7 +5656,7 @@ find_reloads_address_1 (enum machine_mode mode, rtx x, int context,
                  find_reloads_address (GET_MODE (tem), &tem, XEXP (tem, 0),
                                        &XEXP (tem, 0), opnum, type,
                                        ind_levels, insn);
-                 if (tem != orig)
+                 if (!rtx_equal_p (tem, orig))
                    push_reg_equiv_alt_mem (regno, tem);
                  /* Put this inside a new increment-expression.  */
                  x = gen_rtx_fmt_e (GET_CODE (x), GET_MODE (x), tem);
@@ -5811,7 +5811,7 @@ find_reloads_address_1 (enum machine_mode mode, rtx x, int context,
                find_reloads_address (GET_MODE (x), &x, XEXP (x, 0),
                                      &XEXP (x, 0), opnum, ADDR_TYPE (type),
                                      ind_levels, insn);
-               if (x != tem)
+               if (!rtx_equal_p (x, tem))
                  push_reg_equiv_alt_mem (regno, x);
              }
          }
@@ -6037,7 +6037,7 @@ find_reloads_subreg_address (rtx x, int force_replace, int opnum,
                                    &XEXP (tem, 0), opnum, type,
                                    ind_levels, insn);
              /* ??? Do we need to handle nonzero offsets somehow?  */
-             if (!offset && tem != orig)
+             if (!offset && !rtx_equal_p (tem, orig))
                push_reg_equiv_alt_mem (regno, tem);
 
              /* If this is not a toplevel operand, find_reloads doesn't see