From f0ac02c03f1ba793022de783a99159194a0be354 Mon Sep 17 00:00:00 2001 From: Richard Sandiford Date: Sun, 26 Oct 2014 10:40:37 +0000 Subject: [PATCH] mep.c: Include rtl-iter.h. gcc/ * config/mep/mep.c: Include rtl-iter.h. (global_reg_mentioned_p_1): Take a const_rtx and return a bool. (xtensa_tls_referenced_p): Return a bool. Use FOR_EACH_SUBRTX. From-SVN: r216704 --- gcc/ChangeLog | 6 ++++++ gcc/config/mep/mep.c | 42 +++++++++++++++++------------------------- 2 files changed, 23 insertions(+), 25 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 23405db9177..f46de9a0406 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2014-10-26 Richard Sandiford + + * config/mep/mep.c: Include rtl-iter.h. + (global_reg_mentioned_p_1): Take a const_rtx and return a bool. + (xtensa_tls_referenced_p): Return a bool. Use FOR_EACH_SUBRTX. + 2014-10-26 Richard Sandiford * config/xtensa/xtensa.c: Include rtl-iter.h. diff --git a/gcc/config/mep/mep.c b/gcc/config/mep/mep.c index 26d3ff90dac..a99f37e762e 100644 --- a/gcc/config/mep/mep.c +++ b/gcc/config/mep/mep.c @@ -69,6 +69,7 @@ along with GCC; see the file COPYING3. If not see #include "opts.h" #include "dumpfile.h" #include "builtins.h" +#include "rtl-iter.h" /* Structure of this file: @@ -6367,14 +6368,10 @@ mep_vector_mode_supported_p (enum machine_mode mode ATTRIBUTE_UNUSED) /* A subroutine of global_reg_mentioned_p, returns 1 if *LOC mentions a global register. */ -static int -global_reg_mentioned_p_1 (rtx *loc, void *data ATTRIBUTE_UNUSED) +static bool +global_reg_mentioned_p_1 (const_rtx x) { int regno; - rtx x = *loc; - - if (! x) - return 0; switch (GET_CODE (x)) { @@ -6383,40 +6380,31 @@ global_reg_mentioned_p_1 (rtx *loc, void *data ATTRIBUTE_UNUSED) { if (REGNO (SUBREG_REG (x)) < FIRST_PSEUDO_REGISTER && global_regs[subreg_regno (x)]) - return 1; - return 0; + return true; + return false; } break; case REG: regno = REGNO (x); if (regno < FIRST_PSEUDO_REGISTER && global_regs[regno]) - return 1; - return 0; - - case SCRATCH: - case PC: - case CC0: - case CONST_INT: - case CONST_DOUBLE: - case CONST: - case LABEL_REF: - return 0; + return true; + return false; case CALL: /* A non-constant call might use a global register. */ - return 1; + return true; default: break; } - return 0; + return false; } /* Returns nonzero if X mentions a global register. */ -static int +static bool global_reg_mentioned_p (rtx x) { if (INSN_P (x)) @@ -6424,16 +6412,20 @@ global_reg_mentioned_p (rtx x) if (CALL_P (x)) { if (! RTL_CONST_OR_PURE_CALL_P (x)) - return 1; + return true; x = CALL_INSN_FUNCTION_USAGE (x); if (x == 0) - return 0; + return false; } else x = PATTERN (x); } - return for_each_rtx (&x, global_reg_mentioned_p_1, NULL); + subrtx_iterator::array_type array; + FOR_EACH_SUBRTX (iter, array, x, NONCONST) + if (global_reg_mentioned_p_1 (*iter)) + return true; + return false; } /* Scheduling hooks for VLIW mode. -- 2.30.2