From: Claudiu Zissulescu Date: Tue, 16 Apr 2019 10:21:15 +0000 (+0200) Subject: [ARC] Refactor deprecated macros. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b9bc3b128c02de33783a1729709cf44dd42bd05e;p=gcc.git [ARC] Refactor deprecated macros. xxxx-xx-xx Claudiu Zissulescu * 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2a0bc74552f..8ebd9c8f3f2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,14 @@ +2019-04-16 Claudiu Zissulescu + + * 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 * config/arc/arc.md (sibcall_insn): Use Rcd constraint. diff --git a/gcc/config/arc/arc-protos.h b/gcc/config/arc/arc-protos.h index 8f0f197f14a..ac0de6b2874 100644 --- a/gcc/config/arc/arc-protos.h +++ b/gcc/config/arc/arc-protos.h @@ -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); diff --git a/gcc/config/arc/arc.c b/gcc/config/arc/arc.c index af8073c7b71..65eef30747a 100644 --- a/gcc/config/arc/arc.c +++ b/gcc/config/arc/arc.c @@ -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" diff --git a/gcc/config/arc/arc.h b/gcc/config/arc/arc.h index 77892e67e09..80dead957cb 100644 --- a/gcc/config/arc/arc.h +++ b/gcc/config/arc/arc.h @@ -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. */