tls_referenced_p shouldn't skip subrtxes of CONSTs, since it's supposed
to be looking at all SYMBOL_REFs in the pattern.  The patched version
was what I'd meant to write originally, sorry that it slipped though.

Tested on powerpc64-linux-gnu and applied as obvious.

Thanks,
Richard


gcc/
        PR middle-end/63171
        * rtlanal.c (tls_referenced_p): Don't skip constant subrtxes.

Index: gcc/rtlanal.c
===================================================================
--- gcc/rtlanal.c       2014-08-30 15:53:03.372153860 +0100
+++ gcc/rtlanal.c       2014-09-06 10:59:18.545268494 +0100
@@ -6073,7 +6073,7 @@ tls_referenced_p (const_rtx x)
     return false;
 
   subrtx_iterator::array_type array;
-  FOR_EACH_SUBRTX (iter, array, x, NONCONST)
+  FOR_EACH_SUBRTX (iter, array, x, ALL)
     if (GET_CODE (*iter) == SYMBOL_REF && SYMBOL_REF_TLS_MODEL (*iter) != 0)
       return true;
   return false;

Reply via email to