* frv.c (frv_rtx_costs): Update forward declaration.
* spu.c (spu_rtx_costs): Likewise.
* pdp11.c: Include df.h
(pdp11_output_function_epilogue): Use df_set_regs_ever_live.
* m68hc11.c (m68hc11_gen_highpart): Fix call of gen_rtx_SUBREG.
(m68hc11_rtx_costs_1): Fix call of rtx_cost.
* iq2000.c (iq2000_address_cost): Add speed argument.
(iq2000_rtx_costs): Likewise.
* mn10300.c (mn10300_address_cost_1): Remove speed argument;
update call of mn10300_address_cost.
* mcore.c: Include df.h
(mcore_rtx_costs): Update prototype.
* score3.c: Include df.h
(score3_rtx_costs): Remove speed argument.
* score7.c: Include df.h
(score7_address_cost): Remove speed argument.
* score-protos.h (score_address_cost): Update prototype.
* score.c: Include df.h
(score_rtx_costs): Update call of costs functions.
* v850.c (v850_rtx_costs): Add bool argument.
From-SVN: r139843
+2008-08-31 Jan Hubicka <jh@suse.cz>
+
+ * frv.c (frv_rtx_costs): Update forward declaration.
+ * spu.c (spu_rtx_costs): Likewise.
+ * pdp11.c: Include df.h
+ (pdp11_output_function_epilogue): Use df_set_regs_ever_live.
+ * m68hc11.c (m68hc11_gen_highpart): Fix call of gen_rtx_SUBREG.
+ (m68hc11_rtx_costs_1): Fix call of rtx_cost.
+ * iq2000.c (iq2000_address_cost): Add speed argument.
+ (iq2000_rtx_costs): Likewise.
+ * mn10300.c (mn10300_address_cost_1): Remove speed argument;
+ update call of mn10300_address_cost.
+ * mcore.c: Include df.h
+ (mcore_rtx_costs): Update prototype.
+ * score3.c: Include df.h
+ (score3_rtx_costs): Remove speed argument.
+ * score7.c: Include df.h
+ (score7_address_cost): Remove speed argument.
+ * score-protos.h (score_address_cost): Update prototype.
+ * score.c: Include df.h
+ (score_rtx_costs): Update call of costs functions.
+ * v850.c (v850_rtx_costs): Add bool argument.
+
2008-08-31 Hans-Peter Nilsson <hp@axis.com>
* config/cris/cris.c (cris_rtx_costs): Correct call to rtx_costs.
tree, int *, int);
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*);
+static bool frv_rtx_costs (rtx, int, int, int*, 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);
/* Provide the costs of an addressing mode that contains ADDR. */
static int
-iq2000_address_cost (rtx addr, bool speec ATTRIBUTE_UNUSED)
+iq2000_address_cost (rtx addr, bool speed)
{
switch (GET_CODE (addr))
{
case LABEL_REF:
case HIGH:
case LO_SUM:
- return iq2000_address_cost (plus1) + 1;
+ return iq2000_address_cost (plus1, speed) + 1;
default:
break;
}
static bool
-iq2000_rtx_costs (rtx x, int code, int outer_code ATTRIBUTE_UNUSED, int * total, bool speed)
+iq2000_rtx_costs (rtx x, int code, int outer_code ATTRIBUTE_UNUSED, int * total,
+ bool speed ATTRIBUTE_UNUSED)
{
enum machine_mode mode = GET_MODE (x);
switch (GET_CODE (x))
{
case SUBREG:
- return gen_rtx_SUBREG (mode, XEXP (x, 0), XEXP (x, 1));
+ return gen_rtx_SUBREG (mode, XEXP (x, 0), XINT (x, 1));
case REG:
if (REGNO (x) < FIRST_PSEUDO_REGISTER)
return gen_rtx_REG (mode, REGNO (x));
+ rtx_cost (XEXP (XEXP (x, 0), 0), code, !optimize_size)
+ rtx_cost (XEXP (XEXP (x, 1), 0), code, !optimize_size);
- total = rtx_cost (XEXP (x, 0), code) + rtx_cost (XEXP (x, 1), code);
+ total = rtx_cost (XEXP (x, 0), code, !optimize_size)
+ + rtx_cost (XEXP (x, 1), code, !optimize_size);
switch (mode)
{
case QImode:
local-alloc.c. */
-/* Internal macro, return 1 if REGNO is a valid base register. */
-#define REG_VALID_P(REGNO) ((REGNO) >= 0)
-
extern unsigned char m68hc11_reg_valid_for_base[FIRST_PSEUDO_REGISTER];
#define REG_VALID_FOR_BASE_P(REGNO) \
- (REG_VALID_P (REGNO) && (REGNO) < FIRST_PSEUDO_REGISTER \
+ ((REGNO) < FIRST_PSEUDO_REGISTER \
&& m68hc11_reg_valid_for_base[REGNO])
/* Internal macro, return 1 if REGNO is a valid index register. */
extern unsigned char m68hc11_reg_valid_for_index[FIRST_PSEUDO_REGISTER];
#define REG_VALID_FOR_INDEX_P(REGNO) \
- (REG_VALID_P (REGNO) >= 0 && (REGNO) < FIRST_PSEUDO_REGISTER \
+ ((REGNO) < FIRST_PSEUDO_REGISTER \
&& m68hc11_reg_valid_for_index[REGNO])
/* Internal macro, the nonstrict definition for REGNO_OK_FOR_BASE_P. */
#include "toplev.h"
#include "target.h"
#include "target-def.h"
+#include "df.h"
/* Maximum size we are allowed to grow the stack in a single operation.
If we want more, we must do it in increments of at most this size.
static int mcore_const_costs (rtx, RTX_CODE);
static int mcore_and_cost (rtx);
static int mcore_ior_cost (rtx);
-static bool mcore_rtx_costs (rtx, int, int, int *);
+static bool mcore_rtx_costs (rtx, int, int, int *, bool);
static void mcore_external_libcall (rtx);
static bool mcore_return_in_memory (const_tree, const_tree);
static int mcore_arg_partial_bytes (CUMULATIVE_ARGS *,
}
static int
-mn10300_address_cost_1 (rtx x, int *unsig, bool speed ATTRIBUTE_UNUSED)
+mn10300_address_cost_1 (rtx x, int *unsig)
{
switch (GET_CODE (x))
{
case EXPR_LIST:
case SUBREG:
case MEM:
- return mn10300_address_cost (XEXP (x, 0));
+ return mn10300_address_cost (XEXP (x, 0), !optimize_size);
case ZERO_EXTEND:
*unsig = 1;
#include "tm_p.h"
#include "target.h"
#include "target-def.h"
+#include "df.h"
/*
#define FPU_REG_P(X) ((X)>=8 && (X)<14)
if (frame_pointer_needed)
{
/* hope this is safe - m68k does it also .... */
- df_regs_ever_live_p (FRAME_POINTER_REGNUM) = 0;
+ df_set_regs_ever_live (FRAME_POINTER_REGNUM, false);
for (i =7, j = 0 ; i >= 0 ; i--)
if (df_regs_ever_live_p (i) && ! call_used_regs[i])
extern bool score_unaligned_load (rtx* ops);
extern bool score_unaligned_store (rtx* ops);
extern bool score_block_move (rtx* ops);
-extern int score_address_cost (rtx addr);
+extern int score_address_cost (rtx addr, bool speed);
extern rtx score_function_arg (const CUMULATIVE_ARGS *cum,
enum machine_mode mode,
tree type, int named);
#include "langhooks.h"
#include "score7.h"
#include "score3.h"
+#include "df.h"
#undef TARGET_ASM_FILE_START
#define TARGET_ASM_FILE_START score_asm_file_start
bool speed ATTRIBUTE_UNUSED)
{
if (TARGET_SCORE5 || TARGET_SCORE5U || TARGET_SCORE7 || TARGET_SCORE7D)
- return score7_rtx_costs (x, code, outer_code, total);
+ return score7_rtx_costs (x, code, outer_code, total, speed);
else if (TARGET_SCORE3)
- return score3_rtx_costs (x, code, outer_code, total);
+ return score3_rtx_costs (x, code, outer_code, total, speed);
gcc_unreachable ();
}
#include "langhooks.h"
#include "cfglayout.h"
#include "score3.h"
+#include "df.h"
#define BITSET_P(VALUE, BIT) (((VALUE) & (1L << (BIT))) != 0)
#define INS_BUF_SZ 128
/* Implement TARGET_ADDRESS_COST macro. */
int
-score3_address_cost (rtx addr, bool speed ATTRIBUTE_UNUSED)
+score3_address_cost (rtx addr)
{
return score3_address_insns (addr, SImode);
}
#include "langhooks.h"
#include "cfglayout.h"
#include "score7.h"
+#include "df.h"
#define BITSET_P(VALUE, BIT) (((VALUE) & (1L << (BIT))) != 0)
#define INS_BUF_SZ 128
/* Implement TARGET_ADDRESS_COST macro. */
int
-score7_address_cost (rtx addr,
- bool speed ATTRIBUTE_UNUSED)
+score7_address_cost (rtx addr)
{
return score7_address_insns (addr, SImode);
}
static bool spu_assemble_integer (rtx x, unsigned int size, int aligned_p);
static void spu_asm_globalize_label (FILE * file, const char *name);
static unsigned char spu_rtx_costs (rtx x, int code, int outer_code,
- int *total);
+ int *total, bool speed);
static unsigned char spu_function_ok_for_sibcall (tree decl, tree exp);
static void spu_init_libfuncs (void);
static bool spu_return_in_memory (const_tree type, const_tree fntype);
static void const_double_split (rtx, HOST_WIDE_INT *, HOST_WIDE_INT *);
static int const_costs_int (HOST_WIDE_INT, int);
static int const_costs (rtx, enum rtx_code);
-static bool v850_rtx_costs (rtx, int, int, int *);
+static bool v850_rtx_costs (rtx, int, int, int *, bool);
static void substitute_ep_register (rtx, rtx, int, int, rtx *, rtx *);
static void v850_reorg (void);
static int ep_memory_offset (enum machine_mode, int);