diff options
author | Claudiu Zissulescu <claziss@synopsys.com> | 2019-04-16 12:21:15 +0200 |
---|---|---|
committer | Claudiu Zissulescu <claziss@gcc.gnu.org> | 2019-04-16 12:21:15 +0200 |
commit | b9bc3b128c02de33783a1729709cf44dd42bd05e (patch) | |
tree | f86d298c452218367ebcc52d1f932cebc3efd624 /gcc | |
parent | fa27cbfeb3291eab70181064b4ff5979375ed255 (diff) | |
download | gcc-b9bc3b128c02de33783a1729709cf44dd42bd05e.zip gcc-b9bc3b128c02de33783a1729709cf44dd42bd05e.tar.gz gcc-b9bc3b128c02de33783a1729709cf44dd42bd05e.tar.bz2 |
[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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 11 | ||||
-rw-r--r-- | gcc/config/arc/arc-protos.h | 2 | ||||
-rw-r--r-- | gcc/config/arc/arc.c | 26 | ||||
-rw-r--r-- | gcc/config/arc/arc.h | 11 |
4 files changed, 35 insertions, 15 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2a0bc74..8ebd9c8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,16 @@ 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. (sibcall_value_insn): Likewise. * config/arc/constraints.md (Rs5): Remove. diff --git a/gcc/config/arc/arc-protos.h b/gcc/config/arc/arc-protos.h index 8f0f197..ac0de6b 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 af8073c..65eef30 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 77892e6..80dead9 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. */ |