alpha-protos.h (some_small_symbolic_operand_int): Take an rtx and return a bool.

gcc/
	* config/alpha/alpha-protos.h (some_small_symbolic_operand_int):
	Take an rtx and return a bool.
	* config/alpha/alpha.c (some_small_symbolic_operand_int): Likewise.
	Use FOR_EACH_SUBRTX_VAR.
	* config/alpha/predicates.md (some_small_symbolic_operand): Update
	accordingly.

From-SVN: r216757
This commit is contained in:
Richard Sandiford 2014-10-27 18:41:17 +00:00 committed by Richard Sandiford
parent 4dba355399
commit dbb838b740
4 changed files with 24 additions and 11 deletions

View File

@ -1,3 +1,12 @@
2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
* config/alpha/alpha-protos.h (some_small_symbolic_operand_int):
Take an rtx and return a bool.
* config/alpha/alpha.c (some_small_symbolic_operand_int): Likewise.
Use FOR_EACH_SUBRTX_VAR.
* config/alpha/predicates.md (some_small_symbolic_operand): Update
accordingly.
2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
* config/alpha/alpha-protos.h (alpha_find_lo_sum_using_gp): Return

View File

@ -112,6 +112,6 @@ extern HOST_WIDE_INT alpha_vms_initial_elimination_offset (unsigned int,
extern rtx unicosmk_add_call_info_word (rtx);
extern int some_small_symbolic_operand_int (rtx *, void *);
extern bool some_small_symbolic_operand_int (rtx);
extern int tls_symbolic_operand_1 (rtx, int, int);
extern rtx resolve_reload_operand (rtx);

View File

@ -1233,16 +1233,20 @@ alpha_function_ok_for_sibcall (tree decl, tree exp ATTRIBUTE_UNUSED)
return decl_has_samegp (decl);
}
int
some_small_symbolic_operand_int (rtx *px, void *data ATTRIBUTE_UNUSED)
bool
some_small_symbolic_operand_int (rtx x)
{
rtx x = *px;
/* Don't re-split. */
if (GET_CODE (x) == LO_SUM)
return -1;
return small_symbolic_operand (x, Pmode) != 0;
subrtx_var_iterator::array_type array;
FOR_EACH_SUBRTX_VAR (iter, array, x, ALL)
{
rtx x = *iter;
/* Don't re-split. */
if (GET_CODE (x) == LO_SUM)
iter.skip_subrtxes ();
else if (small_symbolic_operand (x, Pmode))
return true;
}
return false;
}
rtx

View File

@ -638,7 +638,7 @@
/* Avoid search unless necessary. */
if (!TARGET_EXPLICIT_RELOCS || !reload_completed)
return false;
return for_each_rtx (&op, some_small_symbolic_operand_int, NULL);
return some_small_symbolic_operand_int (op);
})
;; Accept a register, or a memory if BWX is enabled.