xtensa.c: Include rtl-iter.h.
gcc/ * config/xtensa/xtensa.c: Include rtl-iter.h. (xtensa_tls_referenced_p_1): Delete. (xtensa_tls_referenced_p): Use FOR_EACH_SUBRTX. From-SVN: r216703
This commit is contained in:
parent
2caafc4476
commit
2f36a994a6
|
@ -1,3 +1,9 @@
|
|||
2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
|
||||
|
||||
* config/xtensa/xtensa.c: Include rtl-iter.h.
|
||||
(xtensa_tls_referenced_p_1): Delete.
|
||||
(xtensa_tls_referenced_p): Use FOR_EACH_SUBRTX.
|
||||
|
||||
2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
|
||||
|
||||
* config/sh/sh.c (sh_contains_memref_p_1): Delete.
|
||||
|
|
|
@ -66,6 +66,7 @@ along with GCC; see the file COPYING3. If not see
|
|||
#include "gimplify.h"
|
||||
#include "df.h"
|
||||
#include "builtins.h"
|
||||
#include "rtl-iter.h"
|
||||
|
||||
|
||||
/* Enumeration for all of the relational tests, so that we can build
|
||||
|
@ -1986,34 +1987,6 @@ xtensa_mode_dependent_address_p (const_rtx addr,
|
|||
return constantpool_address_p (addr);
|
||||
}
|
||||
|
||||
/* Helper for xtensa_tls_referenced_p. */
|
||||
|
||||
static int
|
||||
xtensa_tls_referenced_p_1 (rtx *x, void *data ATTRIBUTE_UNUSED)
|
||||
{
|
||||
if (GET_CODE (*x) == SYMBOL_REF)
|
||||
return SYMBOL_REF_TLS_MODEL (*x) != 0;
|
||||
|
||||
/* Ignore TLS references that have already been legitimized. */
|
||||
if (GET_CODE (*x) == UNSPEC)
|
||||
{
|
||||
switch (XINT (*x, 1))
|
||||
{
|
||||
case UNSPEC_TPOFF:
|
||||
case UNSPEC_DTPOFF:
|
||||
case UNSPEC_TLS_FUNC:
|
||||
case UNSPEC_TLS_ARG:
|
||||
case UNSPEC_TLS_CALL:
|
||||
return -1;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/* Return TRUE if X contains any TLS symbol references. */
|
||||
|
||||
bool
|
||||
|
@ -2022,7 +1995,29 @@ xtensa_tls_referenced_p (rtx x)
|
|||
if (! TARGET_HAVE_TLS)
|
||||
return false;
|
||||
|
||||
return for_each_rtx (&x, xtensa_tls_referenced_p_1, NULL);
|
||||
subrtx_iterator::array_type array;
|
||||
FOR_EACH_SUBRTX (iter, array, x, ALL)
|
||||
{
|
||||
const_rtx x = *iter;
|
||||
if (GET_CODE (x) == SYMBOL_REF && SYMBOL_REF_TLS_MODEL (x) != 0)
|
||||
return true;
|
||||
|
||||
/* Ignore TLS references that have already been legitimized. */
|
||||
if (GET_CODE (x) == UNSPEC)
|
||||
switch (XINT (x, 1))
|
||||
{
|
||||
case UNSPEC_TPOFF:
|
||||
case UNSPEC_DTPOFF:
|
||||
case UNSPEC_TLS_FUNC:
|
||||
case UNSPEC_TLS_ARG:
|
||||
case UNSPEC_TLS_CALL:
|
||||
iter.skip_subrtxes ();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue