26#ifdef SECONDARY_RELOAD_CLASS
27#define SECONDARY_INPUT_RELOAD_CLASS(CLASS, MODE, X) \
28 SECONDARY_RELOAD_CLASS (CLASS, MODE, X)
29#define SECONDARY_OUTPUT_RELOAD_CLASS(CLASS, MODE, X) \
30 SECONDARY_RELOAD_CLASS (CLASS, MODE, X)
38#define MAX_RELOADS (2 * MAX_RECOG_OPERANDS * (MAX_REGS_PER_ADDRESS + 1))
73#ifdef GCC_INSN_CODES_H
84 enum reg_class rclass;
123 int secondary_in_reload;
126 int secondary_out_reload;
130 enum insn_code secondary_in_icode;
132 enum insn_code secondary_out_icode;
141 unsigned int optional:1;
143 unsigned int nocombine:1;
145 unsigned int secondary_p:1;
148 unsigned int nongroup:1;
178 [FIRST_PSEUDO_REGISTER]
198#define this_target_reload (&default_target_reload)
201#define indirect_symref_ok \
202 (this_target_reload->x_indirect_symref_ok)
203#define double_reg_address_ok \
204 (this_target_reload->x_double_reg_address_ok)
205#define caller_save_initialized_p \
206 (this_target_reload->x_caller_save_initialized_p)
246#define reg_equiv_constant(ELT) \
247 (*reg_equivs)[(ELT)].constant
248#define reg_equiv_invariant(ELT) \
249 (*reg_equivs)[(ELT)].invariant
250#define reg_equiv_memory_loc(ELT) \
251 (*reg_equivs)[(ELT)].memory_loc
252#define reg_equiv_address(ELT) \
253 (*reg_equivs)[(ELT)].address
254#define reg_equiv_mem(ELT) \
255 (*reg_equivs)[(ELT)].mem
256#define reg_equiv_alt_mem_list(ELT) \
257 (*reg_equivs)[(ELT)].alt_mem_list
258#define reg_equiv_init(ELT) \
259 (*reg_equivs)[(ELT)].init
277#if defined HARD_CONST && defined CLEAR_REG_SET
285 class insn_chain *next, *prev;
289 class insn_chain *next_need_reload;
298 unsigned int need_reload:1;
301 unsigned int need_operand_change:1;
303 unsigned int need_elim:1;
305 unsigned int is_caller_save_insn:1;
329#if defined HARD_CONST
338#ifdef GCC_INSN_CODES_H
411 machine_mode, machine_mode,
int reg_class_t
Definition coretypes.h:376
class bitmap_head * bitmap
Definition coretypes.h:51
#define MAX_MOVE_MAX
Definition defaults.h:999
#define MIN_UNITS_PER_WORD
Definition defaults.h:1003
HARD_REG_ELT_TYPE HARD_REG_SET
Definition hard-reg-set.h:47
poly_int< N, C > r
Definition poly-int.h:774
void compute_use_by_pseudos(HARD_REG_SET *to, regset from)
Definition reload1.cc:501
static HARD_REG_SET used_spill_regs
Definition reload1.cc:189
class insn_chain * reload_insn_chain
Definition reload1.cc:242
class insn_chain * new_insn_chain(void)
Definition reload1.cc:475
int n_reloads
Definition reload.cc:132
enum reg_class scratch_reload_class(enum insn_code icode)
Definition reload.cc:536
struct reload rld[MAX_RELOADS]
Definition reload.cc:133
reload_type
Definition reload.h:65
@ RELOAD_OTHER
Definition reload.h:70
@ RELOAD_FOR_INPADDR_ADDRESS
Definition reload.h:67
@ RELOAD_FOR_OUTADDR_ADDRESS
Definition reload.h:68
@ RELOAD_FOR_INSN
Definition reload.h:66
@ RELOAD_FOR_OUTPUT_ADDRESS
Definition reload.h:68
@ RELOAD_FOR_OUTPUT
Definition reload.h:66
@ RELOAD_FOR_INPUT_ADDRESS
Definition reload.h:67
@ RELOAD_FOR_OPERAND_ADDRESS
Definition reload.h:69
@ RELOAD_FOR_OPADDR_ADDR
Definition reload.h:69
@ RELOAD_FOR_INPUT
Definition reload.h:66
@ RELOAD_FOR_OTHER_ADDRESS
Definition reload.h:70
rtx eliminate_regs(rtx, machine_mode, rtx)
Definition reload1.cc:2940
void grow_reg_equivs(void)
Definition reload1.cc:644
void transfer_replacements(int, int)
Definition reload.cc:1675
void cleanup_subreg_operands(rtx_insn *)
Definition final.cc:3051
int remove_address_replacements(rtx in_rtx)
Definition reload.cc:1689
int reload_n_operands
Definition reload.cc:140
bool elimination_target_reg_p(rtx)
Definition reload1.cc:3949
int memory_move_cost(machine_mode, reg_class_t, bool)
Definition reginfo.cc:553
vec< reg_equivs_t, va_gc > * reg_equivs
Definition reload1.cc:320
int regno_clobbered_p(unsigned int, rtx_insn *, machine_mode, int)
Definition reload.cc:7199
int find_reloads(rtx_insn *, int, int, int, short *)
Definition reload.cc:2614
void save_call_clobbered_regs(void)
Definition caller-save.cc:728
rtx form_sum(machine_mode, rtx, rtx)
Definition reload.cc:5358
void move_replacements(rtx *x, rtx *y)
Definition reload.cc:6370
void calculate_elim_costs_all_insns(void)
Definition reload1.cc:1555
void init_save_areas(void)
Definition caller-save.cc:276
int register_move_cost(machine_mode, reg_class_t, reg_class_t)
Definition reginfo.cc:545
int reload_first_uid
Definition reload1.cc:213
void init_reload(void)
Definition reload1.cc:414
int operands_match_p(rtx, rtx)
Definition reload.cc:2196
bool reload(rtx_insn *, int)
Definition reload1.cc:750
int num_not_at_initial_offset
Definition reload1.cc:299
void deallocate_reload_reg(int r)
Definition reload1.cc:7008
rtx get_secondary_mem(rtx, machine_mode, int, enum reload_type)
Definition reload.cc:557
rtx reload_adjust_reg_for_mode(rtx, machine_mode)
Definition reload.cc:7246
struct target_reload default_target_reload
Definition reload1.cc:81
reg_class_t secondary_reload_class(bool, reg_class_t, machine_mode, rtx)
Definition reload.cc:508
int reg_overlap_mentioned_for_reload_p(rtx, rtx)
Definition reload.cc:6555
int memory_move_secondary_cost(machine_mode, reg_class_t, bool)
Definition reginfo.cc:561
void setup_save_areas(void)
Definition caller-save.cc:401
rtx find_replacement(rtx *)
Definition reload.cc:6383
rtx reload_earlyclobbers[MAX_RECOG_OPERANDS]
Definition reload.cc:138
void debug_reload(void)
Definition reload.cc:7378
#define this_target_reload
Definition reload.h:198
void subst_reloads(rtx_insn *)
Definition reload.cc:6260
void init_caller_save(void)
Definition caller-save.cc:184
void copy_replacements(rtx, rtx)
Definition reload.cc:6328
void clear_secondary_mem(void)
Definition reload.cc:624
rtx find_equiv_reg(rtx, rtx_insn *, enum reg_class, int, short *, int, machine_mode)
Definition reload.cc:6682
int push_reload(rtx, rtx, rtx *, rtx *, enum reg_class, machine_mode, machine_mode, int, int, int, enum reload_type)
Definition reload.cc:952
int safe_from_earlyclobber(rtx, rtx)
Definition reload.cc:2583
#define MAX_RELOADS
Definition reload.h:38
void mark_home_live(int)
Definition reload1.cc:2309
void debug_reload_to_stream(FILE *)
Definition reload.cc:7280
int earlyclobber_operand_p(rtx)
Definition reload.cc:2112
int n_earlyclobbers
Definition reload.cc:137
rtx address
Definition reload.h:231
rtx memory_loc
Definition reload.h:226
rtx constant
Definition reload.h:215
rtx_insn_list * init
Definition reload.h:243
rtx invariant
Definition reload.h:220
rtx_expr_list * alt_mem_list
Definition reload.h:239
rtx mem
Definition reload.h:235
unsigned char x_spill_indirect_levels
Definition reload.h:168
machine_mode(x_regno_save_mode[FIRST_PSEUDO_REGISTER][MAX_MOVE_MAX/MIN_UNITS_PER_WORD+1])
bool x_indirect_symref_ok
Definition reload.h:160
bool x_caller_save_initialized_p
Definition reload.h:171
bool x_double_reg_address_ok[MAX_MACHINE_MODE]
Definition reload.h:183
int x_cached_reg_restore_code[FIRST_PSEUDO_REGISTER][MAX_MACHINE_MODE]
Definition reload.h:191
int x_cached_reg_save_code[FIRST_PSEUDO_REGISTER][MAX_MACHINE_MODE]
Definition reload.h:190
const T2 & y
Definition wide-int.h:3870