Patchwork [STORMY16] Hookize REGISTER_MOVE_COST and MEMORY_MOVE_COST

login
register
mail settings
Submitter Anatoly Sokolov
Date March 1, 2011, 9:42 p.m.
Message ID <1446125776.20110302004213@post.ru>
Download mbox | patch
Permalink /patch/84993/
State New
Headers show

Comments

Anatoly Sokolov - March 1, 2011, 9:42 p.m.
Hi.

  This patch removes obsolete REGISTER_MOVE_COST and MEMORY_MOVE_COST
macros from the STORMY16 back end in the GCC and introduces equivalent
TARGET_MEMORY_MOVE_COST target hook. Default version of the 
TARGET_REGISTER_MOVE_COST target hook is used.

  Regression tested on xstormy16-unknown-elf.

  OK to install?

        * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
        Remove.
        * config/stormy16/stormy16.c: Include reload.h.
        (xstormy16_memory_move_cost): New function.
        (TARGET_MEMORY_MOVE_COST): Define.



Anatoly.
Nick Clifton - March 2, 2011, 11:16 a.m.
Hi Anatoly,

>          * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
>          Remove.
>          * config/stormy16/stormy16.c: Include reload.h.
>          (xstormy16_memory_move_cost): New function.
>          (TARGET_MEMORY_MOVE_COST): Define.

Approved - please apply.

Cheers
   Nick

Patch

Index: gcc/config/stormy16/stormy16.c
===================================================================
--- gcc/config/stormy16/stormy16.c      (revision 170573)
+++ gcc/config/stormy16/stormy16.c      (working copy)
@@ -46,6 +46,7 @@ 
 #include "langhooks.h"
 #include "gimple.h"
 #include "df.h"
+#include "reload.h"
 #include "ggc.h"
 
 static rtx emit_addhi3_postreload (rtx, rtx, rtx);
@@ -108,6 +109,16 @@ 
          : 5);
 }
 
+/* Worker function for TARGET_MEMORY_MOVE_COST.  */
+
+static int
+xstormy16_memory_move_cost (enum machine_mode mode, reg_class_t rclass,
+                           bool in)
+{
+  return (5 + memory_move_secondary_cost (mode, rclass, in));
+}
+
+
 /* Branches are handled as follows:
 
    1. HImode compare-and-branches.  The machine supports these
@@ -2598,6 +2609,8 @@ 
 #undef  TARGET_ASM_CAN_OUTPUT_MI_THUNK
 #define TARGET_ASM_CAN_OUTPUT_MI_THUNK default_can_output_mi_thunk_no_vcall
 
+#undef TARGET_MEMORY_MOVE_COST
+#define TARGET_MEMORY_MOVE_COST xstormy16_memory_move_cost
 #undef  TARGET_RTX_COSTS
 #define TARGET_RTX_COSTS xstormy16_rtx_costs
 #undef  TARGET_ADDRESS_COST
Index: gcc/config/stormy16/stormy16.h
===================================================================
--- gcc/config/stormy16/stormy16.h      (revision 170573)
+++ gcc/config/stormy16/stormy16.h      (working copy)
@@ -354,10 +354,6 @@ 
 
 /* Describing Relative Costs of Operations.  */
 
-#define REGISTER_MOVE_COST(MODE, FROM, TO) 2
-
-#define MEMORY_MOVE_COST(M,C,I) (5 + memory_move_secondary_cost (M, C, I))
-
 #define BRANCH_COST(speed_p, predictable_p) 5
 
 #define SLOW_BYTE_ACCESS 0