GCC Middle and Back End API Reference
|
Go to the source code of this file.
Functions | |
enum reg_class | lra_get_allocno_class (int regno) |
rtx | lra_eliminate_regs (rtx, machine_mode, rtx) |
void | lra (FILE *, int) |
void | lra_init_once (void) |
void | lra_finish_once (void) |
Variables | |
bool | lra_simple_p |
|
extern |
Major LRA entry function. F is a file should be used to dump LRA debug info with given verbosity.
References assign_stack_local(), bitmap_clear(), bitmap_empty_p(), bitmap_initialize(), bitmap_ones(), cfun, check_rtl(), commit_edge_insertions(), crtl, DF_NO_INSN_RESCAN, df_set_flags(), df_set_regs_ever_live(), emit_note(), expand_reg_info(), find_many_sub_basic_blocks(), finish_insn_recog_data(), finish_reg_info(), fixed_regs, fixup_abnormal_edges(), gen_reg_rtx(), get_frame_size(), get_insns(), get_last_insn(), get_max_uid(), has_nonexceptional_receiver(), i, init_insn_recog_data(), init_reg_info(), INT_MAX, ira_no_alloc_regs, ira_restore_scratches(), last_basic_block_for_fn, LOCAL_REGNO, lra_asm_error_p, lra_assign(), lra_assignment_iter, lra_assignment_iter_after_spill, lra_bad_spill_regno_start, lra_clear_live_ranges(), lra_coalesce(), lra_coalesce_iter, lra_constraint_insn_stack, lra_constraint_insn_stack_bitmap, lra_constraint_iter, lra_constraint_new_regno_start, lra_constraints(), lra_constraints_finish(), lra_constraints_init(), lra_create_live_ranges(), lra_curr_reload_num, lra_dump_file, lra_eliminate(), lra_final_code_change(), lra_fp_pseudo_p(), lra_hard_reg_split_p, lra_in_progress, lra_inheritance(), lra_inheritance_iter, lra_inheritance_pseudos, lra_init_equiv(), lra_live_range_iter, lra_live_ranges_finish(), lra_live_ranges_init(), LRA_MAX_INHERITANCE_PASSES, LRA_MAX_REMATERIALIZATION_PASSES, lra_need_for_scratch_reg_p(), lra_need_for_spills_p(), lra_new_regno_start, lra_no_alloc_regs, lra_optional_reload_pseudos, lra_pmode_pseudo, lra_reg_spill_p, lra_remat(), lra_rematerialization_iter, lra_simple_p, lra_spill(), lra_split_hard_reg_for(), lra_split_regs, lra_subreg_reload_pseudos, lra_undo_inheritance(), lra_undo_inheritance_iter, lra_verbose, max_reg_num(), NULL, push_insns(), reg_obstack, regstat_free_n_sets_and_refs(), regstat_free_ri(), reload_completed, remove_scratches(), sbitmap_alloc(), sbitmap_free(), setup_reg_spill_flag(), timevar_pop(), timevar_push(), unshare_all_rtl_again(), update_inc_notes(), and verbose.
Referenced by do_reload().
This function is used externally in subsequent passes of GCC. It always does a full elimination of X.
References lra_eliminate_regs_1(), and NULL.
Referenced by based_loc_descr(), compute_frame_pointer_to_fb_displacement(), reg_loc_descriptor(), and vt_initialize().
|
extern |
Called once per compiler to finish LRA data which are initialize once.
References finish_insn_code_data_once().
Referenced by finalize().
|
inline |
Return the allocno reg class of REGNO. If it is a reload pseudo, the pseudo should finally get hard register of the allocno class.
References reg_allocno_class(), and resize_reg_info().
Referenced by assign_by_spills(), assign_spill_hard_regs(), combine_reload_insn(), curr_insn_transform(), get_reg_class(), get_reload_reg(), get_try_hard_regno(), inherit_in_ebb(), inherit_reload_reg(), lra_assign(), lra_constraints(), lra_split_hard_reg_for(), process_address_1(), process_invariant_for_inheritance(), setup_live_pseudos_and_spill_after_risky_transforms(), simplify_operand_subreg(), split_reg(), and update_scratch_ops().
|
extern |
Called once per compiler to initialize LRA data once.
References init_insn_code_data_once().
Referenced by ira_init_once().
|
extern |
Communication between the Local Register Allocator (LRA) and the rest of the compiler. Copyright (C) 2010-2024 Free Software Foundation, Inc. Contributed by Vladimir Makarov <vmakarov@redhat.com>. This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GCC; see the file COPYING3. If not see <http://www.gnu.org/licenses/>.
True if the current function is too big to use regular algorithms in LRA. In other words, we should use simpler and faster algorithms in LRA. It also means we should not worry about generation code for caller saves. The value is set up in IRA.
Referenced by assign_by_spills(), curr_insn_transform(), ira(), and lra().