]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
frv.h (REGISTER_MOVE_COST, [...]): Remove.
authorAnatoly Sokolov <aesok@post.ru>
Sun, 12 Sep 2010 20:33:15 +0000 (00:33 +0400)
committerAnatoly Sokolov <aesok@gcc.gnu.org>
Sun, 12 Sep 2010 20:33:15 +0000 (00:33 +0400)
* config/frv/frv.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
* config/frv/frv-protos.h (frv_register_move_cost): Remove.
* config/frv/frv.c (frv_register_move_cost): Make static. Change
arguments type to reg_class_t. Add mode argument.
(frv_memory_move_cost): New.
(TARGET_REGISTER_MOVE_COSTS, TARGET_MEMORY_MOVE_COSTS): Define.

From-SVN: r164233

gcc/ChangeLog
gcc/config/frv/frv-protos.h
gcc/config/frv/frv.c
gcc/config/frv/frv.h

index 9a20981f371418929877aeec8d0c70b6a66a252f..db8a1fd63cdb3df67b5d56c7734fd17996a05f89 100644 (file)
@@ -1,3 +1,12 @@
+2010-09-12  Anatoly Sokolov  <aesok@post.ru>
+
+       * config/frv/frv.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
+       * config/frv/frv-protos.h (frv_register_move_cost): Remove.
+       * config/frv/frv.c (frv_register_move_cost): Make static. Change
+       arguments type to reg_class_t. Add mode argument.
+       (frv_memory_move_cost): New.
+       (TARGET_REGISTER_MOVE_COSTS, TARGET_MEMORY_MOVE_COSTS): Define.
+
 2010-09-12  Bernd Schmidt  <bernds@codesourcery.com>
 
        * config/arm/arm.md (arm_ashldi3_1bit, arm_ashrdi3_1bit,
index 8ed14fa5fb400f2b144033783ea77bd0f5932146..976a71e2ef6a343c3e7c16fb48b432c92d5ce92b 100644 (file)
@@ -111,7 +111,6 @@ extern enum machine_mode frv_select_cc_mode (enum rtx_code, rtx, rtx);
 #endif /* RTX_CODE */
 
 extern int direct_return_p             (void);
-extern int frv_register_move_cost      (enum reg_class, enum reg_class);
 extern int frv_issue_rate              (void);
 extern int frv_acc_group               (rtx);
 
index ccb6fe9dfeae2ad1ca3495d17a2db2f5ab9dd42f..8560bc14a8e403150367868db57de68787195b69 100644 (file)
@@ -371,6 +371,10 @@ static void frv_setup_incoming_varargs             (CUMULATIVE_ARGS *,
 static rtx frv_expand_builtin_saveregs         (void);
 static void frv_expand_builtin_va_start                (tree, rtx);
 static bool frv_rtx_costs                      (rtx, int, int, int*, bool);
+static int frv_register_move_cost              (enum machine_mode,
+                                                reg_class_t, reg_class_t);
+static int frv_memory_move_cost                        (enum machine_mode,
+                                                reg_class_t, bool);
 static void frv_asm_out_constructor            (rtx, int);
 static void frv_asm_out_destructor             (rtx, int);
 static bool frv_function_symbol_referenced_p   (rtx);
@@ -432,6 +436,10 @@ static bool frv_class_likely_spilled_p             (reg_class_t);
 #define TARGET_INIT_LIBFUNCS frv_init_libfuncs
 #undef TARGET_IN_SMALL_DATA_P
 #define TARGET_IN_SMALL_DATA_P frv_in_small_data_p
+#undef TARGET_REGISTER_MOVE_COST
+#define TARGET_REGISTER_MOVE_COST frv_register_move_cost
+#undef TARGET_MEMORY_MOVE_COST
+#define TARGET_MEMORY_MOVE_COST frv_memory_move_cost
 #undef TARGET_RTX_COSTS
 #define TARGET_RTX_COSTS frv_rtx_costs
 #undef TARGET_ASM_CONSTRUCTOR
@@ -6908,28 +6916,16 @@ frv_select_cc_mode (enum rtx_code code, rtx x, rtx y)
     }
 }
 \f
-/* A C expression for the cost of moving data from a register in class FROM to
-   one in class TO.  The classes are expressed using the enumeration values
-   such as `GENERAL_REGS'.  A value of 4 is the default; other values are
-   interpreted relative to that.
-
-   It is not required that the cost always equal 2 when FROM is the same as TO;
-   on some machines it is expensive to move between registers if they are not
-   general registers.
-
-   If reload sees an insn consisting of a single `set' between two hard
-   registers, and if `REGISTER_MOVE_COST' applied to their classes returns a
-   value of 2, reload does not check to ensure that the constraints of the insn
-   are met.  Setting a cost of other than 2 will allow reload to verify that
-   the constraints are met.  You should do this if the `movM' pattern's
-   constraints do not allow such copying.  */
+
+/* Worker function for TARGET_REGISTER_MOVE_COST.  */
 
 #define HIGH_COST 40
 #define MEDIUM_COST 3
 #define LOW_COST 1
 
-int
-frv_register_move_cost (enum reg_class from, enum reg_class to)
+static int
+frv_register_move_cost (enum machine_mode mode ATTRIBUTE_UNUSED,
+                       reg_class_t from, reg_class_t to)
 {
   switch (from)
     {
@@ -7012,6 +7008,17 @@ frv_register_move_cost (enum reg_class from, enum reg_class to)
 
   return HIGH_COST;
 }
+
+/* Worker function for TARGET_MEMORY_MOVE_COST.  */
+
+static int
+frv_memory_move_cost (enum machine_mode mode ATTRIBUTE_UNUSED,
+                      reg_class_t rclass ATTRIBUTE_UNUSED,
+                      bool in ATTRIBUTE_UNUSED)
+{
+  return 4;
+}
+
 \f
 /* Implementation of TARGET_ASM_INTEGER.  In the FRV case we need to
    use ".picptr" to generate safe relocations for PIC code.  We also
index 79ff6f39921af43b0b4b3ef668d7d5dcf244fc20..75acccb54e1bf0c19d23f45525a88d65e7b5c490 100644 (file)
@@ -1946,31 +1946,6 @@ __asm__("\n"                                                             \
 \f
 /* Describing Relative Costs of Operations.  */
 
-/* A C expression for the cost of moving data from a register in class FROM to
-   one in class TO.  The classes are expressed using the enumeration values
-   such as `GENERAL_REGS'.  A value of 4 is the default; other values are
-   interpreted relative to that.
-
-   It is not required that the cost always equal 2 when FROM is the same as TO;
-   on some machines it is expensive to move between registers if they are not
-   general registers.
-
-   If reload sees an insn consisting of a single `set' between two hard
-   registers, and if `REGISTER_MOVE_COST' applied to their classes returns a
-   value of 2, reload does not check to ensure that the constraints of the insn
-   are met.  Setting a cost of other than 2 will allow reload to verify that
-   the constraints are met.  You should do this if the `movM' pattern's
-   constraints do not allow such copying.  */
-#define REGISTER_MOVE_COST(MODE, FROM, TO) frv_register_move_cost (FROM, TO)
-
-/* A C expression for the cost of moving data of mode M between a register and
-   memory.  A value of 2 is the default; this cost is relative to those in
-   `REGISTER_MOVE_COST'.
-
-   If moving between registers and memory is more expensive than between two
-   registers, you should define this macro to express the relative cost.  */
-#define MEMORY_MOVE_COST(M,C,I) 4
-
 /* A C expression for the cost of a branch instruction.  A value of 1 is the
    default; other values are interpreted relative to that.  */
 #define BRANCH_COST(speed_p, predictable_p) frv_branch_cost_int