24 #include "insn-attr.h"
25 #include "insn-codes.h"
26 #include "insn-config.h"
29 #define lra_assert(c) gcc_checking_assert (c)
34 #define LRA_MAX_INSN_RELOADS (MAX_RECOG_OPERANDS * 3)
105 #ifdef ENABLE_CHECKING
148 ENUM_BITFIELD(machine_mode) mode : 16;
169 ENUM_BITFIELD(machine_mode) biggest_mode : 16;
171 ENUM_BITFIELD (
op_type) type : 8;
174 unsigned int subreg_p : 1;
177 unsigned int early_clobber : 1;
181 struct lra_insn_reg *
next;
234 bool *alternative_enabled_p;
238 int used_insn_alternative;
246 #define LRA_TEMP_CLOBBER_P(x) \
247 (RTL_FLAG_CHECK1 ("TEMP_CLOBBER_P", (x), CLOBBER)->unchanging)
252 #define LRA_LOSER_COST_FACTOR 6
253 #define LRA_MAX_REJECT 600
257 #define LRA_MAX_CONSTRAINT_ITERATION_NUMBER 30
267 #define LRA_MAX_INHERITANCE_PASSES 2
269 #if LRA_MAX_INHERITANCE_PASSES <= 0 \
270 || LRA_MAX_INHERITANCE_PASSES >= LRA_MAX_CONSTRAINT_ITERATION_NUMBER - 8
271 #error wrong LRA_MAX_INHERITANCE_PASSES value
294 enum reg_class,
const char *);
405 for (i = 0; i < static_id->
n_dups; i++)
406 if (static_id->
dup_num[i] == nop)
407 *
id->dup_loc[i] = *
id->operand_loc[nop];
420 for (i = 0; i < static_id->
n_dups; i++)
422 int ndup = static_id->
dup_num[i];
425 *
id->dup_loc[i] = *
id->operand_loc[ndup];
455 for (i = FIRST_PSEUDO_REGISTER; i <
max_reg_num (); i++)
457 if (lra_reg_info[i].val == val)
458 lra_reg_info[i].
offset += incr;
466 if (lra_reg_info[regno].val == val
467 && lra_reg_info[regno].offset == offset)
477 lra_reg_info[to].
val = lra_reg_info[from].
val;
491 #if SWITCHABLE_TARGET
494 #define this_target_lra_int (&default_target_lra_int)
497 #define op_alt_data (this_target_lra_int->x_op_alt_data)