[41/50] rtlanal.c:tls_referenced_p
diff mbox

Message ID 871tsx7idw.fsf@googlemail.com
State New
Headers show

Commit Message

Richard Sandiford Aug. 3, 2014, 2:33 p.m. UTC
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.

Comments

Jeff Law Aug. 5, 2014, 9:19 p.m. UTC | #1
On 08/03/14 08:33, Richard Sandiford wrote:
> 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.
OK.
Jeff

Patch
diff mbox

Index: gcc/rtl.h
===================================================================
--- gcc/rtl.h	2014-08-03 11:25:31.324165866 +0100
+++ gcc/rtl.h	2014-08-03 11:25:31.649169079 +0100
@@ -2284,7 +2284,7 @@  extern void replace_label (rtx *, rtx, r
 extern bool rtx_referenced_p (const_rtx, const_rtx);
 extern bool tablejump_p (const_rtx, rtx *, rtx *);
 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: gcc/rtlanal.c
===================================================================
--- gcc/rtlanal.c	2014-08-03 11:25:31.325165876 +0100
+++ gcc/rtlanal.c	2014-08-03 11:25:31.650169089 +0100
@@ -6048,21 +6048,17 @@  get_index_code (const struct address_inf
   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;
 }