Commit 9419649c by David Edelsohn Committed by David Edelsohn

rs6000.c (rs6000_insn_valid_within_doloop): New.

	* config/rs6000/rs6000.c (rs6000_insn_valid_within_doloop): New.
	(TARGET_INSN_VALID_WITHIN_DOLOOP): Define.

From-SVN: r100493
parent 46c4495f
2005-06-02 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/rs6000.c (rs6000_insn_valid_within_doloop): New.
(TARGET_INSN_VALID_WITHIN_DOLOOP): Define.
2005-06-02 Diego Novillo <dnovillo@redhat.com>
* tree-vrp.c (has_assert_expr, maybe_add_assert_expr): Remove.
......
......@@ -552,6 +552,7 @@ struct processor_costs power4_cost = {
static bool rs6000_function_ok_for_sibcall (tree, tree);
static bool rs6000_insn_valid_within_doloop (rtx);
static rtx rs6000_generate_compare (enum rtx_code);
static void rs6000_maybe_dead (rtx);
static void rs6000_emit_stack_tie (void);
......@@ -906,6 +907,9 @@ static const char alt_reg_names[][8] =
#undef TARGET_FUNCTION_OK_FOR_SIBCALL
#define TARGET_FUNCTION_OK_FOR_SIBCALL rs6000_function_ok_for_sibcall
#undef TARGET_INSN_VALID_WITHIN_DOLOOP
#define TARGET_INSN_VALID_WITHIN_DOLOOP rs6000_insn_valid_within_doloop
#undef TARGET_RTX_COSTS
#define TARGET_RTX_COSTS rs6000_rtx_costs
#undef TARGET_ADDRESS_COST
......@@ -12520,6 +12524,23 @@ rs6000_function_ok_for_sibcall (tree decl, tree exp ATTRIBUTE_UNUSED)
return false;
}
/* TRUE if INSN insn is valid within a low-overhead loop.
PowerPC uses the COUNT register for branch on table instructions. */
static bool
rs6000_insn_valid_within_doloop (rtx insn)
{
if (CALL_P (insn))
return false;
if (JUMP_P (insn)
&& (GET_CODE (PATTERN (insn)) == ADDR_DIFF_VEC
|| GET_CODE (PATTERN (insn)) == ADDR_VEC))
return false;
return true;
}
static int
rs6000_ra_ever_killed (void)
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment