arm.c: Include rtl-iter.h.

gcc/
	* config/arm/arm.c: Include rtl-iter.h.
	(arm_tls_referenced_p_1): Delete.
	(arm_tls_referenced_p): Use FOR_EACH_SUBRTX.

From-SVN: r217254
This commit is contained in:
Richard Sandiford 2014-11-08 11:25:17 +00:00 committed by Richard Sandiford
parent d9aa82f10c
commit 8ee963a298
2 changed files with 20 additions and 20 deletions

View File

@ -1,3 +1,9 @@
2014-11-08 Richard Sandiford <richard.sandiford@arm.com>
* config/arm/arm.c: Include rtl-iter.h.
(arm_tls_referenced_p_1): Delete.
(arm_tls_referenced_p): Use FOR_EACH_SUBRTX.
2014-11-08 Richard Sandiford <richard.sandiford@arm.com>
* config/arm/aarch-common.c: Include rtl-iter.h.

View File

@ -82,6 +82,7 @@
#include "gimple-expr.h"
#include "builtins.h"
#include "tm-constrs.h"
#include "rtl-iter.h"
/* Forward definitions of types. */
typedef struct minipool_node Mnode;
@ -8110,25 +8111,6 @@ thumb_legitimize_reload_address (rtx *x_p,
return NULL;
}
/* Test for various thread-local symbols. */
/* Helper for arm_tls_referenced_p. */
static int
arm_tls_operand_p_1 (rtx *x, void *data ATTRIBUTE_UNUSED)
{
if (GET_CODE (*x) == SYMBOL_REF)
return SYMBOL_REF_TLS_MODEL (*x) != 0;
/* Don't recurse into UNSPEC_TLS looking for TLS symbols; these are
TLS offsets, not real symbol references. */
if (GET_CODE (*x) == UNSPEC
&& XINT (*x, 1) == UNSPEC_TLS)
return -1;
return 0;
}
/* Return TRUE if X contains any TLS symbol references. */
bool
@ -8137,7 +8119,19 @@ arm_tls_referenced_p (rtx x)
if (! TARGET_HAVE_TLS)
return false;
return for_each_rtx (&x, arm_tls_operand_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;
/* Don't recurse into UNSPEC_TLS looking for TLS symbols; these are
TLS offsets, not real symbol references. */
if (GET_CODE (x) == UNSPEC && XINT (x, 1) == UNSPEC_TLS)
iter.skip_subrtxes ();
}
return false;
}
/* Implement TARGET_LEGITIMATE_CONSTANT_P.