#include "config.h"#include "system.h"#include "coretypes.h"#include "tm.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 "real.h"#include "toplev.h"#include "except.h"#include "tree.h"

Go to the source code of this file.
| #define NUM_ELIMINABLE_REGS ARRAY_SIZE (reg_eliminate_1) |
| static int allocate_reload_reg | ( | struct insn_chain *chain | ATTRIBUTE_UNUSED, | |
| int | r, | |||
| int | last_reload | |||
| ) | [static] |
Definition at line 5081 of file reload1.c.
References count, free_for_value_p(), HARD_REGNO_MODE_OK, hard_regno_nregs, i, in, int, last_spill_reg, mode, n_spills, nr, out, reg_class_contents, reload_reg_free_p(), reload_reg_used, reload_reg_used_at_all, reload_reg_used_for_inherit, rld, set_reload_reg(), spill_reg_order, spill_regs, and TEST_HARD_REG_BIT.
| static int allocate_reload_reg | ( | struct insn_chain * | , | |
| int | , | |||
| int | ||||
| ) | [static] |
| static void alter_reg | ( | int | i, | |
| int | from_reg | |||
| ) | [static] |
Definition at line 1924 of file reload1.c.
References adjust_address_nv, assign_stack_local(), BITS_PER_UNIT, BYTES_BIG_ENDIAN, copy_rtx(), DECL_P, DECL_RTL_IF_SET, GET_MODE, GET_MODE_SIZE, MAX, MEM_ALIAS_SET, mode, mode_for_size(), MODE_INT, new_alias_set(), PSEUDO_REGNO_BYTES, reg_equiv_constant, reg_equiv_memory_loc, REG_EXPR, reg_max_ref_width, REG_N_REFS, REG_P, reg_renumber, REGNO, regno_reg_rtx, set_mem_alias_set(), set_mem_attrs_from_reg(), spill_stack_slot, spill_stack_slot_width, and x.
| static void calculate_needs_all_insns | ( | int | global | ) | [static] |
Definition at line 1417 of file reload1.c.
References copy_reloads(), delete_insn(), eliminate_regs_in_insn(), find_reloads(), FIRST_PSEUDO_REGISTER, flag_expensive_optimizations, insn, INSN_CODE, INSN_P, insns_need_reload, JUMP_P, LABEL_P, n_reloads, next, num_eliminable, num_eliminable_invariants, obstack_alloc, obstack_free, PATTERN, reg_equiv_constant, REG_NOTES, REG_P, reg_renumber, REGNO, reload_insn_chain, reload_insn_firstobj, reload_obstack, SET_DEST, set_label_offsets(), SET_SRC, single_set, something_needs_elimination, something_needs_operands_changed, spill_indirect_levels, spill_reg_order, unused_insn_chains, and update_eliminable_offsets().
Definition at line 2812 of file reload1.c.
References elim_table::can_eliminate, check_eliminable_occurrences(), 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.
Definition at line 5262 of file reload1.c.
References allocate_reload_reg(), BITS_PER_UNIT, 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(), gcc_assert, gen_rtx_REG(), GET_CODE, GET_MODE, GET_MODE_BITSIZE, GET_MODE_CLASS, GET_MODE_SIZE, HARD_FRAME_POINTER_REGNUM, HARD_REGNO_MODE_OK, hard_regno_nregs, i, i1, in, insn, int, mark_reload_reg_in_use(), MAX, max_regno, MAX_RELOADS, MEM_P, MEMORY_MOVE_COST, mode, n_earlyclobbers, n_reloads, n_spills, NO_REGS, nr, nregs, NULL, NULL_RTX, optimize, out, PLUS, qsort(), r, 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_P, reg_reloaded_contents, reg_reloaded_dead, reg_reloaded_insn, reg_reloaded_valid, reg_used_in_insn, REGISTER_MOVE_COST, REGNO, regno_clobbered_p(), REGNO_REG_CLASS, regs_used, 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_order, RELOAD_OTHER, reload_reg_class_lower(), reload_reg_unavailable, reload_reg_used_at_all, reload_reg_used_for_inherit, 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.
| static void choose_reload_regs_init | ( | struct insn_chain * | chain, | |
| rtx * | save_reload_reg_rtx | |||
| ) | [static] |
Definition at line 5203 of file reload1.c.
References CLEAR_HARD_REG_SET, COMPL_HARD_REG_SET, compute_use_by_pseudos(), HARD_REG_SET, i, IOR_HARD_REG_SET, mark_reload_reg_in_use(), MAX_RELOADS, memset, mode, n_reloads, REG_SET_TO_HARD_REG_SET, reg_used_in_insn, REGNO, reload_n_operands, reload_reg_unavailable, reload_reg_used, reload_reg_used_at_all, reload_reg_used_for_inherit, reload_reg_used_in_inpaddr_addr, reload_reg_used_in_input, reload_reg_used_in_input_addr, reload_reg_used_in_insn, reload_reg_used_in_op_addr, reload_reg_used_in_op_addr_reload, reload_reg_used_in_other_addr, reload_reg_used_in_outaddr_addr, reload_reg_used_in_output, reload_reg_used_in_output_addr, rld, and tmp.
| static void clear_reload_reg_in_use | ( | unsigned int | regno, | |
| int | opnum, | |||
| enum reload_type | type, | |||
| enum machine_mode | mode | |||
| ) | [static] |
Definition at line 4217 of file reload1.c.
References CLEAR_HARD_REG_BIT, gcc_unreachable, HARD_REG_SET, hard_regno_nregs, i, 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, reload_reg_used, reload_reg_used_in_inpaddr_addr, reload_reg_used_in_input, reload_reg_used_in_input_addr, reload_reg_used_in_insn, reload_reg_used_in_op_addr, reload_reg_used_in_op_addr_reload, reload_reg_used_in_other_addr, reload_reg_used_in_outaddr_addr, reload_reg_used_in_output, reload_reg_used_in_output_addr, rld, and true_regnum().
Definition at line 524 of file reload1.c.
References EXECUTE_IF_SET_IN_REG_SET, FIRST_PSEUDO_REGISTER, gcc_assert, hard_regno_nregs, nregs, PSEUDO_REGNO_MODE, r, reg_renumber, reload_completed, and SET_HARD_REG_BIT.
| static int conflicts_with_override | ( | rtx | x | ) | [static] |
Definition at line 8038 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.
Definition at line 1404 of file reload1.c.
References memcpy, n_reloads, obstack_alloc, reload(), reload_insn_firstobj, reload_obstack, and rld.
| static void count_pseudo | ( | int | reg | ) | [static] |
Definition at line 1574 of file reload1.c.
References gcc_assert, hard_regno_nregs, nregs, PSEUDO_REGNO_MODE, pseudos_counted, r, REG_FREQ, reg_renumber, REGNO_REG_SET_P, SET_REGNO_REG_SET, spill_add_cost, spill_cost, and spilled_pseudos.
| static void count_spilled_pseudo | ( | int | spilled, | |
| int | spilled_nregs, | |||
| int | reg | |||
| ) | [static] |
Definition at line 1650 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, spill_add_cost, spill_cost, and spilled_pseudos.
| void deallocate_reload_reg | ( | int | r | ) |
Definition at line 5961 of file reload1.c.
References clear_reload_reg_in_use(), mode, rld, spill_reg_order, and true_regnum().
Definition at line 7765 of file reload1.c.
References delete_address_reloads_1(), delete_related_insns(), dst, GET_CODE, INTVAL, MEM_P, next, NEXT_INSN, PLUS, prev, PREV_INSN, rtx_equal_p(), SET_DEST, SET_SRC, single_set, and XEXP.
Definition at line 7801 of file reload1.c.
References delete_address_reloads_1(), delete_insn(), dst, GET_CODE, GET_RTX_FORMAT, GET_RTX_LENGTH, i, i2, INSN_P, INSN_UID, JUMP_P, LABEL_P, n_reloads, NEXT_INSN, PATTERN, prev, PREV_INSN, REG, REG_P, 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.
Definition at line 1848 of file reload1.c.
References c, delete_insn(), insn, next, reload_insn_chain, and unused_insn_chains.
Definition at line 1898 of file reload1.c.
References delete_dead_insn(), find_regno_note(), GET_CODE, PATTERN, prev, prev_real_insn(), REG_DEAD, reg_mentioned_p(), REG_P, REGNO, SET, SET_DEST, SET_INSN_DELETED, SET_SRC, and side_effects_p().
Definition at line 7598 of file reload1.c.
References alter_reg(), CALL_P, count_occurrences(), delete_address_reloads(), delete_insn(), eliminate_regs(), find_regno_note(), GET_CODE, GET_MODE, hard_regno_nregs, i1, i2, INSN_DELETED_P, JUMP_P, LABEL_P, MEM_P, n_occurrences, n_reloads, NEXT_INSN, NONJUMP_INSN_P, NOTE_INSN_BASIC_BLOCK_P, NULL_RTX, 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.
Definition at line 6830 of file reload1.c.
References dead_or_set_p(), delete_output_reload(), emit_input_reload_insns(), FIRST_PSEUDO_REGISTER, if(), insn, MEM_P, optimize, REG_P, reg_reloaded_contents, reg_reloaded_valid, REGNO, regno_reg_rtx, RELOAD_FOR_INPUT, rld, rtx_equal_p(), spill_reg_store, spill_reg_stored_to, and TEST_HARD_REG_BIT.
Definition at line 6889 of file reload1.c.
References delete_output_reload(), emit_output_reload_insns(), find_reg_note(), FIRST_PSEUDO_REGISTER, gcc_assert, gen_lowpart_common(), GET_CODE, GET_MODE, insn, JUMP_P, optimize, reg_last_reload_reg, REG_P, 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.
| rtx eliminate_regs | ( | rtx | x, | |
| enum machine_mode | mem_mode, | |||
| rtx | insn | |||
| ) |
Definition at line 2256 of file reload1.c.
References ABS, adjust_address_nv, AND, elim_table::can_eliminate, COMPARE, CONST, const0_rtx, CONSTANT_P, copy_rtx(), current_function_decl, DIV, eliminate_regs(), EQ, FIRST_PSEUDO_REGISTER, FIX, FLOAT, form_sum(), elim_table::from_rtx, gcc_unreachable, GE, gen_rtvec_v(), gen_rtx_EXPR_LIST, gen_rtx_fmt_e(), gen_rtx_fmt_ee(), gen_rtx_MULT, gen_rtx_PLUS, gen_rtx_SUBREG(), gen_rtx_USE, GET_CODE, GET_MODE, GET_MODE_SIZE, GET_RTX_FORMAT, GET_RTX_LENGTH, GT, i, INTVAL, LE, LT, MEM, MEM_P, memcpy, MINUS, MOD, NE, NOT, NULL_RTX, NUM_ELIMINABLE_REGS, PC, PLUS, plus_constant, Pmode, elim_table::previous_offset, elim_table::ref_outside_mem, REG, REG_DEAD, reg_equiv_constant, reg_equiv_memory_loc, REG_NOTE_KIND, REG_P, reg_renumber, REGNO, replace_equiv_address_nv(), RETURN, ROTATE, rtx_alloc, RTX_SIZE, SET, SIGN_EXTEND, SUBREG_BYTE, SUBREG_REG, elim_table::to_rtx, TRUNCATE, UNITS_PER_WORD, USE, WORD_REGISTER_OPERATIONS, XEXP, XOR, XVEC, XVECEXP, and XVECLEN.
| static int eliminate_regs_in_insn | ( | rtx | insn, | |
| int | replace | |||
| ) | [static] |
Definition at line 2861 of file reload1.c.
References 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, gcc_assert, GEN_INT, gen_rtx_CLOBBER, gen_rtx_PARALLEL, gen_rtx_SET, GET_CODE, HARD_FRAME_POINTER_REGNUM, HOST_WIDE_INT, i, INSN_CODE, INTVAL, MAX_RECOG_OPERANDS, MEM_P, 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_EQUAL, REG_NOTE_KIND, REG_NOTES, REG_P, 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.
| static void elimination_effects | ( | rtx | x, | |
| enum machine_mode | mem_mode | |||
| ) | [static] |
Definition at line 2621 of file reload1.c.
References ABS, elim_table::can_eliminate, CONST, CONSTANT_P, elimination_effects(), 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_P, 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.
| static void emit_input_reload_insns | ( | struct insn_chain * | chain, | |
| struct reload * | rl, | |||
| rtx | old, | |||
| int | j | |||
| ) | [static] |
Definition at line 6130 of file reload1.c.
References 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(), gcc_assert, gcc_unreachable, GEN_FCN, gen_lowpart_SUBREG(), gen_reload(), GET_CODE, get_insns(), GET_MODE, HARD_REGNO_MODE_OK, inc_for_reload(), insn, int, MEM_P, MEMORY_MOVE_COST, mode, new_mode(), NO_REGS, NONJUMP_INSN_P, NOTE_P, NULL, num_not_at_initial_offset, optimize, PATTERN, PREFERRED_RELOAD_CLASS, PREV_INSN, push_to_sequence(), reg_class_contents, reg_equiv_constant, reg_equiv_mem, reg_equiv_memory_loc, REG_N_DEATHS, REG_N_SETS, REG_P, reg_renumber, REGISTER_MOVE_COST, REGNO, REGNO_REG_CLASS, reload_adjust_reg_for_mode(), 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.
| static void emit_output_reload_insns | ( | struct insn_chain * | chain, | |
| struct reload * | rl, | |||
| int | j | |||
| ) | [static] |
Definition at line 6617 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_DEAD, reg_equiv_mem, reg_is_output_reload, reg_mentioned_p(), REG_P, REGNO, regno_clobbered_p(), reload_adjust_reg_for_mode(), 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.
Definition at line 6978 of file reload1.c.
References CLEAR_HARD_REG_BIT, CLEAR_HARD_REG_SET, debug_reload_to_stream(), do_input_reload(), do_output_reload(), dump_file, emit_insn_after(), emit_insn_before(), find_regno_note(), FIRST_PSEUDO_REGISTER, fprintf(), GET_CODE, GET_MODE, HARD_REGNO_CALL_PART_CLOBBERED, hard_regno_nregs, i, in, inherit_piecemeal_p(), insn, INSN_UID, IOR_HARD_REG_SET, MEM_P, n_reloads, nr, NULL_RTX, out, PATTERN, r, REG_DEAD, reg_has_output_reload, reg_is_output_reload, reg_last_reload_reg, REG_P, reg_reloaded_call_part_clobbered, reg_reloaded_contents, reg_reloaded_dead, reg_reloaded_insn, reg_reloaded_valid, reg_set_p(), REGNO, regno_reg_rtx, reload_n_operands, reload_order, reload_reg_reaches_end_p(), rld, SET_DEST, SET_HARD_REG_BIT, SET_SRC, single_set, spill_reg_store, spill_reg_stored_to, SUBREG_REG, and XEXP.
Definition at line 5005 of file reload1.c.
References asm_noperands(), error_for_asm(), fatal_insn, PATTERN, and rld.
| static int find_reg | ( | struct insn_chain * | chain, | |
| int | order | |||
| ) | [static] |
Definition at line 1669 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(), dump_file, EXECUTE_IF_SET_IN_REG_SET, FIRST_PSEUDO_REGISTER, fprintf(), gcc_assert, HARD_REG_SET, HARD_REGNO_MODE_OK, hard_regno_nregs, i, INT_MAX, IOR_COMPL_HARD_REG_SET, IOR_HARD_REG_SET, ok(), REG_ALLOC_ORDER, reg_class_contents, REG_P, REGNO, reload(), reload_order, reloads_conflict(), rld, SET_HARD_REG_BIT, spill_add_cost, spill_cost, TEST_HARD_REG_BIT, and used_spill_regs_local.
Definition at line 1775 of file reload1.c.
References CLEAR_HARD_REG_SET, COPY_HARD_REG_SET, dump_file, failure, 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_order, reload_reg_class_lower(), rld, spill_failure(), used_spill_regs, and used_spill_regs_local.
| static int finish_spills | ( | int | global | ) | [static] |
Definition at line 3569 of file reload1.c.
References alter_reg(), AND_COMPL_REG_SET, AND_HARD_REG_SET, bad_spill_regs_global, CLEAR_REGNO_REG_SET, COMPL_HARD_REG_SET, compute_use_by_pseudos(), COPY_HARD_REG_SET, dump_file, EXECUTE_IF_SET_IN_REG_SET, FIRST_PSEUDO_REGISTER, fprintf(), gcc_assert, gcc_unreachable, GO_IF_HARD_REG_SUBSET, HARD_REG_SET, i, insns_need_reload, IOR_HARD_REG_SET, max_regno, memset, n_spills, num_eliminable, ok(), pseudo_forbidden_regs, pseudo_previous_regs, reg_old_renumber, reg_renumber, REG_SET_TO_HARD_REG_SET, regs_ever_live, reload_insn_chain, retry_global_alloc(), SET_HARD_REG_BIT, spill_reg_order, spill_regs, spilled_pseudos, TEST_HARD_REG_BIT, unsigned, and used_spill_regs.
Definition at line 8060 of file reload1.c.
References BB_END, BB_HEAD, blocks, CALL_P, can_throw_internal(), commit_edge_insertions(), delete_insn(), EDGE_ABNORMAL, EDGE_ABNORMAL_CALL, EDGE_EH, EDGE_FALLTHRU, find_many_sub_basic_blocks(), flag_non_call_exceptions, edge::flags, FOR_EACH_BB, FOR_EACH_EDGE, gcc_assert, GET_CODE, insert_insn_on_edge(), INSN_DELETED_P, INSN_P, last_basic_block, next, NEXT_INSN, NONJUMP_INSN_P, NOTE_P, NULL_RTX, PATTERN, PREV_INSN, sbitmap_alloc(), sbitmap_ones(), and USE.
| static void forget_old_reloads_1 | ( | rtx | x, | |
| rtx ignored | ATTRIBUTE_UNUSED, | |||
| void *data | ATTRIBUTE_UNUSED | |||
| ) | [static] |
Definition at line 4057 of file reload1.c.
References CLEAR_HARD_REG_BIT, FIRST_PSEUDO_REGISTER, GET_CODE, GET_MODE, hard_regno_nregs, i, n_reloads, nr, reg_has_output_reload, reg_is_output_reload, reg_last_reload_reg, REG_P, reg_reloaded_call_part_clobbered, reg_reloaded_valid, REGNO, spill_reg_store, SUBREG_REG, and TEST_HARD_REG_BIT.
| 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 4954 of file reload1.c.
References hard_regno_nregs, nregs, and reload_reg_free_for_value_p().
| static int function_invariant_p | ( | rtx | x | ) | [static] |
Definition at line 786 of file local-alloc.c.
| static rtx gen_reload | ( | rtx | out, | |
| rtx | in, | |||
| int | opnum, | |||
| enum reload_type | type | |||
| ) | [static] |
Definition at line 7919 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, recog_memoized, reg_last_reload_reg, REG_P, REGNO, store(), and XEXP.
| static bool inherit_piecemeal_p | ( | int r | ATTRIBUTE_UNUSED, | |
| int regno | ATTRIBUTE_UNUSED | |||
| ) | [static] |
Definition at line 6961 of file reload1.c.
References GET_MODE, r, REG_CANNOT_CHANGE_MODE_P, reg_raw_mode, and rld.
| static bool inherit_piecemeal_p | ( | int | , | |
| int | ||||
| ) | [static] |
Referenced by emit_reload_insns().
Definition at line 3476 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().
Definition at line 439 of file reload1.c.
References double_reg_address_ok, FIRST_PSEUDO_REGISTER, gcc_obstack_init, GEN_INT, gen_rtx_MEM(), gen_rtx_PLUS, gen_rtx_REG(), gen_rtx_SYMBOL_REF, HARD_FRAME_POINTER_REGNUM, i, indirect_symref_ok, INIT_REG_SET, LAST_VIRTUAL_REGISTER, memory_address_p(), obstack_alloc, plus_constant, Pmode, pseudos_counted, reg_equiv_memory_loc_varray, reload_obstack, reload_startobj, spill_indirect_levels, spilled_pseudos, and VARRAY_RTX_INIT.
| void mark_home_live | ( | int | regno | ) |
Definition at line 2070 of file reload1.c.
References hard_regno_nregs, i, PSEUDO_REGNO_MODE, reg_renumber, and regs_ever_live.
Definition at line 3265 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.
| static void mark_reload_reg_in_use | ( | unsigned int | regno, | |
| int | opnum, | |||
| enum reload_type | type, | |||
| enum machine_mode | mode | |||
| ) | [static] |
Definition at line 4155 of file reload1.c.
References hard_regno_nregs, i, 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, reload_reg_used, reload_reg_used_at_all, reload_reg_used_in_inpaddr_addr, reload_reg_used_in_input, reload_reg_used_in_input_addr, reload_reg_used_in_insn, reload_reg_used_in_op_addr, reload_reg_used_in_op_addr_reload, reload_reg_used_in_other_addr, reload_reg_used_in_outaddr_addr, reload_reg_used_in_output, reload_reg_used_in_output_addr, and SET_HARD_REG_BIT.
Definition at line 1291 of file reload1.c.
References AND_HARD_REG_SET, asm_noperands(), c, CLEAR_HARD_REG_SET, CLEAR_REGNO_REG_SET, CONSTRAINT_LEN, 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_CONSTRAINT, reg_class_subunion, REGNO, reload_insn_chain, SET_HARD_REG_BIT, STACK_REG_P, TEST_HARD_REG_BIT, XEXP, XVECEXP, and XVECLEN.
Definition at line 5989 of file reload1.c.
References gcc_assert, i, 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().
Definition at line 498 of file reload1.c.
References c, INIT_REG_SET, obstack_alloc, reload_obstack, and unused_insn_chains.
Definition at line 1599 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, REG_SET_TO_HARD_REG_SET, spill_add_cost, and spill_cost.
| int reload | ( | rtx | first, | |
| int | global | |||
| ) |
Definition at line 637 of file reload1.c.
References addr(), alter_reg(), arg_pointer_rtx, assign_stack_local(), bad_spill_regs_global, BITS_PER_UNIT, calculate_needs_all_insns(), CALL_INSN_FUNCTION_USAGE, CALL_P, call_used_regs, caller_save_needed, elim_table::can_eliminate, can_throw_internal(), cfun, cleanup_subreg_operands(), CLEAR_HARD_REG_SET, CLEAR_REG_SET, CLEAR_REGNO_REG_SET, clear_secondary_mem(), CONSTANT_P, copy_rtx(), current_function_has_nonlocal_label, delete_caller_save_insns(), delete_dead_insn(), delete_insn(), eliminate_regs(), emit_note(), failure, find_reg_note(), finish_spills(), first_label_num, FIRST_PSEUDO_REGISTER, fixed_regs, fixup_abnormal_edges(), flag_pic, flag_stack_check, FOR_EACH_BB, force_const_mem(), frame_pointer_needed, frame_pointer_rtx, free(), elim_table::from, function_invariant_p(), gcc_assert, gen_rtx_INSN_LIST, GET_CODE, get_first_label_num(), get_frame_size(), get_max_uid(), GET_MODE, basic_block_def::global_live_at_start, HARD_FRAME_POINTER_REGNUM, HARD_REG_SET, HOST_WIDE_INT, i, init_elim_table(), init_recog(), init_save_areas(), insn, INSN_P, insns_need_reload, last_spill_reg, LAST_VIRTUAL_REGISTER, LEGITIMATE_CONSTANT_P, LEGITIMATE_PIC_OPERAND_P, LOCAL_REGNO, mark_elimination(), mark_home_live(), mark_not_eliminable(), max_label_num(), max_regno, maybe_fix_stack_asms(), MEM, MEM_ATTRS, MEM_COPY_ATTRIBUTES, MEM_IN_STRUCT_P, MEM_P, MEM_READONLY_P, MEM_SCALAR_P, memcpy, memory_operand(), memset, n_spills, NEXT_INSN, NOTE_INSN_DELETED, NOTE_P, note_stores(), NULL, NULL_RTX, num_eliminable, num_eliminable_invariants, NUM_ELIMINABLE_REGS, num_labels, obstack_alloc, obstack_free, offsets_at, offsets_known_at, PATTERN, PLUS, pseudo_forbidden_regs, pseudo_previous_regs, PUT_CODE, PUT_MODE, REG_DEAD, REG_EQUAL, REG_EQUIV, reg_equiv_address, reg_equiv_constant, reg_equiv_init, reg_equiv_mem, reg_equiv_memory_loc, reg_equiv_memory_loc_varray, REG_FUNCTION_VALUE_P, REG_INC, REG_LIBCALL, reg_max_ref_width, REG_NOTE_KIND, REG_NOTES, reg_old_renumber, REG_P, reg_renumber, REG_RETVAL, reg_set_p(), REG_UNUSED, REG_USERVAR_P, REGNO, REGNO_POINTER_ALIGN, regno_reg_rtx, regs_ever_live, reload_as_needed(), reload_completed, reload_first_uid, reload_firstobj, reload_in_progress, reload_obstack, reload_startobj, replace_pseudos_in(), rtx_equal_p(), save_call_clobbered_regs(), scan_paradoxical_subregs(), select_reload_regs(), SET_DEST, SET_HARD_REG_BIT, set_initial_elim_offsets(), set_initial_label_offsets(), SET_INSN_DELETED, SET_SRC, setup_save_areas(), single_set, size, something_needs_elimination, something_needs_operands_changed, spill_hard_reg(), spill_regs, spill_stack_slot, spill_stack_slot_width, spilled_pseudos, STACK_CHECK_BUILTIN, STACK_CHECK_FIXED_FRAME_SIZE, STACK_CHECK_MAX_FRAME_SIZE, stack_pointer_rtx, strict_memory_address_p(), TEST_HARD_REG_BIT, elim_table::to, UNITS_PER_WORD, unshare_all_rtl_again(), unused_insn_chains, update_eliminables(), USE, used_spill_regs, VARRAY_GROW, verify_initial_elim_offsets(), warning, x, xcalloc(), XEXP, and xmalloc().
| static void reload_as_needed | ( | int | live_known | ) | [static] |
Definition at line 3771 of file reload1.c.
References AND_COMPL_HARD_REG_SET, asm_noperands(), CALL_P, 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, gen_rtx_fmt_e(), GET_CODE, GET_MODE, i, insn, INSN_P, LABEL_P, max_regno, MEM_P, memset, merge_assigned_reloads(), mode, n, n_reloads, next, NEXT_INSN, NONJUMP_INSN_P, NOTE_P, 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_call_part_clobbered, 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().
| 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 4715 of file reload1.c.
References check_earlyclobber(), const0_rtx, copy, earlyclobber_operand_p(), GET_MODE, hard_regno_nregs, i, in, MAX_RECOG_OPERANDS, n_reloads, NULL_RTX, REG_P, 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, reload_reg_unavailable, rld, rtx_equal_p(), TEST_HARD_REG_BIT, and true_regnum().
| static int reload_reg_free_p | ( | unsigned int | regno, | |
| int | opnum, | |||
| enum reload_type | type | |||
| ) | [static] |
Definition at line 4326 of file reload1.c.
References gcc_unreachable, i, 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, reload_reg_unavailable, reload_reg_used, reload_reg_used_in_inpaddr_addr, reload_reg_used_in_input, reload_reg_used_in_input_addr, reload_reg_used_in_insn, reload_reg_used_in_op_addr, reload_reg_used_in_op_addr_reload, reload_reg_used_in_other_addr, reload_reg_used_in_outaddr_addr, reload_reg_used_in_output, reload_reg_used_in_output_addr, and TEST_HARD_REG_BIT.
| static int reload_reg_reaches_end_p | ( | unsigned int | regno, | |
| int | opnum, | |||
| enum reload_type | type | |||
| ) | [static] |
Definition at line 4492 of file reload1.c.
References gcc_unreachable, i, 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, reload_reg_used, reload_reg_used_in_inpaddr_addr, reload_reg_used_in_input, reload_reg_used_in_input_addr, reload_reg_used_in_insn, reload_reg_used_in_op_addr, reload_reg_used_in_op_addr_reload, reload_reg_used_in_outaddr_addr, reload_reg_used_in_output, reload_reg_used_in_output_addr, and TEST_HARD_REG_BIT.
| static void replace_pseudos_in | ( | rtx * | loc, | |
| enum machine_mode | mem_mode, | |||
| rtx | usage | |||
| ) | [static] |
Definition at line 555 of file reload1.c.
References eliminate_regs(), FIRST_PSEUDO_REGISTER, gcc_assert, 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, REG_P, REGNO, regno_reg_rtx, x, XEXP, XVECEXP, and XVECLEN.
Referenced by reload(), and replace_pseudos_in().
Definition at line 3715 of file reload1.c.
References CONST, GET_CODE, GET_MODE, GET_MODE_SIZE, GET_RTX_FORMAT, GET_RTX_LENGTH, i, PC, REG, reg_max_ref_width, REG_P, REGNO, scan_paradoxical_subregs(), SUBREG_REG, USE, XEXP, XVECEXP, and XVECLEN.
Definition at line 3348 of file reload1.c.
References NULL_RTX, and set_label_offsets().
Referenced by set_initial_label_offsets().
Definition at line 3327 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.
Definition at line 3361 of file reload1.c.
References for_each_eh_label(), forced_labels, memset, NULL_RTX, num_labels, offsets_known_at, set_initial_eh_label_offset(), set_label_offsets(), x, and XEXP.
Definition at line 2093 of file reload1.c.
References BARRIER_P, 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_label_offsets(), set_offsets_for_label(), SET_SRC, unsigned, XEXP, XVECEXP, and XVECLEN.
Definition at line 3377 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.
| static int set_reload_reg | ( | int | i, | |
| int | r | |||
| ) | [static] |
Definition at line 5026 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().
Definition at line 1880 of file reload1.c.
References asm_noperands(), error(), error_for_asm(), fatal_insn, PATTERN, and reg_class_names.
| static void spill_hard_reg | ( | unsigned int | regno, | |
| int | cant_eliminate | |||
| ) | [static] |
Definition at line 3540 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.
Definition at line 3237 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.
| static void update_eliminables | ( | HARD_REG_SET * | pset | ) | [static] |
Definition at line 3400 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.
Definition at line 3297 of file reload1.c.
References elim_table::from, HOST_WIDE_INT, INITIAL_ELIMINATION_OFFSET, INITIAL_FRAME_POINTER_OFFSET, initial_offset(), elim_table::initial_offset, num_eliminable, NUM_ELIMINABLE_REGS, and elim_table::to.
HARD_REG_SET bad_spill_regs [static] |
HARD_REG_SET bad_spill_regs_global [static] |
Definition at line 256 of file reload1.c.
Referenced by find_free_reg(), find_reg(), prepare_function_start(), and reload().
Definition at line 235 of file reload1.c.
Referenced by find_reloads_address(), init_reload(), and reload_combine().
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] |
int last_spill_reg [static] |
rtx new_spill_reg_store[FIRST_PSEUDO_REGISTER] [static] |
int num_eliminable [static] |
int num_eliminable_invariants [static] |
int num_labels [static] |
HOST_WIDE_INT(* offsets_at)[NUM_ELIMINABLE_REGS] [static] |
char* offsets_known_at [static] |
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] |
struct elim_table* reg_eliminate = 0 [static] |
struct elim_table_1 reg_eliminate_1[] [static] |
Definition at line 112 of file reload1.c.
Referenced by arm_reload_in_hi(), arm_reload_out_hi(), find_reloads(), find_reloads_address(), find_reloads_address_1(), find_reloads_subreg_address(), find_reloads_toplev(), mark_referenced_regs(), reload(), replace_pseudos_in(), replace_pseudos_in_call_usage(), and subst_reloads().
rtx* reg_equiv_init [static] |
Definition at line 116 of file reload1.c.
Referenced by a29k_get_reloaded_address(), arm_reload_in_hi(), arm_reload_out_hi(), double_memory_operand(), emit_input_reload_insns(), emit_move_sequence(), emit_output_reload_insns(), find_reloads(), find_reloads_address(), find_reloads_address_1(), find_reloads_subreg_address(), find_reloads_toplev(), fixup_subreg_mem(), mark_referenced_regs(), nonindexed_address_p(), push_secondary_reload(), reload(), replace_pseudos_in(), replace_pseudos_in_call_usage(), subst_reg_equivs(), and subst_reloads().
Definition at line 107 of file reload1.c.
Referenced by init_reload(), reload(), and rest_of_handle_old_regalloc().
char* reg_has_output_reload [static] |
HARD_REG_SET reg_is_output_reload [static] |
rtx* reg_last_reload_reg [static] |
unsigned int* reg_max_ref_width [static] |
short* reg_old_renumber [static] |
HARD_REG_SET reg_reloaded_call_part_clobbered [static] |
Definition at line 148 of file reload1.c.
Referenced by emit_reload_insns(), forget_marked_reloads(), forget_old_reloads_1(), and reload_as_needed().
int reg_reloaded_contents[FIRST_PSEUDO_REGISTER] [static] |
HARD_REG_SET reg_reloaded_dead [static] |
HARD_REG_SET reg_reloaded_died [static] |
rtx reg_reloaded_insn[FIRST_PSEUDO_REGISTER] [static] |
HARD_REG_SET reg_reloaded_valid [static] |
HARD_REG_SET reg_used_in_insn [static] |
| int reload_first_uid |
Definition at line 252 of file reload1.c.
Referenced by delete_address_reloads_1(), find_equiv_reg(), and reload().
| char* reload_firstobj |
| enum insn_code reload_in_optab[NUM_MACHINE_MODES] |
Definition at line 265 of file reload1.c.
Referenced by default_secondary_reload(), emit_input_reload_insns(), init_all_optabs(), init_optabs(), and pa_secondary_reload().
| int reload_in_progress = 0 |
| rtx reload_inheritance_insn[MAX_RELOADS] |
| char reload_inherited[MAX_RELOADS] |
| struct insn_chain* reload_insn_chain |
char* reload_insn_firstobj [static] |
short reload_order[MAX_RELOADS] [static] |
| enum insn_code reload_out_optab[NUM_MACHINE_MODES] |
Definition at line 266 of file reload1.c.
Referenced by default_secondary_reload(), init_all_optabs(), init_optabs(), and pa_secondary_reload().
| rtx reload_override_in[MAX_RELOADS] |
HARD_REG_SET reload_reg_unavailable [static] |
HARD_REG_SET reload_reg_used [static] |
HARD_REG_SET reload_reg_used_at_all [static] |
HARD_REG_SET reload_reg_used_for_inherit [static] |
HARD_REG_SET reload_reg_used_in_inpaddr_addr[MAX_RECOG_OPERANDS] [static] |
HARD_REG_SET reload_reg_used_in_input[MAX_RECOG_OPERANDS] [static] |
HARD_REG_SET reload_reg_used_in_input_addr[MAX_RECOG_OPERANDS] [static] |
HARD_REG_SET reload_reg_used_in_insn [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_other_addr [static] |
HARD_REG_SET reload_reg_used_in_outaddr_addr[MAX_RECOG_OPERANDS] [static] |
HARD_REG_SET reload_reg_used_in_output[MAX_RECOG_OPERANDS] [static] |
HARD_REG_SET reload_reg_used_in_output_addr[MAX_RECOG_OPERANDS] [static] |
| int reload_spill_index[MAX_RELOADS] |
| char* reload_startobj |
int something_needs_elimination [static] |
int spill_add_cost[FIRST_PSEUDO_REGISTER] [static] |
int spill_cost[FIRST_PSEUDO_REGISTER] [static] |
char spill_indirect_levels [static] |
short spill_reg_order[FIRST_PSEUDO_REGISTER] [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_regs[FIRST_PSEUDO_REGISTER] [static] |
rtx spill_stack_slot[FIRST_PSEUDO_REGISTER] [static] |
unsigned int spill_stack_slot_width[FIRST_PSEUDO_REGISTER] [static] |
regset_head spilled_pseudos [static] |
struct insn_chain* unused_insn_chains = 0 [static] |
HARD_REG_SET used_spill_regs [static] |
HARD_REG_SET used_spill_regs_local [static] |
1.5.6