#include "config.h"#include "system.h"#include "machmode.h"#include "hard-reg-set.h"#include "rtl.h"#include "tm_p.h"#include "obstack.h"#include "insn-config.h"#include "flags.h"#include "function.h"#include "expr.h"#include "optabs.h"#include "regs.h"#include "basic-block.h"#include "reload.h"#include "recog.h"#include "output.h"#include "cselib.h"#include "real.h"#include "toplev.h"#include "except.h"#include "tree.h"

Go to the source code of this file.
Data Types | |
| type | elim_table |
| type | elim_table_1 |
| type | reg_use |
Defines | |
| #define | REGISTER_MOVE_COST(m, x, y) 2 |
| #define | LOCAL_REGNO(REGNO) 0 |
| #define | NUM_ELIMINABLE_REGS ARRAY_SIZE (reg_eliminate_1) |
| #define | RELOAD_COMBINE_MAX_USES 6 |
| #define | LABEL_LIVE(LABEL) (label_live[CODE_LABEL_NUMBER (LABEL) - min_labelno]) |
| #define | MODES_OK_FOR_MOVE2ADD(OUTMODE, INMODE) |
Functions/Subroutines | |
| static void replace_pseudos_in_call_usage | PARAMS ((rtx *, enum machine_mode, rtx)) |
| static void maybe_fix_stack_asms | PARAMS ((void)) |
| static void copy_reloads | PARAMS ((struct insn_chain *)) |
| static void calculate_needs_all_insns | PARAMS ((int)) |
| static int find_reg | PARAMS ((struct insn_chain *, int)) |
| static void spill_failure | PARAMS ((rtx, enum reg_class)) |
| static void count_spilled_pseudo | PARAMS ((int, int, int)) |
| static void delete_dead_insn | PARAMS ((rtx)) |
| static void alter_reg | PARAMS ((int, int)) |
| static void set_label_offsets | PARAMS ((rtx, rtx, int)) |
| static void elimination_effects | PARAMS ((rtx, enum machine_mode)) |
| static int eliminate_regs_in_insn | PARAMS ((rtx, int)) |
| static void mark_not_eliminable | PARAMS ((rtx, rtx, void *)) |
| static void update_eliminables | PARAMS ((HARD_REG_SET *)) |
| static void spill_hard_reg | PARAMS ((unsigned int, int)) |
| static void ior_hard_reg_set | PARAMS ((HARD_REG_SET *, HARD_REG_SET *)) |
| static int reload_reg_class_lower | PARAMS ((const PTR, const PTR)) |
| static void mark_reload_reg_in_use | PARAMS ((unsigned int, int, enum reload_type, enum machine_mode)) |
| static int reload_reg_free_p | PARAMS ((unsigned int, int, enum reload_type)) |
| static int reload_reg_free_for_value_p | PARAMS ((int, int, int, enum reload_type, rtx, rtx, int, int)) |
| static int free_for_value_p | PARAMS ((int, enum machine_mode, int, enum reload_type, rtx, rtx, int, int)) |
| static int allocate_reload_reg | PARAMS ((struct insn_chain *, int, int)) |
| static void choose_reload_regs_init | PARAMS ((struct insn_chain *, rtx *)) |
| static void emit_input_reload_insns | PARAMS ((struct insn_chain *, struct reload *, rtx, int)) |
| static void emit_output_reload_insns | PARAMS ((struct insn_chain *, struct reload *, int)) |
| static void delete_output_reload | PARAMS ((rtx, int, int)) |
| static void delete_address_reloads | PARAMS ((rtx, rtx)) |
| static void delete_address_reloads_1 | PARAMS ((rtx, rtx, rtx)) |
| static rtx inc_for_reload | PARAMS ((rtx, rtx, rtx, int)) |
| static void reload_combine_note_use | PARAMS ((rtx *, rtx)) |
| static HOST_WIDE_INT sext_for_mode | PARAMS ((enum machine_mode, HOST_WIDE_INT)) |
| void | init_reload () |
| struct insn_chain * | new_insn_chain () |
| void | compute_use_by_pseudos (HARD_REG_SET *to, regset from) |
| static void | replace_pseudos_in_call_usage (rtx *loc, enum machine_mode mem_mode, rtx usage) |
| int | reload (rtx first, int global) |
| static void | maybe_fix_stack_asms () |
| static void | copy_reloads (struct insn_chain *chain) |
| static void | calculate_needs_all_insns (int global) |
| static int | reload_reg_class_lower (PTR r1p, const PTR r2p) const |
| static void | count_pseudo (int reg) |
| static void | order_regs_for_reload (struct insn_chain *chain) |
| static void | count_spilled_pseudo (int spilled, int spilled_nregs, int reg) |
| static int | find_reg (struct insn_chain *chain, int order) |
| static void | find_reload_regs (struct insn_chain *chain) |
| static void | select_reload_regs () |
| static void | delete_caller_save_insns () |
| static void | spill_failure (rtx insn, enum reg_class class) |
| static void | delete_dead_insn (rtx insn) |
| static void | alter_reg (int i, int from_reg) |
| void | mark_home_live (int regno) |
| static void | set_label_offsets (rtx x, rtx insn, int initial_p) |
| rtx | eliminate_regs (rtx x, enum machine_mode mem_mode, rtx insn) |
| static void | elimination_effects (rtx x, enum machine_mode mem_mode) |
| static void | check_eliminable_occurrences (rtx x) |
| static int | eliminate_regs_in_insn (rtx insn, int replace) |
| static void | update_eliminable_offsets () |
| static void | mark_not_eliminable (rtx dest, rtx x, data) |
| static void | verify_initial_elim_offsets () |
| static void | set_initial_elim_offsets () |
| static void | set_initial_label_offsets () |
| static void | set_offsets_for_label (rtx insn) |
| static void | update_eliminables (HARD_REG_SET *pset) |
| static void | init_elim_table () |
| static void | spill_hard_reg (unsigned int regno, int cant_eliminate) |
| static void | ior_hard_reg_set (HARD_REG_SET *set1, HARD_REG_SET *set2) |
| static int | finish_spills (int global) |
| static void | scan_paradoxical_subregs (rtx x) |
| static void | reload_as_needed (int live_known) |
| static void | forget_old_reloads_1 (rtx x, ignored, data) |
| static void | mark_reload_reg_in_use (unsigned int regno, int opnum, enum reload_type type, enum machine_mode mode) |
| static void | clear_reload_reg_in_use (unsigned int regno, int opnum, enum reload_type type, enum machine_mode mode) |
| static int | reload_reg_free_p (unsigned int regno, int opnum, enum reload_type type) |
| static int | reload_reg_reaches_end_p (unsigned int regno, int opnum, enum reload_type type) |
| int | reloads_conflict (int r1, int r2) |
| static int | reload_reg_free_for_value_p (int start_regno, int regno, int opnum, enum reload_type type, rtx value, rtx out, int reloadnum, int ignore_address_reloads) |
| static int | free_for_value_p (int regno, enum machine_mode mode, int opnum, enum reload_type type, rtx value, rtx out, int reloadnum, int ignore_address_reloads) |
| static int | conflicts_with_override (rtx x) |
| static void | failed_reload (rtx insn, int r) |
| static int | set_reload_reg (int i, int r) |
| static int | allocate_reload_reg (chain, int r, int last_reload) |
| static void | choose_reload_regs_init (struct insn_chain *chain, rtx *save_reload_reg_rtx) |
| static void | choose_reload_regs (struct insn_chain *chain) |
| void | deallocate_reload_reg (int r) |
| static void | merge_assigned_reloads (rtx insn) |
| static void | emit_input_reload_insns (struct insn_chain *chain, struct reload *rl, rtx old, int j) |
| static void | emit_output_reload_insns (struct insn_chain *chain, struct reload *rl, int j) |
| static void | do_input_reload (struct insn_chain *chain, struct reload *rl, int j) |
| static void | do_output_reload (struct insn_chain *chain, struct reload *rl, int j) |
| static void | emit_reload_insns (struct insn_chain *chain) |
| rtx | gen_reload (rtx out, rtx in, int opnum, enum reload_type type) |
| static void | delete_output_reload (rtx insn, int j, int last_reload_reg) |
| static void | delete_address_reloads (rtx dead_insn, rtx current_insn) |
| static void | delete_address_reloads_1 (rtx dead_insn, rtx x, rtx current_insn) |
| static rtx | inc_for_reload (rtx reloadreg, rtx in, rtx value, int inc_amount) |
| static int | reload_cse_noop_set_p (rtx set) |
| static void | reload_cse_simplify (rtx insn, rtx testreg) |
| static void | reload_cse_regs_1 (rtx first) |
| void | reload_cse_regs (rtx first) |
| static int | reload_cse_simplify_set (rtx set, rtx insn) |
| static int | reload_cse_simplify_operands (rtx insn, rtx testreg) |
| static void | reload_combine () |
| static void | reload_combine_note_store (rtx dst, rtx set, data) |
| static void | reload_combine_note_use (rtx *xp, rtx insn) |
| static HOST_WIDE_INT | sext_for_mode (enum machine_mode mode, HOST_WIDE_INT value) |
| static void | reload_cse_move2add (rtx first) |
| static void | move2add_note_store (rtx dst, rtx set, data) |
| static void | copy_eh_notes (rtx insn, rtx x) |
| void | fixup_abnormal_edges () |
Variables | |
| static rtx * | reg_last_reload_reg |
| static char * | reg_has_output_reload |
| static HARD_REG_SET | reg_is_output_reload |
| rtx * | reg_equiv_constant |
| rtx * | reg_equiv_memory_loc |
| rtx * | reg_equiv_address |
| rtx * | reg_equiv_mem |
| static unsigned int * | reg_max_ref_width |
| static rtx * | reg_equiv_init |
| static short * | reg_old_renumber |
| static int | reg_reloaded_contents [FIRST_PSEUDO_REGISTER] |
| static rtx | reg_reloaded_insn [FIRST_PSEUDO_REGISTER] |
| static HARD_REG_SET | reg_reloaded_valid |
| static HARD_REG_SET | reg_reloaded_dead |
| static int | n_spills |
| static rtx | spill_reg_rtx [FIRST_PSEUDO_REGISTER] |
| static rtx | spill_reg_store [FIRST_PSEUDO_REGISTER] |
| static rtx | spill_reg_stored_to [FIRST_PSEUDO_REGISTER] |
| static short | spill_reg_order [FIRST_PSEUDO_REGISTER] |
| static HARD_REG_SET | bad_spill_regs |
| static HARD_REG_SET | bad_spill_regs_global |
| static short | spill_regs [FIRST_PSEUDO_REGISTER] |
| static HARD_REG_SET * | pseudo_previous_regs |
| static HARD_REG_SET * | pseudo_forbidden_regs |
| static HARD_REG_SET | used_spill_regs |
| static int | last_spill_reg |
| static char | spill_indirect_levels |
| char | indirect_symref_ok |
| char | double_reg_address_ok |
| static rtx | spill_stack_slot [FIRST_PSEUDO_REGISTER] |
| static unsigned int | spill_stack_slot_width [FIRST_PSEUDO_REGISTER] |
| static regset_head | spilled_pseudos |
| static regset_head | pseudos_counted |
| int | reload_first_uid |
| int | caller_save_needed |
| int | reload_in_progress = 0 |
| enum insn_code | reload_in_optab [NUM_MACHINE_MODES] |
| enum insn_code | reload_out_optab [NUM_MACHINE_MODES] |
| struct obstack | reload_obstack |
| char * | reload_startobj |
| char * | reload_firstobj |
| static char * | reload_insn_firstobj |
| struct insn_chain * | reload_insn_chain |
| tree | current_function_decl |
| static struct insn_chain * | insns_need_reload |
| static struct elim_table * | reg_eliminate = 0 |
| static struct elim_table_1 | reg_eliminate_1 [] |
| int | num_not_at_initial_offset |
| static int | num_eliminable |
| static int | num_eliminable_invariants |
| static int | first_label_num |
| static char * | offsets_known_at |
| static int(* | offsets_at )[NUM_ELIMINABLE_REGS] |
| static int | num_labels |
| static struct insn_chain * | unused_insn_chains = 0 |
| static int | something_needs_elimination |
| int | something_needs_operands_changed |
| static int | failure |
| static int | spill_cost [FIRST_PSEUDO_REGISTER] |
| static int | spill_add_cost [FIRST_PSEUDO_REGISTER] |
| static short | reload_order [MAX_RELOADS] |
| static HARD_REG_SET | used_spill_regs_local |
| static HARD_REG_SET | reload_reg_unavailable |
| static HARD_REG_SET | reload_reg_used |
| static HARD_REG_SET | reload_reg_used_in_input_addr [MAX_RECOG_OPERANDS] |
| static HARD_REG_SET | reload_reg_used_in_inpaddr_addr [MAX_RECOG_OPERANDS] |
| static HARD_REG_SET | reload_reg_used_in_output_addr [MAX_RECOG_OPERANDS] |
| static HARD_REG_SET | reload_reg_used_in_outaddr_addr [MAX_RECOG_OPERANDS] |
| static HARD_REG_SET | reload_reg_used_in_input [MAX_RECOG_OPERANDS] |
| static HARD_REG_SET | reload_reg_used_in_output [MAX_RECOG_OPERANDS] |
| static HARD_REG_SET | reload_reg_used_in_op_addr |
| static HARD_REG_SET | reload_reg_used_in_op_addr_reload |
| static HARD_REG_SET | reload_reg_used_in_insn |
| static HARD_REG_SET | reload_reg_used_in_other_addr |
| static HARD_REG_SET | reload_reg_used_at_all |
| static HARD_REG_SET | reload_reg_used_for_inherit |
| static HARD_REG_SET | reg_used_in_insn |
| char | reload_inherited [MAX_RELOADS] |
| rtx | reload_inheritance_insn [MAX_RELOADS] |
| rtx | reload_override_in [MAX_RELOADS] |
| int | reload_spill_index [MAX_RELOADS] |
| static rtx | input_reload_insns [MAX_RECOG_OPERANDS] |
| static rtx | other_input_address_reload_insns = 0 |
| static rtx | other_input_reload_insns = 0 |
| static rtx | input_address_reload_insns [MAX_RECOG_OPERANDS] |
| static rtx | inpaddr_address_reload_insns [MAX_RECOG_OPERANDS] |
| static rtx | output_reload_insns [MAX_RECOG_OPERANDS] |
| static rtx | output_address_reload_insns [MAX_RECOG_OPERANDS] |
| static rtx | outaddr_address_reload_insns [MAX_RECOG_OPERANDS] |
| static rtx | operand_reload_insns = 0 |
| static rtx | other_operand_reload_insns = 0 |
| static rtx | other_output_reload_insns [MAX_RECOG_OPERANDS] |
| static rtx | new_spill_reg_store [FIRST_PSEUDO_REGISTER] |
| static HARD_REG_SET | reg_reloaded_died |
| type { | |
| struct reg_use reg_use [RELOAD_COMBINE_MAX_USES] | |
| int use_index | |
| rtx offset | |
| int store_ruid | |
| int use_ruid | |
| } | reg_state [FIRST_PSEUDO_REGISTER] |
| static int | reload_combine_ruid |
| static int | reg_set_luid [FIRST_PSEUDO_REGISTER] |
| static HOST_WIDE_INT | reg_offset [FIRST_PSEUDO_REGISTER] |
| static int | reg_base_reg [FIRST_PSEUDO_REGISTER] |
| static enum machine_mode | reg_mode [FIRST_PSEUDO_REGISTER] |
| static int | move2add_luid |
| static int | move2add_last_label_luid |
| #define LABEL_LIVE | ( | LABEL | ) | (label_live[CODE_LABEL_NUMBER (LABEL) - min_labelno]) |
| #define MODES_OK_FOR_MOVE2ADD | ( | OUTMODE, | |||
| INMODE | ) |
Value:
(GET_MODE_SIZE (OUTMODE) == GET_MODE_SIZE (INMODE) \ || (GET_MODE_SIZE (OUTMODE) <= GET_MODE_SIZE (INMODE) \ && TRULY_NOOP_TRUNCATION (GET_MODE_BITSIZE (OUTMODE), \ GET_MODE_BITSIZE (INMODE))))
Definition at line 9101 of file reload1.c.
Referenced by move2add_note_store(), and reload_cse_move2add().
| #define NUM_ELIMINABLE_REGS ARRAY_SIZE (reg_eliminate_1) |
Definition at line 340 of file reload1.c.
Referenced by check_eliminable_occurrences(), eliminate_regs(), eliminate_regs_1(), eliminate_regs_in_insn(), elimination_effects(), init_elim_table(), mark_not_eliminable(), reload(), set_initial_elim_offsets(), set_label_offsets(), set_offsets_for_label(), update_eliminable_offsets(), update_eliminables(), and verify_initial_elim_offsets().
| #define RELOAD_COMBINE_MAX_USES 6 |
Definition at line 8552 of file reload1.c.
Referenced by reload_combine(), reload_combine_note_store(), and reload_combine_note_use().
| static int allocate_reload_reg | ( | chain | , | |
| int | r, | |||
| int | last_reload | |||
| ) | [static] |
Definition at line 5125 of file reload1.c.
References count, free_for_value_p(), HARD_REGNO_MODE_OK, HARD_REGNO_NREGS, in, int, last_spill_reg, mode, n_spills, nr, out, reg_class_contents, reload_reg_free_p(), rld, set_reload_reg(), spill_reg_order, spill_regs, and TEST_HARD_REG_BIT.
Referenced by choose_reload_regs().
| static void alter_reg | ( | int | i, | |
| int | from_reg | |||
| ) | [static] |
Definition at line 1952 of file reload1.c.
References adjust_address_nv, assign_stack_local(), BITS_PER_UNIT, BYTES_BIG_ENDIAN, copy_rtx(), DECL_RTL_IF_SET, GET_CODE, GET_MODE, GET_MODE_SIZE, MAX, MEM_ALIAS_SET, mode, mode_for_size(), MODE_INT, new_alias_set(), PSEUDO_REGNO_BYTES, REG, reg_equiv_constant, reg_equiv_memory_loc, reg_max_ref_width, REG_N_REFS, reg_renumber, REGNO, REGNO_DECL, regno_reg_rtx, RTX_UNCHANGING_P, set_mem_alias_set(), set_mem_expr(), spill_stack_slot, spill_stack_slot_width, and x.
Referenced by delete_output_reload(), eliminate_regs_1(), emit_input_reload_insns(), finish_spills(), and reload().
| static void calculate_needs_all_insns | ( | int | global | ) | [static] |
Definition at line 1431 of file reload1.c.
References copy_reloads(), delete_insn(), eliminate_regs_in_insn(), find_reloads(), FIRST_PSEUDO_REGISTER, flag_expensive_optimizations, GET_CODE, insn, INSN_CODE, INSN_P, insns_need_reload, n_reloads, next, num_eliminable, num_eliminable_invariants, obstack_alloc, obstack_free, PATTERN, REG, reg_equiv_constant, REG_NOTES, reg_renumber, REGNO, reload_insn_chain, reload_insn_firstobj, reload_obstack, SET_DEST, set_label_offsets(), SET_SRC, single_set, spill_indirect_levels, spill_reg_order, and update_eliminable_offsets().
Referenced by reload().
Definition at line 2871 of file reload1.c.
References elim_table::can_eliminate, FIRST_PSEUDO_REGISTER, elim_table::from_rtx, GET_CODE, GET_RTX_FORMAT, GET_RTX_LENGTH, i, NUM_ELIMINABLE_REGS, REG, REGNO, XEXP, XVECEXP, and XVECLEN.
Referenced by check_eliminable_occurrences(), and eliminate_regs_in_insn().
Definition at line 5310 of file reload1.c.
References abort, allocate_reload_reg(), CANNOT_CHANGE_MODE_CLASS, choose_reload_regs_init(), clear_reload_reg_in_use(), const0_rtx, CONSTANT_P, failed_reload(), find_equiv_reg(), FIRST_PSEUDO_REGISTER, flag_expensive_optimizations, frame_pointer_needed, free_for_value_p(), gen_rtx_REG(), GET_CODE, GET_MODE, GET_MODE_CLASS, GET_MODE_SIZE, HARD_FRAME_POINTER_REGNUM, HARD_REGNO_MODE_OK, HARD_REGNO_NREGS, i1, in, insn, int, mark_reload_reg_in_use(), MAX, MAX_RELOADS, MEM, MEMORY_MOVE_COST, mode, n_earlyclobbers, n_reloads, n_spills, NO_REGS, nr, nregs, NULL, NULL_RTX, optimize, out, PLUS, qsort(), r, REG, REG_CANNOT_CHANGE_MODE_P, reg_class_contents, reg_class_superunion, reg_classes_intersect_p(), reg_has_output_reload, reg_is_output_reload, reg_last_reload_reg, reg_overlap_mentioned_for_reload_p(), reg_reloaded_contents, reg_reloaded_dead, reg_reloaded_insn, reg_reloaded_valid, REGISTER_MOVE_COST, REGNO, regno_clobbered_p(), REGNO_REG_CLASS, reload_earlyclobbers, RELOAD_FOR_INPADDR_ADDRESS, RELOAD_FOR_INPUT, RELOAD_FOR_INPUT_ADDRESS, RELOAD_FOR_INSN, RELOAD_FOR_OPADDR_ADDR, RELOAD_FOR_OPERAND_ADDRESS, RELOAD_FOR_OTHER_ADDRESS, RELOAD_FOR_OUTPUT, RELOAD_OTHER, reload_reg_class_lower(), remove_address_replacements(), rld, rtx_equal_p(), s, SECONDARY_INPUT_RELOAD_CLASS, SECONDARY_MEMORY_NEEDED, SET_DEST, SET_HARD_REG_BIT, set_reload_reg(), SET_SRC, single_set, smallest_mode_for_size(), spill_reg_order, spill_reg_store, spill_regs, SUBREG_BYTE, SUBREG_REG, subreg_regno(), subreg_regno_offset(), TEST_HARD_REG_BIT, true_regnum(), and XEXP.
Referenced by reload_as_needed().
| static void choose_reload_regs_init | ( | struct insn_chain * | chain, | |
| rtx * | save_reload_reg_rtx | |||
| ) | [static] |
Definition at line 5249 of file reload1.c.
References CLEAR_HARD_REG_SET, COMPL_HARD_REG_SET, compute_use_by_pseudos(), HARD_REG_SET, IOR_HARD_REG_SET, mark_reload_reg_in_use(), MAX_RELOADS, memset, mode, n_reloads, REG_SET_TO_HARD_REG_SET, REGNO, reload_n_operands, rld, and tmp.
Referenced by choose_reload_regs().
| static void clear_reload_reg_in_use | ( | unsigned int | regno, | |
| int | opnum, | |||
| enum reload_type | type, | |||
| enum machine_mode | mode | |||
| ) | [static] |
Definition at line 4262 of file reload1.c.
References abort, CLEAR_HARD_REG_BIT, HARD_REG_SET, HARD_REGNO_NREGS, n_reloads, nregs, r, RELOAD_FOR_INPADDR_ADDRESS, RELOAD_FOR_INPUT, RELOAD_FOR_INPUT_ADDRESS, RELOAD_FOR_INSN, RELOAD_FOR_OPADDR_ADDR, RELOAD_FOR_OPERAND_ADDRESS, RELOAD_FOR_OTHER_ADDRESS, RELOAD_FOR_OUTADDR_ADDRESS, RELOAD_FOR_OUTPUT, RELOAD_FOR_OUTPUT_ADDRESS, RELOAD_OTHER, rld, and true_regnum().
Referenced by choose_reload_regs(), and deallocate_reload_reg().
Definition at line 552 of file reload1.c.
References abort, EXECUTE_IF_SET_IN_REG_SET, FIRST_PSEUDO_REGISTER, HARD_REGNO_NREGS, nregs, PSEUDO_REGNO_MODE, r, reg_renumber, reload_completed, and SET_HARD_REG_BIT.
Referenced by choose_reload_regs_init(), finish_spills(), and reload_combine().
| static int conflicts_with_override | ( | rtx | x | ) | [static] |
Definition at line 5032 of file reload1.c.
References n_reloads, and reg_overlap_mentioned_p().
Referenced by emit_input_reload_insns().
Definition at line 9444 of file reload1.c.
References find_reg_note(), gen_rtx_EXPR_LIST, may_trap_p(), NEXT_INSN, NULL_RTX, PATTERN, REG_EH_REGION, REG_NOTES, and XEXP.
Referenced by emit_input_reload_insns(), and emit_output_reload_insns().
Definition at line 1416 of file reload1.c.
References memcpy, n_reloads, obstack_alloc, reload(), reload_insn_firstobj, reload_obstack, and rld.
Referenced by calculate_needs_all_insns().
| static void count_pseudo | ( | int | reg | ) | [static] |
Definition at line 1591 of file reload1.c.
References abort, HARD_REGNO_NREGS, nregs, PSEUDO_REGNO_MODE, pseudos_counted, r, REG_FREQ, reg_renumber, REGNO_REG_SET_P, SET_REGNO_REG_SET, and spilled_pseudos.
Referenced by order_regs_for_reload().
| static void count_spilled_pseudo | ( | int | spilled, | |
| int | spilled_nregs, | |||
| int | reg | |||
| ) | [static] |
Definition at line 1669 of file reload1.c.
References HARD_REGNO_NREGS, nregs, PSEUDO_REGNO_MODE, r, REG_FREQ, reg_renumber, REGNO_REG_SET_P, SET_REGNO_REG_SET, and spilled_pseudos.
Referenced by find_reg().
| void deallocate_reload_reg | ( | int | r | ) |
Definition at line 7771 of file reload1.c.
References delete_address_reloads_1(), delete_related_insns(), dst, GET_CODE, INTVAL, MEM, next, NEXT_INSN, PLUS, prev, PREV_INSN, rtx_equal_p(), SET_DEST, SET_SRC, single_set, and XEXP.
Referenced by delete_output_reload().
Definition at line 7808 of file reload1.c.
References delete_insn(), dst, GET_CODE, GET_RTX_CLASS, GET_RTX_FORMAT, GET_RTX_LENGTH, i2, in, INSN_P, INSN_UID, n_reloads, NEXT_INSN, PATTERN, prev, PREV_INSN, REG, reg_referenced_p(), reg_reloaded_contents, reg_set_p(), REGNO, reload_first_uid, rld, rtx_equal_p(), SET_DEST, SET_SRC, single_set, spill_reg_order, XEXP, XVECEXP, and XVECLEN.
Referenced by delete_address_reloads(), and delete_address_reloads_1().
Definition at line 1871 of file reload1.c.
References c, delete_insn(), insn, next, and reload_insn_chain.
Referenced by reload().
Definition at line 1923 of file reload1.c.
References find_regno_note(), GET_CODE, NOTE_INSN_DELETED, NOTE_LINE_NUMBER, NOTE_SOURCE_FILE, PATTERN, prev, prev_real_insn(), PUT_CODE, REG, REG_DEAD, reg_mentioned_p(), REGNO, SET, SET_DEST, SET_SRC, and side_effects_p().
Referenced by delete_dead_insn(), eliminate_regs_in_insn(), and reload().
Definition at line 7601 of file reload1.c.
References alter_reg(), count_occurrences(), delete_address_reloads(), delete_insn(), eliminate_regs(), find_regno_note(), GET_CODE, GET_MODE, HARD_REGNO_NREGS, i1, i2, in, INSN_DELETED_P, MEM, n_occurrences, n_reloads, NEXT_INSN, NULL_RTX, out, PATTERN, PREV_INSN, REG_BASIC_BLOCK, REG_DEAD, reg_equiv_memory_loc, reg_mentioned_p(), REG_N_DEATHS, REG_N_SETS, reg_renumber, REGNO, rld, rtx_equal_p(), SET_DEST, single_set, spill_reg_store, spill_reg_stored_to, SUBREG_REG, USE, and XEXP.
Referenced by do_input_reload(), do_output_reload(), and emit_input_reload_insns().
Definition at line 6868 of file reload1.c.
References count_occurrences(), dead_or_set_p(), delete_output_reload(), emit_input_reload_insns(), FIRST_PSEUDO_REGISTER, GET_CODE, insn, MEM, optimize, PATTERN, REG, reg_reloaded_contents, reg_reloaded_valid, REGNO, regno_reg_rtx, rld, rtx_equal_p(), spill_reg_store, spill_reg_stored_to, and TEST_HARD_REG_BIT.
Referenced by emit_reload_insns().
Definition at line 6931 of file reload1.c.
References abort, delete_output_reload(), emit_output_reload_insns(), find_reg_note(), FIRST_PSEUDO_REGISTER, gen_lowpart_common(), GET_CODE, GET_MODE, insn, optimize, REG, reg_last_reload_reg, reg_reloaded_contents, reg_reloaded_valid, REG_UNUSED, REGNO, rld, rtx_equal_p(), spill_reg_store, spill_reg_stored_to, SUBREG_REG, TEST_HARD_REG_BIT, and XEXP.
Referenced by emit_reload_insns().
| rtx eliminate_regs | ( | rtx | x, | |
| enum machine_mode | mem_mode, | |||
| rtx | insn | |||
| ) |
Definition at line 2291 of file reload1.c.
Referenced by delete_output_reload(), eliminate_regs(), eliminate_regs_in_insn(), find_reloads_address(), m68hc11_register_indirect_p(), m68hc11_small_indexed_indirect_p(), make_memloc(), reg_or_some_mem_operand(), reload(), reload_as_needed(), replace_pseudos_in(), replace_pseudos_in_call_usage(), and vt_add_function_parameters().
| static int eliminate_regs_in_insn | ( | rtx | insn, | |
| int | replace | |||
| ) | [static] |
Definition at line 2921 of file reload1.c.
References abort, add_clobbers(), apply_change_group(), asm_noperands(), base, elim_table::can_eliminate, check_eliminable_occurrences(), copy_insn(), copy_insn_1(), delete_dead_insn(), eliminate_regs(), elimination_effects(), emit_insn_after(), extract_insn(), FIRST_PSEUDO_REGISTER, for(), FRAME_POINTER_REGNUM, elim_table::from, elim_table::from_rtx, GEN_INT, gen_rtx_CLOBBER, gen_rtx_PARALLEL, gen_rtx_SET, GET_CODE, HARD_FRAME_POINTER_REGNUM, i, INSN_CODE, INTVAL, MAX_RECOG_OPERANDS, MEM, NULL_RTX, NUM_ELIMINABLE_REGS, elim_table::offset, offset, OP_IN, PATTERN, PLUS, plus_constant, prev_insn, prev_nonnote_insn(), elim_table::previous_offset, recog(), recog_memoized, elim_table::ref_outside_mem, REG, REG_NOTES, REGNO, rtvec_alloc(), rtx_equal_p(), SET, SET_DEST, SET_SRC, single_set, src, elim_table::to, elim_table::to_rtx, USE, val, validate_change(), vec, and XEXP.
Referenced by calculate_needs_all_insns(), and reload_as_needed().
| static void elimination_effects | ( | rtx | x, | |
| enum machine_mode | mem_mode | |||
| ) | [static] |
Definition at line 2675 of file reload1.c.
References abort, ABS, ADDRESSOF, elim_table::can_eliminate, CONST, CONSTANT_P, FIRST_PSEUDO_REGISTER, FIX, FLOAT, elim_table::from_rtx, function_invariant_p(), GET_CODE, GET_MODE, GET_MODE_SIZE, GET_RTX_FORMAT, GET_RTX_LENGTH, hard_frame_pointer_rtx, i, INTVAL, MEM, NOT, NUM_ELIMINABLE_REGS, elim_table::offset, PC, PLUS, PUSH_ROUNDING, elim_table::ref_outside_mem, REG, reg_equiv_constant, reg_equiv_memory_loc, reg_renumber, REGNO, RETURN, SET, SET_DEST, SET_SRC, SIGN_EXTEND, size, src, stack_pointer_rtx, SUBREG_REG, elim_table::to_rtx, TRUNCATE, USE, XEXP, XVECEXP, and XVECLEN.
Referenced by eliminate_regs_in_insn(), and elimination_effects().
| static void emit_input_reload_insns | ( | struct insn_chain * | chain, | |
| struct reload * | rl, | |||
| rtx | old, | |||
| int | j | |||
| ) | [static] |
Definition at line 6163 of file reload1.c.
References abort, ALL_REGS, alter_reg(), asm_noperands(), CODE_FOR_nothing, conflicts_with_override(), const0_rtx, CONSTANT_P, constrain_operands(), copy_eh_notes(), count_occurrences(), dead_or_set_p(), delete_output_reload(), emit_insn(), end_sequence(), extract_insn(), find_equiv_reg(), FIRST_PSEUDO_REGISTER, flag_non_call_exceptions, free_for_value_p(), GEN_FCN, gen_lowpart_SUBREG(), gen_reload(), gen_rtx_REG(), GET_CODE, get_insns(), GET_MODE, HARD_REGNO_MODE_OK, inc_for_reload(), insn, int, MEM, MEMORY_MOVE_COST, mode, new_mode(), NO_REGS, NULL, num_not_at_initial_offset, optimize, PATTERN, PREFERRED_RELOAD_CLASS, PREV_INSN, push_to_sequence(), REG, reg_class_contents, reg_equiv_constant, reg_equiv_mem, reg_equiv_memory_loc, REG_N_DEATHS, REG_N_SETS, reg_renumber, REGISTER_MOVE_COST, REGNO, REGNO_REG_CLASS, RELOAD_FOR_INPADDR_ADDRESS, RELOAD_FOR_INPUT, RELOAD_FOR_INPUT_ADDRESS, RELOAD_FOR_OPADDR_ADDR, RELOAD_FOR_OPERAND_ADDRESS, RELOAD_FOR_OTHER_ADDRESS, RELOAD_FOR_OUTADDR_ADDRESS, RELOAD_FOR_OUTPUT_ADDRESS, reload_in_optab, RELOAD_OTHER, rld, rtx_equal_p(), SECONDARY_INPUT_RELOAD_CLASS, SECONDARY_MEMORY_NEEDED, SET, SET_DEST, SET_SRC, special(), spill_reg_store, spill_reg_stored_to, SUBREG_REG, TEST_HARD_REG_BIT, tmp, true_regnum(), where, and XEXP.
Referenced by do_input_reload().
| static void emit_output_reload_insns | ( | struct insn_chain * | chain, | |
| struct reload * | rl, | |||
| int | j | |||
| ) | [static] |
Definition at line 6654 of file reload1.c.
References asm_noperands(), CODE_FOR_nothing, copy_eh_notes(), emit_insn(), end_sequence(), error_for_asm(), fatal_insn, find_regno_note(), FIRST_PSEUDO_REGISTER, flag_expensive_optimizations, flag_non_call_exceptions, forget_old_reloads_1(), GEN_FCN, gen_lowpart_common(), gen_reload(), gen_rtx_REG(), GET_CODE, get_insns(), GET_MODE, GET_MODE_SIZE, insn, INSN_P, mode, next, NEXT_INSN, NO_REGS, note_stores(), NULL, NULL_RTX, p, PATTERN, push_to_sequence(), REG, REG_DEAD, reg_equiv_mem, reg_is_output_reload, reg_mentioned_p(), REGNO, regno_clobbered_p(), RELOAD_OTHER, rld, rtx_equal_p(), s, SECONDARY_OUTPUT_RELOAD_CLASS, SET_DEST, SET_HARD_REG_BIT, SET_SRC, single_set, special(), src, start_sequence(), SUBREG_REG, and word_mode.
Referenced by do_output_reload().
Definition at line 7003 of file reload1.c.
References CLEAR_HARD_REG_BIT, CLEAR_HARD_REG_SET, debug_reload_to_stream(), do_input_reload(), do_output_reload(), emit_insn_after(), emit_insn_before(), find_regno_note(), FIRST_PSEUDO_REGISTER, fprintf(), GET_CODE, GET_MODE, HARD_REGNO_NREGS, in, insn, INSN_UID, IOR_HARD_REG_SET, MEM, mode, n_reloads, nr, NULL_RTX, out, PATTERN, r, REG, REG_DEAD, reg_has_output_reload, reg_is_output_reload, reg_last_reload_reg, reg_reloaded_contents, reg_reloaded_dead, reg_reloaded_insn, reg_reloaded_valid, reg_set_p(), REGNO, regno_reg_rtx, reload_n_operands, reload_reg_reaches_end_p(), rld, rtl_dump_file, SET_DEST, SET_HARD_REG_BIT, SET_SRC, single_set, spill_reg_store, spill_reg_stored_to, SUBREG_REG, x, and XEXP.
Referenced by reload_as_needed().
Definition at line 5046 of file reload1.c.
References asm_noperands(), error_for_asm(), fatal_insn, PATTERN, and rld.
Referenced by choose_reload_regs().
| static int find_reg | ( | struct insn_chain * | chain, | |
| int | order | |||
| ) | [static] |
Definition at line 1689 of file reload1.c.
References bad_spill_regs, bad_spill_regs_global, call_used_regs, CLEAR_HARD_REG_SET, COPY_HARD_REG_SET, count_spilled_pseudo(), EXECUTE_IF_SET_IN_REG_SET, FIRST_PSEUDO_REGISTER, fprintf(), GET_CODE, HARD_REG_SET, HARD_REGNO_MODE_OK, HARD_REGNO_NREGS, i, INT_MAX, IOR_COMPL_HARD_REG_SET, IOR_HARD_REG_SET, ok(), REG, REG_ALLOC_ORDER, reg_class_contents, REGNO, reload(), reloads_conflict(), rld, rtl_dump_file, SET_HARD_REG_BIT, and TEST_HARD_REG_BIT.
Definition at line 1797 of file reload1.c.
References CLEAR_HARD_REG_SET, COPY_HARD_REG_SET, find_reg(), fprintf(), GET_MODE, HARD_REGNO_NREGS, i, in, INSN_UID, IOR_HARD_REG_SET, memcpy, n_reloads, order_regs_for_reload(), out, qsort(), r, REGNO, reload(), reload_reg_class_lower(), rld, rtl_dump_file, spill_failure(), and used_spill_regs.
Referenced by select_reload_regs().
| static int finish_spills | ( | int | global | ) | [static] |
Definition at line 3605 of file reload1.c.
References abort, EXECUTE_IF_SET_IN_REG_SET, FIRST_PSEUDO_REGISTER, HARD_REG_SET, i, insns_need_reload, ior_hard_reg_set(), max_regno, memset, n_spills, num_eliminable, pseudo_forbidden_regs, pseudo_previous_regs, reg_renumber, regs_ever_live, SET_HARD_REG_BIT, spill_reg_order, spill_regs, spilled_pseudos, TEST_HARD_REG_BIT, and used_spill_regs.
Referenced by reload().
Definition at line 4098 of file reload1.c.
References CLEAR_HARD_REG_BIT, FIRST_PSEUDO_REGISTER, GET_CODE, GET_MODE, HARD_REGNO_NREGS, n_reloads, nr, REG, reg_has_output_reload, reg_is_output_reload, reg_last_reload_reg, reg_reloaded_valid, REGNO, spill_reg_store, SUBREG_REG, and TEST_HARD_REG_BIT.
Referenced by emit_output_reload_insns(), and reload_as_needed().
| static int free_for_value_p | ( | int | regno, | |
| enum machine_mode | mode, | |||
| int | opnum, | |||
| enum reload_type | type, | |||
| rtx | value, | |||
| rtx | out, | |||
| int | reloadnum, | |||
| int | ignore_address_reloads | |||
| ) | [static] |
Definition at line 5009 of file reload1.c.
References HARD_REGNO_NREGS, nregs, and reload_reg_free_for_value_p().
Referenced by allocate_reload_reg(), choose_reload_regs(), and emit_input_reload_insns().
| static rtx gen_reload | ( | rtx | out, | |
| rtx | in, | |||
| int | opnum, | |||
| enum reload_type | type | |||
| ) |
Definition at line 7377 of file reload1.c.
Referenced by emit_input_reload_insns(), emit_output_reload_insns(), and gen_reload().
Definition at line 7927 of file reload1.c.
References add_insn(), constrain_operands(), delete_insns_since(), emit_insn(), extract_insn(), gen_add2_insn(), GEN_INT, gen_move_insn(), gen_rtx_PLUS, gen_rtx_SET, GET_CODE, get_last_insn(), GET_MODE, last, recog_memoized, REG, reg_last_reload_reg, REGNO, store(), and XEXP.
Referenced by emit_input_reload_insns().
Definition at line 3497 of file reload1.c.
References elim_table::can_eliminate, CAN_ELIMINATE, elim_table::can_eliminate_previous, current_function_calls_alloca, EXIT_IGNORE_STACK, flag_omit_frame_pointer, frame_pointer_needed, FRAME_POINTER_REQUIRED, elim_table::from, elim_table_1::from, elim_table::from_rtx, gen_rtx_REG(), num_eliminable, NUM_ELIMINABLE_REGS, Pmode, reg_eliminate_1, STACK_POINTER_REGNUM, elim_table_1::to, elim_table::to, elim_table::to_rtx, and xcalloc().
Referenced by reload().
| static void ior_hard_reg_set | ( | HARD_REG_SET * | set1, | |
| HARD_REG_SET * | set2 | |||
| ) | [static] |
Definition at line 3593 of file reload1.c.
References IOR_HARD_REG_SET.
Referenced by finish_spills().
| void mark_home_live | ( | int | regno | ) |
Definition at line 3298 of file reload1.c.
References elim_table::can_eliminate, elim_table::can_eliminate_previous, GET_CODE, hard_frame_pointer_rtx, i, num_eliminable, NUM_ELIMINABLE_REGS, PLUS, SET, SET_SRC, SUBREG_REG, elim_table::to_rtx, and XEXP.
Referenced by reload().
| static void mark_reload_reg_in_use | ( | unsigned int | regno, | |
| int | opnum, | |||
| enum reload_type | type, | |||
| enum machine_mode | mode | |||
| ) | [static] |
Definition at line 4197 of file reload1.c.
References HARD_REGNO_NREGS, nregs, RELOAD_FOR_INPADDR_ADDRESS, RELOAD_FOR_INPUT, RELOAD_FOR_INPUT_ADDRESS, RELOAD_FOR_INSN, RELOAD_FOR_OPADDR_ADDR, RELOAD_FOR_OPERAND_ADDRESS, RELOAD_FOR_OTHER_ADDRESS, RELOAD_FOR_OUTADDR_ADDRESS, RELOAD_FOR_OUTPUT, RELOAD_FOR_OUTPUT_ADDRESS, RELOAD_OTHER, and SET_HARD_REG_BIT.
Referenced by choose_reload_regs(), choose_reload_regs_init(), and set_reload_reg().
Definition at line 1305 of file reload1.c.
References AND_HARD_REG_SET, asm_noperands(), c, CLEAR_HARD_REG_SET, CLEAR_REGNO_REG_SET, decode_asm_operands(), EXTRA_ADDRESS_CONSTRAINT, FIRST_PSEUDO_REGISTER, GENERAL_REGS, GET_CODE, HARD_REG_SET, i, INSN_P, int, IOR_HARD_REG_SET, MAX_RECOG_OPERANDS, MODE_BASE_REG_CLASS, NO_REGS, p, PATTERN, reg_class_contents, REG_CLASS_FROM_LETTER, reg_class_subunion, REGNO, reload_insn_chain, SET_HARD_REG_BIT, STACK_REG_P, TEST_HARD_REG_BIT, XEXP, XVECEXP, and XVECLEN.
Referenced by reload().
Definition at line 6022 of file reload1.c.
References abort, in, MAX_RECOG_OPERANDS, n_reloads, out, reg_overlap_mentioned_for_reload_p(), reg_overlap_mentioned_p(), reg_set_p(), RELOAD_FOR_INPADDR_ADDRESS, RELOAD_FOR_INPUT, RELOAD_FOR_INPUT_ADDRESS, RELOAD_FOR_OTHER_ADDRESS, RELOAD_OTHER, rld, rtx_equal_p(), and transfer_replacements().
Referenced by reload_as_needed().
Definition at line 9271 of file reload1.c.
References GET_CODE, GET_MODE, HARD_REGNO_NREGS, HOST_WIDE_INT, INTVAL, invalidate(), MEM, mode, MODES_OK_FOR_MOVE2ADD, offset, PLUS, REG, REGNO, SET, SET_DEST, SET_SRC, sext_for_mode(), src, SUBREG_BYTE, SUBREG_REG, subreg_regno_offset(), and XEXP.
Referenced by reload_cse_move2add().
Definition at line 525 of file reload1.c.
References c, INIT_REG_SET, obstack_alloc, and reload_obstack.
Referenced by build_insn_chain(), and insert_one_insn().
Definition at line 1618 of file reload1.c.
References bad_spill_regs, CLEAR_REG_SET, COPY_HARD_REG_SET, count_pseudo(), EXECUTE_IF_SET_IN_REG_SET, FIRST_PSEUDO_REGISTER, fixed_reg_set, HARD_REG_SET, i, IOR_HARD_REG_SET, memset, pseudos_counted, and REG_SET_TO_HARD_REG_SET.
Referenced by find_reload_regs().
| static HOST_WIDE_INT sext_for_mode PARAMS | ( | (enum machine_mode, HOST_WIDE_INT) | ) | [static] |
| static void emit_output_reload_insns PARAMS | ( | (struct insn_chain *, struct reload *, int) | ) | [static] |
| static void emit_input_reload_insns PARAMS | ( | (struct insn_chain *, struct reload *, rtx, int) | ) | [static] |
| static int allocate_reload_reg PARAMS | ( | (struct insn_chain *, int, int) | ) | [static] |
| static int free_for_value_p PARAMS | ( | (int, enum machine_mode, int, enum reload_type, rtx, rtx, int, int) | ) | [static] |
| static int reload_reg_free_for_value_p PARAMS | ( | (int, int, int, enum reload_type, rtx, rtx, int, int) | ) | [static] |
| static int reload_reg_free_p PARAMS | ( | (unsigned int, int, enum reload_type) | ) | [static] |
| static void mark_reload_reg_in_use PARAMS | ( | (unsigned int, int, enum reload_type, enum machine_mode) | ) | [static] |
| static void ior_hard_reg_set PARAMS | ( | (HARD_REG_SET *, HARD_REG_SET *) | ) | [static] |
| static void spill_hard_reg PARAMS | ( | (unsigned int, int) | ) | [static] |
| static void update_eliminables PARAMS | ( | (HARD_REG_SET *) | ) | [static] |
| static int eliminate_regs_in_insn PARAMS | ( | (rtx, int) | ) | [static] |
| static void elimination_effects PARAMS | ( | (rtx, enum machine_mode) | ) | [static] |
| static void alter_reg PARAMS | ( | (int, int) | ) | [static] |
| static void count_spilled_pseudo PARAMS | ( | (int, int, int) | ) | [static] |
| static int find_reg PARAMS | ( | (struct insn_chain *, int) | ) | [static] |
| static void calculate_needs_all_insns PARAMS | ( | (int) | ) | [static] |
Definition at line 77 of file cplus-dem.c.
| static void replace_pseudos_in_call_usage PARAMS | ( | (rtx *, enum machine_mode, rtx) | ) | [static] |
| int reload | ( | rtx | first, | |
| int | global | |||
| ) |
Definition at line 670 of file reload1.c.
Referenced by copy_reloads(), find_reg(), find_reload_regs(), global_alloc(), rest_of_compilation(), rest_of_handle_global_alloc(), rest_of_handle_old_regalloc(), s_lno_debug(), CG_BROWSER::Sdebug(), and WB_BROWSER::Sdebug().
| static void reload_as_needed | ( | int | live_known | ) | [static] |
Definition at line 3819 of file reload1.c.
References AND_COMPL_HARD_REG_SET, asm_noperands(), call_used_reg_set, choose_reload_regs(), CLEAR_HARD_REG_SET, constrain_operands(), copy_rtx(), count_occurrences(), delete_insn(), eliminate_regs(), eliminate_regs_in_insn(), emit_reload_insns(), error_for_asm(), extract_insn(), find_reloads(), forget_old_reloads_1(), free(), gen_rtx_EXPR_LIST, GET_CODE, GET_MODE, insn, INSN_P, MEM, memset, merge_assigned_reloads(), mode, n, n_reloads, next, NEXT_INSN, note_stores(), NULL, NULL_RTX, num_eliminable, num_eliminable_invariants, out, p, PATTERN, prev, PREV_INSN, recog_memoized, reg_has_output_reload, REG_INC, reg_is_output_reload, reg_last_reload_reg, REG_NOTE_KIND, REG_NOTES, reg_reloaded_contents, reg_reloaded_valid, reg_set_p(), REGNO, reload_insn_chain, rld, SET_HARD_REG_BIT, set_initial_elim_offsets(), set_offsets_for_label(), SMALL_REGISTER_CLASSES, spill_indirect_levels, spill_reg_order, spill_reg_rtx, spill_reg_store, subst_reloads(), TEST_HARD_REG_BIT, update_eliminable_offsets(), USE, validate_replace_rtx(), x, xcalloc(), XEXP, and xmalloc().
Referenced by reload().
Definition at line 8587 of file reload1.c.
References apply_change_group(), base, CALL_INSN_FUNCTION_USAGE, call_used_regs, CLEAR_HARD_REG_SET, compute_use_by_pseudos(), condjump_in_parallel_p(), condjump_p(), const0_rtx, COPY_HARD_REG_SET, copy_rtx(), delete_insn(), double_reg_address_ok, FIRST_PSEUDO_REGISTER, fixed_regs, FOR_EACH_BB_REVERSE, free(), GEN_INT, gen_rtx_PLUS, gen_rtx_REG(), GET_CODE, get_first_label_num(), get_last_insn(), GET_MODE, basic_block_def::global_live_at_start, HARD_REG_SET, HARD_REGNO_NREGS, basic_block_def::head, INDEX_REG_CLASS, reg_use::insn, INSN_P, INTVAL, IOR_HARD_REG_SET, JUMP_LABEL, LABEL_LIVE, max_label_num(), min_labelno, NO_REGS, note_stores(), NULL, NULL_RTX, offset, PATTERN, PLUS, prev, PREV_INSN, prev_nonnote_insn(), r, REG, reg_class_contents, REG_EQUAL, REG_EQUIV, REG_INC, REG_NOTE_KIND, REG_NOTES, REG_SET_TO_HARD_REG_SET, reg_state, REGNO, RELOAD_COMBINE_MAX_USES, reload_combine_note_store(), reload_combine_note_use(), RETURN, rtx_equal_p(), SET_DEST, SET_SRC, single_set, store_ruid, TEST_HARD_REG_BIT, use_index, use_ruid, reg_use::usep, validate_change(), XEXP, and xmalloc().
Referenced by reload_cse_regs().
Definition at line 8880 of file reload1.c.
References GET_CODE, GET_MODE, HARD_REGNO_NREGS, mode, REG, reg_state, REGNO, RELOAD_COMBINE_MAX_USES, SET, SET_DEST, SUBREG_BYTE, SUBREG_REG, and subreg_regno_offset().
Referenced by reload_combine().
Definition at line 8930 of file reload1.c.
References abort, const0_rtx, FIRST_PSEUDO_REGISTER, GET_CODE, GET_MODE, GET_RTX_FORMAT, GET_RTX_LENGTH, HARD_REGNO_NREGS, nregs, offset, PLUS, REG, REG_FUNCTION_VALUE_P, reg_state, REGNO, RELOAD_COMBINE_MAX_USES, rtx_equal_p(), SET, SET_DEST, SET_SRC, USE, use_index, x, XEXP, XVECEXP, and XVECLEN.
Referenced by reload_combine(), and reload_combine_note_use().
Definition at line 9108 of file reload1.c.
References call_used_regs, const0_rtx, COSTS_N_INSNS, delete_insn(), FIRST_PSEUDO_REGISTER, gen_add2_insn(), GEN_INT, GET_CODE, GET_MODE, have_add2_insn(), HOST_WIDE_INT, reg_use::insn, INSN_P, INTVAL, MODES_OK_FOR_MOVE2ADD, move2add_note_store(), next, NEXT_INSN, next_nonnote_insn(), note_stores(), NULL, NULL_RTX, PATTERN, PLUS, REG, REG_INC, REG_NOTE_KIND, REG_NOTES, REGNO, rtx_cost(), SET, SET_DEST, SET_SRC, sext_for_mode(), single_set, src, validate_change(), and XEXP.
Referenced by reload_cse_regs().
| static int reload_cse_noop_set_p | ( | rtx | set | ) | [static] |
Definition at line 8022 of file reload1.c.
References rtx_equal_for_cselib_p(), SET_DEST, and SET_SRC.
Referenced by reload_cse_simplify().
Definition at line 8151 of file reload1.c.
References flag_expensive_optimizations, reload_combine(), reload_cse_move2add(), and reload_cse_regs_1().
Referenced by ip2k_reorg(), m68hc11_reorg(), rest_of_compilation(), and rest_of_handle_postreload().
Definition at line 8126 of file reload1.c.
References cselib_finish(), cselib_init(), cselib_process_insn(), end_alias_analysis(), gen_rtx_REG(), init_alias_analysis(), insn, INSN_P, NEXT_INSN, and reload_cse_simplify().
Referenced by reload_cse_regs().
Definition at line 8030 of file reload1.c.
References apply_change_group(), count, delete_insn_and_edges(), GET_CODE, NULL_RTX, PATTERN, REG_FUNCTION_VALUE_P, REG_P, reload_cse_noop_set_p(), reload_cse_simplify_operands(), reload_cse_simplify_set(), SET, SET_DEST, XVECEXP, and XVECLEN.
Referenced by reload_cse_regs_1().
Definition at line 8315 of file reload1.c.
References alloca, apply_change_group(), c, CLEAR_HARD_REG_SET, CONSTANT_P, constrain_operands(), cselib_lookup(), cselib_val, extract_insn(), fatal_insn_not_found, FIRST_PSEUDO_REGISTER, gen_rtx_REG(), GET_CODE, HARD_REG_SET, int, MAX_RECOG_OPERANDS, memset, mode, p, PUT_MODE, REG, REG_CLASS_FROM_LETTER, reg_class_subunion, reg_fits_class_p(), REGNO, rtx_cost(), SET, SET_HARD_REG_BIT, TEST_HARD_REG_BIT, tmp, true_regnum(), validate_change(), and which_alternative.
Referenced by reload_cse_simplify(), and reload_cse_simplify_operands().
Definition at line 8168 of file reload1.c.
References abort, BITS_PER_WORD, CANNOT_CHANGE_MODE_CLASS, CONSTANT_P, copy_rtx(), cselib_lookup(), cselib_val, extend_op(), GEN_INT, gen_rtx_fmt_e(), gen_rtx_REG(), GET_CODE, GET_MODE, GET_MODE_BITSIZE, GET_MODE_MASK, HOST_WIDE_INT, INTVAL, LOAD_EXTEND_OP, MEM, MEMORY_MOVE_COST, NIL, ORIGINAL_REGNO, references_value_p(), REG, REGISTER_MOVE_COST, REGNO, REGNO_REG_CLASS, rtx_cost(), SET, SET_DEST, SET_SRC, side_effects_p(), SIGN_EXTEND, src, true_regnum(), trunc_int_for_mode(), val, validate_change(), and word_mode.
Referenced by reload_cse_simplify().
Definition at line 1547 of file reload1.c.
References int, reg_class_size, and rld.
Referenced by choose_reload_regs(), and find_reload_regs().
| static int reload_reg_free_for_value_p | ( | int | start_regno, | |
| int | regno, | |||
| int | opnum, | |||
| enum reload_type | type, | |||
| rtx | value, | |||
| rtx | out, | |||
| int | reloadnum, | |||
| int | ignore_address_reloads | |||
| ) | [static] |
Definition at line 4765 of file reload1.c.
References check_earlyclobber(), const0_rtx, copy, earlyclobber_operand_p(), GET_CODE, GET_MODE, HARD_REGNO_NREGS, in, MAX_RECOG_OPERANDS, n_reloads, NULL_RTX, REG, REGNO, RELOAD_FOR_INPADDR_ADDRESS, RELOAD_FOR_INPUT, RELOAD_FOR_INPUT_ADDRESS, RELOAD_FOR_INSN, RELOAD_FOR_OPADDR_ADDR, RELOAD_FOR_OPERAND_ADDRESS, RELOAD_FOR_OTHER_ADDRESS, RELOAD_FOR_OUTADDR_ADDRESS, RELOAD_FOR_OUTPUT, RELOAD_FOR_OUTPUT_ADDRESS, RELOAD_OTHER, rld, rtx_equal_p(), TEST_HARD_REG_BIT, and true_regnum().
Referenced by free_for_value_p().
| static int reload_reg_free_p | ( | unsigned int | regno, | |
| int | opnum, | |||
| enum reload_type | type | |||
| ) | [static] |
Definition at line 4374 of file reload1.c.
References abort, RELOAD_FOR_INPADDR_ADDRESS, RELOAD_FOR_INPUT, RELOAD_FOR_INPUT_ADDRESS, RELOAD_FOR_INSN, RELOAD_FOR_OPADDR_ADDR, RELOAD_FOR_OPERAND_ADDRESS, RELOAD_FOR_OTHER_ADDRESS, RELOAD_FOR_OUTADDR_ADDRESS, RELOAD_FOR_OUTPUT, RELOAD_FOR_OUTPUT_ADDRESS, reload_n_operands, RELOAD_OTHER, and TEST_HARD_REG_BIT.
Referenced by allocate_reload_reg().
| static int reload_reg_reaches_end_p | ( | unsigned int | regno, | |
| int | opnum, | |||
| enum reload_type | type | |||
| ) | [static] |
Definition at line 4540 of file reload1.c.
References abort, RELOAD_FOR_INPADDR_ADDRESS, RELOAD_FOR_INPUT, RELOAD_FOR_INPUT_ADDRESS, RELOAD_FOR_INSN, RELOAD_FOR_OPADDR_ADDR, RELOAD_FOR_OPERAND_ADDRESS, RELOAD_FOR_OTHER_ADDRESS, RELOAD_FOR_OUTADDR_ADDRESS, RELOAD_FOR_OUTPUT, RELOAD_FOR_OUTPUT_ADDRESS, reload_n_operands, RELOAD_OTHER, and TEST_HARD_REG_BIT.
Referenced by emit_reload_insns().
| static int reloads_conflict | ( | int | r1, | |
| int | r2 | |||
| ) |
| static void replace_pseudos_in_call_usage | ( | rtx * | loc, | |
| enum machine_mode | mem_mode, | |||
| rtx | usage | |||
| ) | [static] |
Definition at line 586 of file reload1.c.
References abort, eliminate_regs(), FIRST_PSEUDO_REGISTER, gen_rtx_MEM(), GET_CODE, GET_MODE, GET_RTX_FORMAT, GET_RTX_LENGTH, i, MEM, REG, reg_equiv_address, reg_equiv_constant, reg_equiv_mem, REGNO, regno_reg_rtx, x, XEXP, XVECEXP, and XVECLEN.
Referenced by reload(), and replace_pseudos_in_call_usage().
Definition at line 3755 of file reload1.c.
References bad_spill_regs_global, CONST, FIRST_PSEUDO_REGISTER, GET_CODE, GET_MODE, GET_MODE_SIZE, GET_RTX_FORMAT, GET_RTX_LENGTH, PC, REG, reg_max_ref_width, REG_USERVAR_P, REGNO, SET_HARD_REG_BIT, SMALL_REGISTER_CLASSES, SUBREG_REG, USE, XEXP, XVECEXP, and XVECLEN.
Referenced by reload(), and scan_paradoxical_subregs().
Definition at line 1858 of file reload1.c.
References find_reload_regs(), and insns_need_reload.
Referenced by reload().
Definition at line 3356 of file reload1.c.
References elim_table::from, INITIAL_ELIMINATION_OFFSET, INITIAL_FRAME_POINTER_OFFSET, elim_table::initial_offset, NUM_ELIMINABLE_REGS, num_not_at_initial_offset, elim_table::offset, elim_table::previous_offset, and elim_table::to.
Referenced by reload(), and reload_as_needed().
Definition at line 3382 of file reload1.c.
References forced_labels, memset, NULL_RTX, num_labels, offsets_known_at, set_label_offsets(), x, and XEXP.
Referenced by reload().
Definition at line 2125 of file reload1.c.
References elim_table::can_eliminate, CODE_LABEL_NUMBER, first_label_num, GET_CODE, i, initial_offset(), elim_table::initial_offset, LABEL_REF_NONLOCAL_P, NUM_ELIMINABLE_REGS, elim_table::offset, offset, offsets_at, offsets_known_at, p, PATTERN, PC, pc_rtx, prev_nonnote_insn(), REG_LABEL, REG_NOTE_KIND, REG_NOTES, RETURN, SET, SET_DEST, set_offsets_for_label(), SET_SRC, unsigned, XEXP, XVECEXP, and XVECLEN.
Referenced by calculate_needs_all_insns(), set_initial_eh_label_offset(), set_initial_label_offsets(), and set_label_offsets().
Definition at line 3396 of file reload1.c.
References elim_table::can_eliminate, CODE_LABEL_NUMBER, first_label_num, i, elim_table::initial_offset, NUM_ELIMINABLE_REGS, num_not_at_initial_offset, elim_table::offset, offsets_at, and elim_table::previous_offset.
Referenced by reload_as_needed(), and set_label_offsets().
| static int set_reload_reg | ( | int | i, | |
| int | r | |||
| ) | [static] |
Definition at line 5069 of file reload1.c.
References gen_rtx_REG(), GET_MODE, HARD_REGNO_MODE_OK, in, last_spill_reg, mark_reload_reg_in_use(), mode, out, rld, spill_reg_rtx, spill_regs, and true_regnum().
Referenced by allocate_reload_reg(), and choose_reload_regs().
| static HOST_WIDE_INT sext_for_mode | ( | enum machine_mode | mode, | |
| HOST_WIDE_INT | value | |||
| ) | [static] |
Definition at line 9083 of file reload1.c.
References GET_MODE_BITSIZE, GET_MODE_MASK, HOST_BITS_PER_WIDE_INT, and HOST_WIDE_INT.
Referenced by move2add_note_store(), and reload_cse_move2add().
Definition at line 1903 of file reload1.c.
References asm_noperands(), error(), error_for_asm(), fatal_insn, PATTERN, reg_class_names, and REG_CLASS_NAMES.
Referenced by find_reload_regs().
| static void spill_hard_reg | ( | unsigned int | regno, | |
| int | cant_eliminate | |||
| ) | [static] |
Definition at line 3564 of file reload1.c.
References bad_spill_regs_global, FIRST_PSEUDO_REGISTER, HARD_REGNO_NREGS, i, max_regno, PSEUDO_REGNO_MODE, reg_renumber, regs_ever_live, SET_HARD_REG_BIT, SET_REGNO_REG_SET, and spilled_pseudos.
Referenced by reload().
Definition at line 3270 of file reload1.c.
References elim_table::can_eliminate, elim_table::initial_offset, NUM_ELIMINABLE_REGS, num_not_at_initial_offset, elim_table::offset, and elim_table::previous_offset.
Referenced by calculate_needs_all_insns(), and reload_as_needed().
| static void update_eliminables | ( | HARD_REG_SET * | pset | ) | [static] |
Definition at line 3420 of file reload1.c.
References elim_table::can_eliminate, CAN_ELIMINATE, elim_table::can_eliminate_previous, ELIMINABLE_REGS, frame_pointer_needed, FRAME_POINTER_REGNUM, FRAME_POINTER_REQUIRED, elim_table::from, HARD_FRAME_POINTER_REGNUM, num_eliminable, NUM_ELIMINABLE_REGS, SET_HARD_REG_BIT, and elim_table::to.
Referenced by reload().
Definition at line 3333 of file reload1.c.
References abort, elim_table::from, INITIAL_ELIMINATION_OFFSET, INITIAL_FRAME_POINTER_OFFSET, initial_offset(), elim_table::initial_offset, NUM_ELIMINABLE_REGS, and elim_table::to.
Referenced by reload().
HARD_REG_SET bad_spill_regs [static] |
HARD_REG_SET bad_spill_regs_global [static] |
Definition at line 185 of file reload1.c.
Referenced by find_reg(), finish_spills(), reload(), scan_paradoxical_subregs(), and spill_hard_reg().
Definition at line 409 of file toplev.c.
Referenced by access_can_touch_variable(), add_stmt(), addr_for_mem_ref(), adjust_accumulator_values(), adjust_return_value(), adjust_stack_reference(), alpha_end_function(), alpha_start_function(), analyze_function(), arc_compute_frame_size(), arc_compute_function_type(), arc_delay_slots_for_epilogue(), arc_output_function_epilogue(), arc_output_function_prologue(), arm_compute_func_type(), arm_is_longcall_p(), arm_output_function_epilogue(), arm_size_return_regs(), assemble_start_function(), assign_parm_find_data_types(), assign_parm_find_entry_rtl(), assign_parms(), assign_parms_augmented_arg_list(), assign_parms_initialize_all(), avr_output_function_epilogue(), avr_output_function_prologue(), avr_peep2_scratch_safe(), avr_regs_to_save(), avr_simple_epilogue(), begin_function_body(), begin_inline_definitions(), begin_mem_initializers(), bfin_expand_epilogue(), bfin_expand_prologue(), bfin_frame_pointer_required(), bfin_function_ok_for_sibcall(), bfin_hard_regno_rename_ok(), bfin_load_pic_reg(), branch_prob(), browse_tree(), build_class_init(), build_compound_literal(), build_cplus_new(), build_duplicate_type(), build_external_ref(), build_local_temp(), build_mips16_function_stub(), build_modify_expr(), build_module_descriptor(), build_new(), build_new_method_call(), build_selector_translation_table(), build_target_expr_with_type(), c4x_assembler_function_p(), c4x_interrupt_function_p(), c4x_leaf_function_p(), c4x_naked_function_p(), c_add_case_label(), c_cannot_inline_tree_fn(), c_expand_body(), c_expand_decl_stmt(), c_expand_deferred_function(), c_expand_return(), c_finish_return(), c_init_decl_processing(), c_make_fname_decl(), c_parser_declaration_or_fndef(), c_parser_objc_method_definition(), c_pop_function_context(), calc_live_regs(), call_insn_operand(), cgraph_analyze_function(), cgraph_build_static_cdtor(), cgraph_decide_inlining_incrementally(), cgraph_expand_function(), cgraph_rtl_info(), check_counter(), check_field_decls(), check_function_format(), check_member_template(), check_return_expr(), choose_function_section(), clear_pending_stack_adjust(), clobber_return_register(), compile_resource_file(), complete_start_java_method(), compute_avail(), compute_checksum(), compute_flow_insensitive_aliasing(), compute_frame_size(), compute_register_save_size(), constant_val_insert(), construct_exit_block(), construct_virtual_base(), convert_local_reference(), copy_body(), coverage_begin_output(), cp_genericize_r(), cp_make_fname_decl(), cp_parser_ctor_initializer_opt(), cp_parser_init_declarator(), cp_parser_late_parsing_for_member(), cp_parser_mem_initializer_list(), cp_parser_template_declaration_after_export(), cp_print_error_function(), cp_unsave_r(), create_artificial_label(), create_label_decl(), create_mem_ref(), create_memory_tag(), create_omp_child_function(), create_temporary_var(), crx_compute_save_regs(), crx_interrupt_function_p(), crx_prepare_push_pop_string(), current_decl_namespace(), current_file_function_operand(), current_function_section(), current_scope(), cxx_init(), cxx_init_decl_processing(), cxx_printable_name(), d30v_stack_info(), debug_stack_info(), decl_constant_value(), decl_type_access_control(), default_section_type_flags(), define_label(), df_record_entry_block_defs(), diagnose_omp_structured_block_errors(), do_friend(), do_return_redirection(), dump_alias_info(), dump_alias_stats(), dump_cfg_stats(), dump_dfa_stats(), dump_immediate_uses(), dump_points_to_info(), dump_referenced_vars(), dump_tree_cfg(), dump_tree_ssa(), eliminate_regs(), eliminate_regs_1(), eliminate_tail_call(), embedded_pic_fnaddr_reg(), embedded_pic_offset(), emit_mem_initializers(), emit_register_classes(), end_java_method(), execute_build_cfg(), execute_free_datastructures(), execute_ipa_pass_list(), execute_lower_omp(), execute_mudflap_function_decls(), execute_mudflap_function_ops(), execute_one_pass(), execute_optimize_stdarg(), execute_todo(), expand_body(), expand_builtin(), expand_builtin_next_arg(), expand_builtin_profile_func(), expand_call(), expand_end_catch_block(), expand_epilogue(), expand_expr(), expand_expr_real_1(), expand_fixup(), expand_function_start(), expand_goto(), expand_goto_internal(), expand_inline_function(), expand_interrupt_handler_epilogue(), expand_interrupt_handler_prologue(), expand_java_field_op(), expand_java_return(), expand_load_internal(), expand_prologue(), expand_return(), expand_used_vars(), expand_value_return(), ffecom_do_entry_(), ffecom_finish_compile(), ffecom_finish_progunit(), ffecom_finish_symbol_transform_(), ffecom_gen_sfuncdef_(), ffecom_init_0(), ffecom_init_2(), ffecom_init_decl_processing(), ffecom_lookup_label(), ffecom_start_progunit_(), ffecom_subscript_check_(), ffecom_sym_transform_(), ffecom_temp_label(), ffecom_transform_equiv_(), ffestd_stmt_pass_(), ffeste_R1227(), final(), final_scan_insn(), final_start_function(), finalize_block_changes(), finalize_nrv(), find_stack_slot(), find_tail_calls(), finish_class(), finish_class_definition(), finish_compound_literal(), finish_constructor_body(), finish_destructor_body(), finish_fname_decls(), finish_function(), finish_function_body(), finish_goto_stmt(), finish_id_expression(), finish_named_return_value(), finish_non_static_data_member(), finish_return_stmt(), finish_static_initialization_or_destruction(), finish_this_expr(), fix_lexical_addr(), fixed_type_or_null(), fixup_gotos(), fname_as_string(), fname_decl(), fold_builtin_next_arg(), force_label_rtx(), force_poplevels(), frv_debug_stack(), frv_print_operand_jump_hint(), frv_stack_info(), function_epilogue(), function_prologue(), gate_handle_partition_blocks(), gate_rest_of_compilation(), generate_classfile(), genrtl_finish_function(), genrtl_named_return_value(), genrtl_scope_stmt(), genrtl_start_function(), get_coverage_counts(), get_exec_counts(), get_pending_sizes(), get_variable_decl(), gimple_add_tmp_var(), gimplify_expr(), gimplify_function_tree(), gimplify_return_expr(), gimplify_var_or_parm_decl(), give_name_to_locals(), grokdeclarator(), group_aliases(), GTY(), h8300_current_function_interrupt_function_p(), h8300_expand_epilogue(), h8300_expand_prologue(), h8300_output_function_prologue(), hack_identifier(), hack_method_prototype(), handle_alias_attribute(), handle_init_priority_attribute(), handle_section_attribute(), handle_weakref_attribute(), hppa_builtin_saveregs(), i960_output_call_insn(), i960_output_function_epilogue(), i960_output_ret_insn(), i960_reg_parm_stack_space(), ia64_compute_frame_size(), ia64_dwarf2out_def_steady_cfa(), ia64_epilogue_uses(), ia64_function_ok_for_sibcall(), identify_blocks(), init_function_start(), init_propagate_block_info(), init_reassoc(), initial_elimination_offset(), initialize_cold_section_name(), initialize_inlined_parameters(), insert_range_assertions(), instantiate_virtual_regs(), integrate_decl_tree(), integrate_parm_decls(), intra_create_variable_infos(), ip2k_init_elim_offset(), ipa_pta_execute(), iq2000_expand_prologue(), ix86_handle_dll_attribute(), ix86_internal_arg_pointer(), ix86_setup_incoming_varargs(), java_init_decl_processing(), java_lang_expand_expr(), lang_print_error(), layout_var_decl(), lhd_print_error_function(), load_type_state(), lookup_label(), lookup_static_chain(), lookup_template_class(), lower_bind_expr(), lower_builtin_setjmp(), lower_eh_constructs(), lower_function_body(), m32r_compute_frame_size(), m32r_compute_function_type(), m32r_hard_regno_rename_ok(), m32r_output_function_epilogue(), m32r_output_function_prologue(), m68hc11_initial_elimination_offset(), m68k_compute_frame_layout(), m68k_hard_regno_rename_ok(), m68k_output_function_epilogue(), m88k_builtin_saveregs(), m88k_va_start(), machopic_function_base_name(), make_label(), make_label_decl(), make_temporary_var_for_ref_to_temp(), mark_constant_function(), mark_current_function_as_interrupt(), mark_used(), mark_used_blocks(), may_be_aliased(), maybe_push_to_top_level(), maybe_warn_about_returning_address_of_local(), mcore_expand_prolog(), mcore_naked_function_p(), merge_type_state(), method_init_exceptions(), mf_decl_cache_locals(), mf_file_function_line_tree(), mf_varname_tree(), mips16_constant_after_function_p(), mips_can_use_return_insn(), mips_emit_loadgp(), mips_encode_section_info(), mips_expand_prologue(), mips_output_function_epilogue(), mips_output_function_prologue(), mips_save_reg_p(), mips_select_rtx_section(), mn10300_builtin_saveregs(), mt_debug_stack(), mt_expand_prologue(), n_regs_saved_by_prologue(), needs_to_live_in_memory(), new_omp_context(), nonnull_arg_p(), objc_expand_function_end(), omp_copy_decl(), omp_copy_decl_2(), one_static_initialization_or_destruction(), optimize_inline_calls(), optimize_sibling_and_tail_recursive_calls(), optimize_tail_recursion(), outer_curly_brace_block(), output_constant_def(), output_func_start_profiler(), output_function_exception_table(), output_function_profiler(), output_mi_thunk(), pa_output_function_prologue(), pdp11_output_function_prologue(), perform_member_init(), pop_access_scope(), pop_f_function_context(), pop_from_top_level(), pop_function_context(), pop_function_context_from(), pop_scope(), poplevel(), prepare_call_address(), print_instantiation_full_context(), print_operand(), process_assignment(), profile_function(), promoted_input_arg(), propagate_one_insn(), push_function_context(), push_function_context_to(), push_jvm_slot(), push_to_top_level(), push_type_0(), pushdecl(), pushdecl_maybe_friend(), pushdecl_with_scope(), put_var_into_stack(), read_class(), really_start_method(), rebuild_cgraph_edges(), recompute_tree_invarant_for_addr_expr(), recompute_tree_invariant_for_addr_expr(), record_vars(), record_vars_into(), remap_block(), remove_useless_stmts(), remove_useless_stmts_bind(), reorder_blocks(), rest_of_clean_state(), rest_of_compilation(), rest_of_handle_branch_prob(), rest_of_handle_branch_target_load_optimize(), rest_of_handle_cfg(), rest_of_handle_combine(), rest_of_handle_cse(), rest_of_handle_cse2(), rest_of_handle_eh(), rest_of_handle_final(), rest_of_handle_flow2(), rest_of_handle_gcse(), rest_of_handle_gcse2(), rest_of_handle_if_after_combine(), rest_of_handle_if_after_reload(), rest_of_handle_if_conversion(), rest_of_handle_jump(), rest_of_handle_jump2(), rest_of_handle_jump_bypass(), rest_of_handle_life(), rest_of_handle_loop2(), rest_of_handle_loop_optimize(), rest_of_handle_machine_reorg(), rest_of_handle_old_regalloc(), rest_of_handle_postreload(), rest_of_handle_regmove(), rest_of_handle_regrename(), rest_of_handle_reorder_blocks(), rest_of_handle_tracer(), rest_of_handle_value_profile_transformations(), rest_of_handle_variable_tracking(), rest_of_handle_web(), return_prediction(), romp_output_function_epilogue(), rs6000_emit_load_toc_table(), rs6000_output_function_epilogue(), s390_output_constant_pool(), save_expr(), set_local_type(), set_nothrow_function_flags(), setjmp_args_warning(), setjmp_protect_args(), setup_incoming_varargs(), sh_add_function_attribute(), sh_cfun_attr_renesas_p(), sh_cfun_interrupt_handler_p(), sh_expand_epilogue(), sh_expand_prologue(), sh_media_register_for_return(), sh_setup_incoming_varargs(), sh_symbian_handle_dll_attribute(), sort_mem_initializers(), sparc_compute_frame_size(), sparc_output_deferred_case_vectors(), start_cleanup_fn(), start_function(), start_java_method(), start_objects(), start_preparsed_function(), start_static_initialization_or_destruction(), store_parm_decls(), store_parm_decls_newstyle(), store_parm_decls_oldstyle(), substitute_ep_register(), suitable_for_tail_call_opt_p(), synthesize_method(), th_function_epilogue(), th_function_prologue(), thread_prologue_and_epilogue_insns(), thumb_exit(), thumb_output_function_prologue(), thumb_unexpanded_epilogue(), trampoline_address(), tree_cfg2vcg(), tree_expand_cfg(), tree_function_versioning(), tree_gen_interval_profiler(), tree_gen_one_value_profiler(), tree_gen_pow2_profiler(), tree_lowering_passes(), tree_mem_ref_addr(), tree_nrv(), tree_optimize_tail_calls_1(), tree_rest_of_compilation(), tree_verify_flow_info(), tsubst(), tsubst_expr(), unary_complex_lvalue(), undeclared_variable(), unlikely_text_section(), unqualified_name_lookup_error(), unsave_expr_now(), unshare_all_rtl(), use_thunk(), uses_arg_area_p(), v850_handle_data_area_attribute(), v850_insert_attributes(), vect_print_dump_info(), verify_jvm_instructions(), vt_add_function_parameters(), WFE_Expand_Expr(), xstormy16_interrupt_function_p(), xstormy16_output_addr_vec(), and xtensa_select_rtx_section().
int failure [static] |
Definition at line 654 of file reload1.c.
Referenced by build_compound_literal(), check_unique_operand_names(), complete_array_type(), cp_complete_array_type(), cp_parser_builtin_offsetof(), find_reload_regs(), finish_decl(), genericize_eh_spec_block(), maybe_deduce_size_from_array_init(), reload(), reparse_absdcl_as_casts(), rest_of_compilation(), rest_of_handle_global_alloc(), and rest_of_handle_old_regalloc().
int first_label_num [static] |
| char indirect_symref_ok |
rtx inpaddr_address_reload_insns[MAX_RECOG_OPERANDS] [static] |
rtx input_address_reload_insns[MAX_RECOG_OPERANDS] [static] |
rtx input_reload_insns[MAX_RECOG_OPERANDS] [static] |
struct insn_chain* insns_need_reload [static] |
Definition at line 294 of file reload1.c.
Referenced by calculate_needs_all_insns(), finish_spills(), reload(), and select_reload_regs().
int last_spill_reg [static] |
Definition at line 217 of file reload1.c.
Referenced by allocate_reload_reg(), reload(), and set_reload_reg().
int move2add_last_label_luid [static] |
Definition at line 9078 of file reload1.c.
Referenced by move2add_note_store(), and reload_cse_move2add().
int move2add_luid [static] |
Definition at line 9074 of file reload1.c.
Referenced by move2add_note_store(), and reload_cse_move2add().
int n_spills [static] |
Definition at line 149 of file reload1.c.
Referenced by allocate_reload_reg(), choose_reload_regs(), finish_spills(), and reload().
rtx new_spill_reg_store[FIRST_PSEUDO_REGISTER] [static] |
int num_eliminable [static] |
Definition at line 348 of file reload1.c.
Referenced by calculate_needs_all_insns(), finish_spills(), init_elim_table(), mark_not_eliminable(), reload(), reload_as_needed(), update_eliminables(), and verify_initial_elim_offsets().
int num_eliminable_invariants [static] |
Definition at line 351 of file reload1.c.
Referenced by calculate_needs_all_insns(), reload(), and reload_as_needed().
int num_labels [static] |
int(* offsets_at)[NUM_ELIMINABLE_REGS] [static] |
Definition at line 364 of file reload1.c.
Referenced by reload(), set_label_offsets(), and set_offsets_for_label().
char* offsets_known_at [static] |
Definition at line 363 of file reload1.c.
Referenced by reload(), set_initial_label_offsets(), and set_label_offsets().
rtx operand_reload_insns = 0 [static] |
rtx other_input_address_reload_insns = 0 [static] |
rtx other_input_reload_insns = 0 [static] |
rtx other_operand_reload_insns = 0 [static] |
rtx other_output_reload_insns[MAX_RECOG_OPERANDS] [static] |
rtx outaddr_address_reload_insns[MAX_RECOG_OPERANDS] [static] |
rtx output_address_reload_insns[MAX_RECOG_OPERANDS] [static] |
rtx output_reload_insns[MAX_RECOG_OPERANDS] [static] |
HARD_REG_SET* pseudo_forbidden_regs [static] |
HARD_REG_SET* pseudo_previous_regs [static] |
regset_head pseudos_counted [static] |
Definition at line 246 of file reload1.c.
Referenced by count_pseudo(), init_reload(), and order_regs_for_reload().
int reg_base_reg[FIRST_PSEUDO_REGISTER] [static] |
Definition at line 9068 of file reload1.c.
Referenced by move2add_note_store(), and reload_cse_move2add().
struct elim_table* reg_eliminate = 0 [static] |
struct elim_table_1 reg_eliminate_1[] [static] |
Referenced by init_elim_table().
rtx* reg_equiv_init [static] |
Definition at line 126 of file reload1.c.
Referenced by alter_reg(), calculate_needs_all_insns(), eliminate_regs_1(), no_equiv(), reload(), and update_equiv_regs().
char* reg_has_output_reload [static] |
Definition at line 94 of file reload1.c.
Referenced by choose_reload_regs(), emit_reload_insns(), forget_marked_reloads(), forget_old_reloads_1(), and reload_as_needed().
HARD_REG_SET reg_is_output_reload [static] |
Definition at line 98 of file reload1.c.
Referenced by choose_reload_regs(), emit_output_reload_insns(), emit_reload_insns(), forget_marked_reloads(), forget_old_reloads_1(), and reload_as_needed().
rtx* reg_last_reload_reg [static] |
Definition at line 90 of file reload1.c.
Referenced by choose_reload_regs(), do_output_reload(), emit_reload_insns(), forget_marked_reloads(), forget_old_reloads_1(), inc_for_reload(), and reload_as_needed().
unsigned int* reg_max_ref_width [static] |
Definition at line 122 of file reload1.c.
Referenced by alter_reg(), reload(), and scan_paradoxical_subregs().
enum machine_mode reg_mode[FIRST_PSEUDO_REGISTER] [static] |
Definition at line 9069 of file reload1.c.
Referenced by emit_move_insn_1(), expand_decl(), expand_one_register_var(), move2add_note_store(), reload_cse_move2add(), rs6000_emit_epilogue(), rs6000_emit_prologue(), rs6000_move_block_from_reg(), rs6000_split_multireg_move(), and shmedia_cleanup_truncate().
HOST_WIDE_INT reg_offset[FIRST_PSEUDO_REGISTER] [static] |
short* reg_old_renumber [static] |
int reg_reloaded_contents[FIRST_PSEUDO_REGISTER] [static] |
Definition at line 135 of file reload1.c.
Referenced by choose_reload_regs(), delete_address_reloads_1(), do_input_reload(), do_output_reload(), emit_reload_insns(), and reload_as_needed().
HARD_REG_SET reg_reloaded_dead [static] |
Definition at line 146 of file reload1.c.
Referenced by choose_reload_regs(), and emit_reload_insns().
HARD_REG_SET reg_reloaded_died [static] |
rtx reg_reloaded_insn[FIRST_PSEUDO_REGISTER] [static] |
Definition at line 140 of file reload1.c.
Referenced by choose_reload_regs(), and emit_reload_insns().
HARD_REG_SET reg_reloaded_valid [static] |
Definition at line 143 of file reload1.c.
Referenced by choose_reload_regs(), do_input_reload(), do_output_reload(), emit_reload_insns(), forget_marked_reloads(), forget_old_reloads_1(), and reload_as_needed().
int reg_set_luid[FIRST_PSEUDO_REGISTER] [static] |
Definition at line 9060 of file reload1.c.
Referenced by move2add_note_store(), and reload_cse_move2add().
struct { ... } reg_state[FIRST_PSEUDO_REGISTER] [static] |
Referenced by reload_combine(), reload_combine_note_store(), and reload_combine_note_use().
HARD_REG_SET reg_used_in_insn [static] |
Definition at line 4190 of file reload1.c.
Referenced by choose_reload_regs(), and choose_reload_regs_init().
int reload_combine_ruid [static] |
Definition at line 8581 of file reload1.c.
Referenced by reload_combine(), reload_combine_note_store(), and reload_combine_note_use().
| int reload_first_uid |
| char* reload_firstobj |
| enum insn_code reload_in_optab[NUM_MACHINE_MODES] |
| int reload_in_progress = 0 |
Definition at line 258 of file reload1.c.
Referenced by aligned_memory_operand(), alpha_expand_mov(), alpha_expand_mov_nobwx(), any_memory_operand(), arm_coproc_mem_operand(), c4x_emit_move_sequence(), change_address_1(), cirrus_memory_offset(), constrain_operands(), do_movsi(), double_memory_operand(), emit_move_change_mode(), emit_move_complex(), emit_move_insn_1(), emit_move_multi_word(), emit_move_sequence(), emit_no_conflict_block(), emit_pic_move(), expand_move(), extra_constraint(), extra_constraint_Q(), fcc_register_operand(), find_single_use(), fpscr_operand(), frv_emit_move(), frv_emit_movsi(), frv_load_operand(), gen_ashldi3(), gen_ashlsi3(), gen_movdf(), gen_movdi(), gen_move_insn(), gen_movhi(), gen_movqi(), gen_movsf(), gen_movsi(), gen_movtf(), gen_rtx_REG(), gen_shl_and(), gen_shl_sext(), get_aligned_mem(), get_unaligned_address(), h8300_expand_movsi(), h8300_reg_class_from_letter(), ia64_expand_move(), ia64_expand_movxf_movrf(), ia64_extra_constraint(), insn_invalid_p(), ix86_expand_binary_operator(), ix86_expand_move(), ix86_expand_unary_operator(), ix86_expand_vector_move(), ix86_hard_regno_mode_ok(), legitimate_address_p(), legitimate_indexed_address_p(), legitimize_address(), legitimize_operands(), legitimize_pic_address(), legitimize_tls_address(), m32r_legitimize_pic_address(), m68hc11_indirect_p(), m68hc11_memory_move_cost(), m68hc11_register_indirect_p(), m68hc11_register_move_cost(), m68hc11_small_indexed_indirect_p(), machopic_legitimize_pic_address(), mcore_reload_operand(), move_operand(), nonindexed_address_p(), normal_memory_operand(), offsettable_mem_operand(), offsettable_memory_operand(), preferred_reload_class(), prepare_move_operands(), recog_1(), recog_10(), recog_11(), recog_2(), recog_21(), recog_3(), recog_31(), recog_34(), recog_5(), recog_6(), recog_9(), reg_or_some_mem_operand(), reload(), resolve_reload_operand(), rs6000_eliminate_indexed_memrefs(), rs6000_emit_move(), s390_decompose_address(), s390_extra_constraint_str(), s390_mem_constraint(), sh_cannot_modify_jumps_p(), sparc_emit_set_const32(), sparc_emit_set_const64(), sparc_emit_set_const64_longway(), sparc_expand_move(), sparc_extra_constraint_check(), split_1(), std_or_reg_operand(), thumb_legitimate_address_p(), unaligned_memory_operand(), v850_interrupt_function_p(), verify_rtx_sharing(), volatile_mem_operand(), xstormy16_expand_move(), xtensa_emit_move_sequence(), and xtensa_extra_constraint().
| rtx reload_inheritance_insn[MAX_RELOADS] |
| char reload_inherited[MAX_RELOADS] |
| struct insn_chain* reload_insn_chain |
Definition at line 285 of file reload1.c.
Referenced by build_insn_chain(), calculate_needs_all_insns(), delete_caller_save_insns(), finish_spills(), insert_one_insn(), maybe_fix_stack_asms(), reload_as_needed(), and save_call_clobbered_regs().
char* reload_insn_firstobj [static] |
Definition at line 281 of file reload1.c.
Referenced by calculate_needs_all_insns(), and copy_reloads().
Definition at line 269 of file reload1.c.
Referenced by calculate_needs_all_insns(), copy_reloads(), init_reload(), new_insn_chain(), and reload().
short reload_order[MAX_RELOADS] [static] |
Definition at line 1658 of file reload1.c.
Referenced by choose_reload_regs(), emit_reload_insns(), find_reg(), and find_reload_regs().
| enum insn_code reload_out_optab[NUM_MACHINE_MODES] |
| rtx reload_override_in[MAX_RELOADS] |
HARD_REG_SET reload_reg_unavailable [static] |
Definition at line 4157 of file reload1.c.
Referenced by choose_reload_regs(), choose_reload_regs_init(), reload_reg_free_for_value_p(), and reload_reg_free_p().
HARD_REG_SET reload_reg_used [static] |
Definition at line 4159 of file reload1.c.
Referenced by allocate_reload_reg(), choose_reload_regs_init(), clear_reload_reg_in_use(), mark_reload_reg_in_use(), reload_reg_free_p(), and reload_reg_reaches_end_p().
HARD_REG_SET reload_reg_used_at_all [static] |
Definition at line 4182 of file reload1.c.
Referenced by allocate_reload_reg(), choose_reload_regs(), choose_reload_regs_init(), and mark_reload_reg_in_use().
HARD_REG_SET reload_reg_used_for_inherit [static] |
Definition at line 4186 of file reload1.c.
Referenced by allocate_reload_reg(), choose_reload_regs(), and choose_reload_regs_init().
HARD_REG_SET reload_reg_used_in_inpaddr_addr[MAX_RECOG_OPERANDS] [static] |
Definition at line 4163 of file reload1.c.
Referenced by choose_reload_regs_init(), clear_reload_reg_in_use(), mark_reload_reg_in_use(), reload_reg_free_p(), and reload_reg_reaches_end_p().
HARD_REG_SET reload_reg_used_in_input[MAX_RECOG_OPERANDS] [static] |
Definition at line 4169 of file reload1.c.
Referenced by choose_reload_regs_init(), clear_reload_reg_in_use(), mark_reload_reg_in_use(), reload_reg_free_p(), and reload_reg_reaches_end_p().
HARD_REG_SET reload_reg_used_in_input_addr[MAX_RECOG_OPERANDS] [static] |
Definition at line 4161 of file reload1.c.
Referenced by choose_reload_regs_init(), clear_reload_reg_in_use(), mark_reload_reg_in_use(), reload_reg_free_p(), and reload_reg_reaches_end_p().
HARD_REG_SET reload_reg_used_in_insn [static] |
Definition at line 4177 of file reload1.c.
Referenced by choose_reload_regs_init(), clear_reload_reg_in_use(), mark_reload_reg_in_use(), reload_reg_free_p(), and reload_reg_reaches_end_p().
HARD_REG_SET reload_reg_used_in_op_addr [static] |
Definition at line 4173 of file reload1.c.
Referenced by choose_reload_regs_init(), clear_reload_reg_in_use(), mark_reload_reg_in_use(), reload_reg_free_p(), and reload_reg_reaches_end_p().
HARD_REG_SET reload_reg_used_in_op_addr_reload [static] |
Definition at line 4175 of file reload1.c.
Referenced by choose_reload_regs_init(), clear_reload_reg_in_use(), mark_reload_reg_in_use(), reload_reg_free_p(), and reload_reg_reaches_end_p().
HARD_REG_SET reload_reg_used_in_other_addr [static] |
Definition at line 4179 of file reload1.c.
Referenced by choose_reload_regs_init(), clear_reload_reg_in_use(), mark_reload_reg_in_use(), and reload_reg_free_p().
HARD_REG_SET reload_reg_used_in_outaddr_addr[MAX_RECOG_OPERANDS] [static] |
Definition at line 4167 of file reload1.c.
Referenced by choose_reload_regs_init(), clear_reload_reg_in_use(), mark_reload_reg_in_use(), reload_reg_free_p(), and reload_reg_reaches_end_p().
HARD_REG_SET reload_reg_used_in_output[MAX_RECOG_OPERANDS] [static] |
Definition at line 4171 of file reload1.c.
Referenced by choose_reload_regs_init(), clear_reload_reg_in_use(), mark_reload_reg_in_use(), reload_reg_free_p(), and reload_reg_reaches_end_p().
HARD_REG_SET reload_reg_used_in_output_addr[MAX_RECOG_OPERANDS] [static] |
Definition at line 4165 of file reload1.c.
Referenced by choose_reload_regs_init(), clear_reload_reg_in_use(), mark_reload_reg_in_use(), reload_reg_free_p(), and reload_reg_reaches_end_p().
| int reload_spill_index[MAX_RELOADS] |
| char* reload_startobj |
int something_needs_elimination [static] |
int spill_add_cost[FIRST_PSEUDO_REGISTER] [static] |
Definition at line 1586 of file reload1.c.
Referenced by count_pseudo(), count_spilled_pseudo(), find_reg(), and order_regs_for_reload().
int spill_cost[FIRST_PSEUDO_REGISTER] [static] |
Definition at line 1581 of file reload1.c.
Referenced by Compare_Cost(), Compare_Self_Recursive_Cost(), count_pseudo(), count_spilled_pseudo(), find_reg(), and order_regs_for_reload().
char spill_indirect_levels [static] |
Definition at line 225 of file reload1.c.
Referenced by calculate_needs_all_insns(), init_reload(), and reload_as_needed().
short spill_reg_order[FIRST_PSEUDO_REGISTER] [static] |
Definition at line 173 of file reload1.c.
Referenced by allocate_reload_reg(), calculate_needs_all_insns(), choose_reload_regs(), deallocate_reload_reg(), delete_address_reloads_1(), finish_spills(), and reload_as_needed().
rtx spill_reg_rtx[FIRST_PSEUDO_REGISTER] [static] |
rtx spill_reg_store[FIRST_PSEUDO_REGISTER] [static] |
Definition at line 160 of file reload1.c.
Referenced by choose_reload_regs(), delete_output_reload(), do_input_reload(), do_output_reload(), emit_input_reload_insns(), emit_reload_insns(), forget_marked_reloads(), forget_old_reloads_1(), and reload_as_needed().
rtx spill_reg_stored_to[FIRST_PSEUDO_REGISTER] [static] |
Definition at line 165 of file reload1.c.
Referenced by delete_output_reload(), do_input_reload(), do_output_reload(), emit_input_reload_insns(), and emit_reload_insns().
short spill_regs[FIRST_PSEUDO_REGISTER] [static] |
Definition at line 196 of file reload1.c.
Referenced by allocate_reload_reg(), choose_reload_regs(), finish_spills(), reload(), and set_reload_reg().
rtx spill_stack_slot[FIRST_PSEUDO_REGISTER] [static] |
unsigned int spill_stack_slot_width[FIRST_PSEUDO_REGISTER] [static] |
regset_head spilled_pseudos [static] |
Definition at line 242 of file reload1.c.
Referenced by count_pseudo(), count_spilled_pseudo(), finish_spills(), init_reload(), reload(), and spill_hard_reg().
| int store_ruid |
struct insn_chain* unused_insn_chains = 0 [static] |
Definition at line 521 of file reload1.c.
Referenced by calculate_needs_all_insns(), delete_caller_save_insns(), new_insn_chain(), and reload().
| int use_index |
Definition at line 8572 of file reload1.c.
Referenced by reload_combine(), and reload_combine_note_use().
| int use_ruid |
HARD_REG_SET used_spill_regs [static] |
Definition at line 213 of file reload1.c.
Referenced by find_reload_regs(), finish_spills(), and reload().
HARD_REG_SET used_spill_regs_local [static] |
1.5.6