rtl.h (tls_referenced_p): Take a const_rtx rather than an rtx.
authorRichard Sandiford <rdsandiford@googlemail.com>
Thu, 28 Aug 2014 06:24:40 +0000 (06:24 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Thu, 28 Aug 2014 06:24:40 +0000 (06:24 +0000)
gcc/
* rtl.h (tls_referenced_p): Take a const_rtx rather than an rtx.
* rtlanal.c (tls_referenced_p_1): Delete.
(tls_referenced_p): Take a const_rtx rather than an rtx.
Use FOR_EACH_SUBRTX rather than for_each_rtx.

From-SVN: r214658

gcc/ChangeLog
gcc/rtl.h
gcc/rtlanal.c

index 00e4bcecb4a0dcac6aaa8c9a2da03a180ce4c3a6..20915cb115c716fd0c4b40793978f442126654a4 100644 (file)
@@ -1,3 +1,10 @@
+2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * rtl.h (tls_referenced_p): Take a const_rtx rather than an rtx.
+       * rtlanal.c (tls_referenced_p_1): Delete.
+       (tls_referenced_p): Take a const_rtx rather than an rtx.
+       Use FOR_EACH_SUBRTX rather than for_each_rtx.
+
 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
 
        * rtl.h (for_each_inc_dec_fn): Remove special case for -1.
index b18f2e1583555321297d18cb1d28969055c73cd7..0b617a32d087b8d4a2b6260d6b344d1095c16fbb 100644 (file)
--- a/gcc/rtl.h
+++ b/gcc/rtl.h
@@ -2797,7 +2797,7 @@ extern void replace_label_in_insn (rtx_insn *, rtx, rtx, bool);
 extern bool rtx_referenced_p (const_rtx, const_rtx);
 extern bool tablejump_p (const_rtx, rtx *, rtx_jump_table_data **);
 extern int computed_jump_p (const_rtx);
-extern bool tls_referenced_p (rtx);
+extern bool tls_referenced_p (const_rtx);
 
 typedef int (*rtx_function) (rtx *, void *);
 extern int for_each_rtx (rtx *, rtx_function, void *);
index 3e3af7285d0ecba33a7a2206af57eb4e163cb8aa..ceaa7ab7a747aebd71595e9da48b8f08db7a0275 100644 (file)
@@ -6075,21 +6075,17 @@ get_index_code (const struct address_info *info)
   return SCRATCH;
 }
 
-/* Return 1 if *X is a thread-local symbol.  */
-
-static int
-tls_referenced_p_1 (rtx *x, void *)
-{
-  return GET_CODE (*x) == SYMBOL_REF && SYMBOL_REF_TLS_MODEL (*x) != 0;
-}
-
 /* Return true if X contains a thread-local symbol.  */
 
 bool
-tls_referenced_p (rtx x)
+tls_referenced_p (const_rtx x)
 {
   if (!targetm.have_tls)
     return false;
 
-  return for_each_rtx (&x, &tls_referenced_p_1, 0);
+  subrtx_iterator::array_type array;
+  FOR_EACH_SUBRTX (iter, array, x, NONCONST)
+    if (GET_CODE (*iter) == SYMBOL_REF && SYMBOL_REF_TLS_MODEL (*iter) != 0)
+      return true;
+  return false;
 }