[ARC] Refactor deprecated macros.

xxxx-xx-xx  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc-protos.h (arc_register_move_cost): Remove.
	* config/arc/arc.c (arc_register_move_cost): Re-purpose it to
	implement target hook.
	(arc_memory_move_cost): New function.
	(TARGET_REGISTER_MOVE_COST): Define.
	(TARGET_MEMORY_MOVE_COST): Likewise.
	* config/arc/arc.h (REGISTER_MOVE_COST): Remove.
	(MEMORY_MOVE_COST): Likewise.

fix

From-SVN: r270387
This commit is contained in:
Claudiu Zissulescu 2019-04-16 12:21:15 +02:00 committed by Claudiu Zissulescu
parent fa27cbfeb3
commit b9bc3b128c
4 changed files with 35 additions and 15 deletions

View file

@ -1,3 +1,14 @@
2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
* config/arc/arc-protos.h (arc_register_move_cost): Remove.
* config/arc/arc.c (arc_register_move_cost): Re-purpose it to
implement target hook.
(arc_memory_move_cost): New function.
(TARGET_REGISTER_MOVE_COST): Define.
(TARGET_MEMORY_MOVE_COST): Likewise.
* config/arc/arc.h (REGISTER_MOVE_COST): Remove.
(MEMORY_MOVE_COST): Likewise.
2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
* config/arc/arc.md (sibcall_insn): Use Rcd constraint.

View file

@ -68,8 +68,6 @@ extern bool arc_is_shortcall_p (rtx);
extern bool valid_brcc_with_delay_p (rtx *);
extern bool arc_ccfsm_cond_exec_p (void);
struct secondary_reload_info;
extern int arc_register_move_cost (machine_mode, enum reg_class,
enum reg_class);
extern rtx disi_highpart (rtx);
extern int arc_adjust_insn_length (rtx_insn *, int, bool);
extern int arc_corereg_hazard (rtx, rtx);

View file

@ -8682,9 +8682,11 @@ arc_preserve_reload_p (rtx in)
&& !((INTVAL (XEXP (in, 1)) & 511)));
}
int
/* Implement TARGET_REGISTER_MOVE_COST. */
static int
arc_register_move_cost (machine_mode,
enum reg_class from_class, enum reg_class to_class)
reg_class_t from_class, reg_class_t to_class)
{
/* Force an attempt to 'mov Dy,Dx' to spill. */
if ((TARGET_ARC700 || TARGET_EM) && TARGET_DPFP
@ -11424,6 +11426,20 @@ arc_adjust_reg_alloc_order (void)
memcpy (reg_alloc_order, size_alloc_order, sizeof (size_alloc_order));
}
/* Implement TARGET_MEMORY_MOVE_COST. */
static int
arc_memory_move_cost (machine_mode mode,
reg_class_t rclass ATTRIBUTE_UNUSED,
bool in ATTRIBUTE_UNUSED)
{
if ((GET_MODE_SIZE (mode) <= UNITS_PER_WORD)
|| ((GET_MODE_SIZE (mode) <= UNITS_PER_WORD * 2) && TARGET_LL64))
return 6;
return (2 * GET_MODE_SIZE (mode));
}
#undef TARGET_USE_ANCHORS_FOR_SYMBOL_P
#define TARGET_USE_ANCHORS_FOR_SYMBOL_P arc_use_anchors_for_symbol_p
@ -11439,6 +11455,12 @@ arc_adjust_reg_alloc_order (void)
#undef TARGET_HAVE_SPECULATION_SAFE_VALUE
#define TARGET_HAVE_SPECULATION_SAFE_VALUE speculation_safe_value_not_needed
#undef TARGET_REGISTER_MOVE_COST
#define TARGET_REGISTER_MOVE_COST arc_register_move_cost
#undef TARGET_MEMORY_MOVE_COST
#define TARGET_MEMORY_MOVE_COST arc_memory_move_cost
struct gcc_target targetm = TARGET_INITIALIZER;
#include "gt-arc.h"

View file

@ -925,17 +925,6 @@ arc_select_cc_mode (OP, X, Y)
/* Costs. */
/* Compute extra cost of moving data between one register class
and another. */
#define REGISTER_MOVE_COST(MODE, CLASS, TO_CLASS) \
arc_register_move_cost ((MODE), (CLASS), (TO_CLASS))
/* Compute the cost of moving data between registers and memory. */
/* Memory is 3 times as expensive as registers.
??? Is that the right way to look at it? */
#define MEMORY_MOVE_COST(MODE,CLASS,IN) \
(GET_MODE_SIZE (MODE) <= UNITS_PER_WORD ? 6 : 12)
/* The cost of a branch insn. */
/* ??? What's the right value here? Branches are certainly more
expensive than reg->reg moves. */