mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-09 21:31:30 +08:00
frv.h (REGISTER_MOVE_COST, [...]): Remove.
* 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
This commit is contained in:
parent
2cea21ddb8
commit
33124e84a8
@ -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,
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
/* 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;
|
||||
}
|
||||
|
||||
|
||||
/* Implementation of TARGET_ASM_INTEGER. In the FRV case we need to
|
||||
use ".picptr" to generate safe relocations for PIC code. We also
|
||||
|
@ -1946,31 +1946,6 @@ __asm__("\n" \
|
||||
|
||||
/* 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
|
||||
|
Loading…
x
Reference in New Issue
Block a user