diff options
author | Richard Sandiford <richard.sandiford@arm.com> | 2014-10-27 18:41:09 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2014-10-27 18:41:09 +0000 |
commit | 4dba3553998e554e7e4775540f9c77c9a3c21246 (patch) | |
tree | 17288d4c10fb41203b6744be437685d24ac99507 /gcc | |
parent | f9a20af005da47acab478766857fe8419fc06d09 (diff) | |
download | gcc-4dba3553998e554e7e4775540f9c77c9a3c21246.zip gcc-4dba3553998e554e7e4775540f9c77c9a3c21246.tar.gz gcc-4dba3553998e554e7e4775540f9c77c9a3c21246.tar.bz2 |
alpha-protos.h (alpha_find_lo_sum_using_gp): Return a bool.
gcc/
* config/alpha/alpha-protos.h (alpha_find_lo_sum_using_gp): Return
a bool.
* config/alpha/alpha.c (find_lo_sum_using_gp): Delete.
(alpha_find_lo_sum_using_gp): Use FOR_EACH_SUBRTX. Return a bool.
From-SVN: r216756
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/config/alpha/alpha-protos.h | 2 | ||||
-rw-r--r-- | gcc/config/alpha/alpha.c | 17 |
3 files changed, 17 insertions, 9 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bee2fba..972ed0a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,12 @@ 2014-10-27 Richard Sandiford <richard.sandiford@arm.com> + * config/alpha/alpha-protos.h (alpha_find_lo_sum_using_gp): Return + a bool. + * config/alpha/alpha.c (find_lo_sum_using_gp): Delete. + (alpha_find_lo_sum_using_gp): Use FOR_EACH_SUBRTX. Return a bool. + +2014-10-27 Richard Sandiford <richard.sandiford@arm.com> + * config/alpha/alpha.c (alpha_set_memflags_1): Delete. (alpha_set_memflags): Use FOR_EACH_SUBRTX_VAR. diff --git a/gcc/config/alpha/alpha-protos.h b/gcc/config/alpha/alpha-protos.h index 753a762a..22c082d 100644 --- a/gcc/config/alpha/alpha-protos.h +++ b/gcc/config/alpha/alpha-protos.h @@ -75,7 +75,7 @@ extern rtx function_value (const_tree, const_tree, enum machine_mode); extern void alpha_start_function (FILE *, const char *, tree); extern void alpha_end_function (FILE *, const char *, tree); -extern int alpha_find_lo_sum_using_gp (rtx); +extern bool alpha_find_lo_sum_using_gp (rtx); #ifdef REAL_VALUE_TYPE extern int check_float_value (enum machine_mode, REAL_VALUE_TYPE *, int); diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c index 09ab4ba..966999c 100644 --- a/gcc/config/alpha/alpha.c +++ b/gcc/config/alpha/alpha.c @@ -7562,16 +7562,17 @@ vms_output_aligned_decl_common(FILE *file, tree decl, const char *name, #endif -static int -find_lo_sum_using_gp (rtx *px, void *data ATTRIBUTE_UNUSED) -{ - return GET_CODE (*px) == LO_SUM && XEXP (*px, 0) == pic_offset_table_rtx; -} - -int +bool alpha_find_lo_sum_using_gp (rtx insn) { - return for_each_rtx (&PATTERN (insn), find_lo_sum_using_gp, NULL) > 0; + subrtx_iterator::array_type array; + FOR_EACH_SUBRTX (iter, array, PATTERN (insn), NONCONST) + { + const_rtx x = *iter; + if (GET_CODE (x) == LO_SUM && XEXP (x, 0) == pic_offset_table_rtx) + return true; + } + return false; } static int |