mips.c (mips_record_lo_sum): Replace with...
authorRichard Sandiford <richard.sandiford@arm.com>
Sun, 26 Oct 2014 10:41:53 +0000 (10:41 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Sun, 26 Oct 2014 10:41:53 +0000 (10:41 +0000)
gcc/
* config/mips/mips.c (mips_record_lo_sum): Replace with...
(mips_record_lo_sums): ...this new function.
(mips_reorg_process_insns): Update accordingly.

From-SVN: r216714

gcc/ChangeLog
gcc/config/mips/mips.c

index 059db3081aef0cb075553c56c8c27a863c7d26b6..c10b1ee48b128170bb83b54b9bf788a4e8298f14 100644 (file)
@@ -1,3 +1,9 @@
+2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * config/mips/mips.c (mips_record_lo_sum): Replace with...
+       (mips_record_lo_sums): ...this new function.
+       (mips_reorg_process_insns): Update accordingly.
+
 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
 
        * config/mips/mips.c (mips_sim_insn): Update comment.
index fe1f5f5f220450cbd84008a6d567ff7f065ad9bc..e0d701b532b5c11b021759cdb0c59ed72abff79d 100644 (file)
@@ -16040,16 +16040,15 @@ mips_lo_sum_offset_lookup (mips_offset_table *htab, rtx x,
   return INTVAL (offset) <= entry->offset;
 }
 
-/* A for_each_rtx callback for which DATA is a mips_lo_sum_offset hash table.
-   Record every LO_SUM in *LOC.  */
+/* Search X for LO_SUMs and record them in HTAB.  */
 
-static int
-mips_record_lo_sum (rtx *loc, void *data)
+static void
+mips_record_lo_sums (const_rtx x, mips_offset_table *htab)
 {
-  if (GET_CODE (*loc) == LO_SUM)
-    mips_lo_sum_offset_lookup ((mips_offset_table*) data,
-                              XEXP (*loc, 1), INSERT);
-  return 0;
+  subrtx_iterator::array_type array;
+  FOR_EACH_SUBRTX (iter, array, x, NONCONST)
+    if (GET_CODE (*iter) == LO_SUM)
+      mips_lo_sum_offset_lookup (htab, XEXP (*iter, 1), INSERT);
 }
 
 /* Return true if INSN is a SET of an orphaned high-part relocation.
@@ -16224,10 +16223,10 @@ mips_reorg_process_insns (void)
              get_referenced_operands (string, used, noperands);
              for (int i = 0; i < noperands; ++i)
                if (used[i])
-                 for_each_rtx (&ops[i], mips_record_lo_sum, &htab);
+                 mips_record_lo_sums (ops[i], &htab);
            }
          else
-           for_each_rtx (&PATTERN (subinsn), mips_record_lo_sum, &htab);
+           mips_record_lo_sums (PATTERN (subinsn), &htab);
        }
 
   last_insn = 0;