#include "config.h"#include "system.h"#include "rtl.h"#include "tm_p.h"#include "function.h"#include "regs.h"#include "hard-reg-set.h"#include "basic-block.h"#include "df.h"#include "output.h"#include "ra.h"

Go to the source code of this file.
Data Types | |
| type | web_pair |
Defines | |
| #define | INV_REG_ALLOC_ORDER(c) c |
| #define | set_cand(i, w) |
| #define | WEB_PAIR_HASH_SIZE 8192 |
Functions/Subroutines | |
| static void push_list | PARAMS ((struct dlist *, struct dlist **)) |
| static void free_dlist | PARAMS ((struct dlist **)) |
| static void put_web_at_end | PARAMS ((struct web *, enum node_type)) |
| static void put_move | PARAMS ((struct move *, enum move_type)) |
| static void build_worklists | PARAMS ((struct df *)) |
| static void enable_move | PARAMS ((struct web *)) |
| static void decrement_degree | PARAMS ((struct web *, int)) |
| static void simplify | PARAMS ((void)) |
| static void remove_move_1 | PARAMS ((struct web *, struct move *)) |
| static int ok | PARAMS ((struct web *, struct web *)) |
| static unsigned int simplify_p | PARAMS ((enum node_type)) |
| static int color_usable_p | PARAMS ((int, HARD_REG_SET, HARD_REG_SET, enum machine_mode)) |
| int get_free_reg | PARAMS ((HARD_REG_SET, HARD_REG_SET, enum machine_mode)) |
| static int get_biased_reg | PARAMS ((HARD_REG_SET, HARD_REG_SET, HARD_REG_SET, HARD_REG_SET, enum machine_mode)) |
| static int count_long_blocks | PARAMS ((HARD_REG_SET, int)) |
| static char *hardregset_to_string | PARAMS ((HARD_REG_SET)) |
| static void calculate_dont_begin | PARAMS ((struct web *, HARD_REG_SET *)) |
| static int comp_webs_maxcost | PARAMS ((const void *, const void *)) |
| static void add_web_pair_cost | PARAMS ((struct web *, struct web *, unsigned HOST_WIDE_INT, unsigned int)) |
| static void sort_and_combine_web_pairs | PARAMS ((int)) |
| static void | push_list (struct dlist *x, struct dlist **list) |
| static void | push_list_end (struct dlist *x, struct dlist **list) |
| void | remove_list (struct dlist *x, struct dlist **list) |
| struct dlist * | pop_list (struct dlist **list) |
| static void | free_dlist (struct dlist **list) |
| void | put_web (struct web *web, enum node_type type) |
| void | reset_lists () |
| static void | put_web_at_end (struct web *web, enum node_type type) |
| void | remove_web_from_list (struct web *web) |
| static void | put_move (struct move *move, enum move_type type) |
| static void | build_worklists (df) |
| static void | enable_move (struct web *web) |
| static void | decrement_degree (struct web *web, int dec) |
| static void | simplify () |
| static void | remove_move_1 (struct web *web, struct move *move) |
| static void | remove_move (struct web *web, struct move *move) |
| void | merge_moves (struct web *u, struct web *v) |
| static void | add_worklist (struct web *web) |
| static int | ok (struct web *target, struct web *source) |
| static int | conservative (struct web *target, struct web *source) |
| struct web * | alias (struct web *web) |
| static unsigned int | simplify_p (enum node_type type) |
| static void | combine (struct web *u, struct web *v) |
| static void | coalesce () |
| static void | freeze_moves (struct web *web) |
| static void | freeze () |
| static unsigned HOST_WIDE_INT | default_spill_heuristic (struct web *web) |
| static void | select_spill () |
| static int | color_usable_p (int c, HARD_REG_SET dont_begin_colors, HARD_REG_SET free_colors, enum machine_mode mode) |
| int | get_free_reg (HARD_REG_SET dont_begin_colors, HARD_REG_SET free_colors, enum machine_mode mode) |
| static int | get_biased_reg (HARD_REG_SET dont_begin_colors, HARD_REG_SET bias, HARD_REG_SET prefer_colors, HARD_REG_SET free_colors, enum machine_mode mode) |
| static int | count_long_blocks (HARD_REG_SET free_colors, int len) |
| static char * | hardregset_to_string (HARD_REG_SET s) |
| static void | calculate_dont_begin (struct web *web, HARD_REG_SET *result) |
| static void | colorize_one_web (struct web *web, int hard) |
| static void | assign_colors () |
| static void | try_recolor_web (struct web *web) |
| static void | insert_coalesced_conflicts () |
| static int | comp_webs_maxcost (void *w1, void *w2) const |
| static void | recolor_spills () |
| static void | check_colors () |
| static void | unalias_web (struct web *web) |
| static void | break_aliases_to_web (struct web *web) |
| static void | break_precolored_alias (struct web *web) |
| static void | restore_conflicts_from_coalesce (struct web *web) |
| static void | break_coalesced_spills () |
| static void | init_web_pairs () |
| static void | add_web_pair_cost (struct web *web1, struct web *web2, unsigned HOST_WIDE_INT cost, unsigned int conflicts) |
| static int | comp_web_pairs (void *w1, void *w2) const |
| static void | sort_and_combine_web_pairs (int for_move) |
| static void | aggressive_coalesce () |
| static void | extended_coalesce_2 () |
| static void | check_uncoalesced_moves () |
| void | ra_colorize_graph (struct df *df) |
| void | ra_colorize_init () |
| void | ra_colorize_free_all () |
Variables | |
| static struct dlist * | mv_worklist |
| static struct dlist * | mv_coalesced |
| static struct dlist * | mv_constrained |
| static struct dlist * | mv_frozen |
| static struct dlist * | mv_active |
| static struct web_pair * | web_pair_hash [WEB_PAIR_HASH_SIZE] |
| static struct web_pair * | web_pair_list |
| static unsigned int | num_web_pairs |
| #define set_cand | ( | i, | |||
| w | ) |
Value:
do { \ if (!candidates[(i)] \ || (candidates[(i)]->spill_cost < (w)->spill_cost)) \ candidates[(i)] = (w); \ } while (0)
Referenced by colorize_one_web().
| #define WEB_PAIR_HASH_SIZE 8192 |
| static void add_web_pair_cost | ( | struct web * | web1, | |
| struct web * | web2, | |||
| unsigned HOST_WIDE_INT | cost, | |||
| unsigned int | conflicts | |||
| ) | [static] |
Definition at line 2418 of file ra-colorize.c.
References web_pair::conflicts, web_pair::cost, h, web_pair::larger, web_pair::next_hash, web_pair::next_list, num_webs, p, ra_alloc(), web_pair::smaller, and WEB_PAIR_HASH_SIZE.
Referenced by aggressive_coalesce(), and extended_coalesce_2().
Definition at line 559 of file ra-colorize.c.
References FREEZE, NUM_REGS, PRECOLORED, put_web(), remove_list(), SIMPLIFY, and WEBS.
Referenced by coalesce().
| static void aggressive_coalesce | ( | ) | [static] |
Definition at line 2529 of file ra-colorize.c.
References add_web_pair_cost(), alias, BLOCK_FOR_INSN, web::color, CONSTRAINED, d, DLIST_MOVE, h, web::id, init_web_pairs(), move::insn, MV_COALESCED, NULL, num_webs, ok(), pop_list(), PRECOLORED, web::prefer_colors, put_move(), s, SET_HARD_REG_BIT, sort_and_combine_web_pairs(), move::source_web, sup_igraph, move::target_web, and TEST_BIT.
Referenced by ra_colorize_graph().
| static void assign_colors | ( | ) | [static] |
Definition at line 1670 of file ra-colorize.c.
References a, alias, COALESCED, web::color, colorize_one_web(), d, DLIST_WEB, dlist::next, pop_list(), SELECT, and WEBS.
Referenced by ra_colorize_graph(), and recolor_spills().
Definition at line 2119 of file ra-colorize.c.
References abort, web::alias, COALESCED, COPY_HARD_REG_SET, d, DLIST_WEB, DUMP_COLORIZE, web::id, dlist::next, SPILLED, unalias_web(), and WEBS.
Referenced by break_coalesced_spills(), and colorize_one_web().
| static void break_coalesced_spills | ( | ) | [static] |
Definition at line 2338 of file ra-colorize.c.
References a, alias, break_aliases_to_web(), changed, COALESCED, web::color, colorize_one_web(), d, DLIST_WEB, DUMP_COLORIZE, DUMP_COSTS, dump_graph_cost(), web::id, insert_coalesced_conflicts(), web::is_coalesced, dlist::next, pop_list(), put_web(), remove_list(), restore_conflicts_from_coalesce(), SELECT, SPILLED, and WEBS.
Referenced by ra_colorize_graph().
Definition at line 2162 of file ra-colorize.c.
References abort, alias, c, CLEAR_HARD_REG_BIT, CLEAR_HARD_REG_SET, COALESCED, web::color, web::conflict_list, GET_MODE, HARD_REG_SET, HARD_REGNO_NREGS, hardreg2web, web::have_orig_conflicts, i, web::id, igraph, igraph_index, conflict_link::next, nregs, NULL, num_webs, web::orig_conflict_list, PRECOLORED, regs, RESET_BIT, SET_HARD_REG_BIT, sub, web::subreg_next, sup_igraph, conflict_link::t, TEST_HARD_REG_BIT, unalias_web(), wl, x, and is::y.
Referenced by colorize_one_web().
Definition at line 332 of file ra-colorize.c.
References web::add_hardregs, comp_webs_maxcost(), web::conflict_list, d, web::dlink, move::dlink, DLIST_MOVE, DLIST_WEB, free(), FREEZE, i, id2web, INITIAL, max_normal_pseudo, move_list::move, web::moves, conflict_link::next, dlist::next, move_list::next, web::num_conflicts, NUM_REGS, num_subwebs, num_webs, PRECOLORED, put_move(), put_web(), qsort(), ra_calloc(), ra_pass, web::regno, remove_list(), SELECT, SIMPLIFY, SPILL, conflict_link::t, WEBS, wl, wl_moves, WORKLIST, and xmalloc().
Referenced by ra_colorize_graph().
Definition at line 1194 of file ra-colorize.c.
References alias, CLEAR_HARD_REG_SET, web::color, COLORED, COPY_HARD_REG_SET, GET_MODE, GET_MODE_SIZE, HARD_REG_SET, HARD_REGNO_NREGS, conflict_link::next, sub_conflict::next, NULL, web::orig_x, PRECOLORED, sub_conflict::s, SET_HARD_REG_BIT, sl, source, conflict_link::sub, SUBREG_BYTE, SUBWEB_P, conflict_link::t, sub_conflict::t, UNITS_PER_WORD, and wl.
Referenced by colorize_one_web(), and try_recolor_web().
| static void check_colors | ( | ) | [static] |
Definition at line 2012 of file ra-colorize.c.
References abort, alias, c, web::color, COLORED, web::conflict_list, GET_MODE, GET_MODE_SIZE, HARD_REGNO_NREGS, web::have_orig_conflicts, i, id2web, max_normal_pseudo, conflict_link::next, sub_conflict::next, nregs, num_subwebs, num_webs, web::orig_conflict_list, web::orig_x, PRECOLORED, web::regno, sub_conflict::s, sl, SPILLED, conflict_link::sub, SUBREG_BYTE, SUBWEB_P, conflict_link::t, sub_conflict::t, TEST_HARD_REG_BIT, UNITS_PER_WORD, web::usable_regs, and wl.
Referenced by ra_colorize_graph().
| static void check_uncoalesced_moves | ( | ) | [static] |
Definition at line 2633 of file ra-colorize.c.
References abort, alias, CONSTRAINED, h, web::id, move_list::move, MV_COALESCED, move_list::next, num_webs, ok(), PRECOLORED, s, move::source_web, sup_igraph, move::target_web, TEST_BIT, move::type, and wl_moves.
Referenced by ra_colorize_graph().
| static void coalesce | ( | ) | [static] |
Definition at line 854 of file ra-colorize.c.
References ACTIVE, add_worklist(), alias, combine, conservative(), CONSTRAINED, d, DLIST_MOVE, h, web::id, MV_COALESCED, num_webs, ok(), pop_list(), PRECOLORED, put_move(), remove_move(), source, move::source_web, sup_igraph, target, move::target_web, and TEST_BIT.
Referenced by ra_colorize_graph().
| static int color_usable_p | ( | int | c, | |
| HARD_REG_SET | dont_begin_colors, | |||
| HARD_REG_SET | free_colors, | |||
| enum machine_mode | mode | |||
| ) | [static] |
Definition at line 1020 of file ra-colorize.c.
References HARD_REGNO_MODE_OK, HARD_REGNO_NREGS, i, size, and TEST_HARD_REG_BIT.
Referenced by colorize_one_web().
Definition at line 1283 of file ra-colorize.c.
References abort, web::add_hardregs, alias, an_unusable_color, AND_COMPL_HARD_REG_SET, AND_HARD_REG_SET, web::bias_colors, break_aliases_to_web(), break_precolored_alias(), c, calculate_dont_begin(), call_used_reg_set, CLASS_CANNOT_CHANGE_MODE, CLEAR_HARD_REG_BIT, CLEAR_HARD_REG_SET, COALESCED, web::color, color_usable_p(), COLORED, COPY_HARD_REG_SET, count_long_blocks(), DUMP_COLORIZE, find_web_for_subweb, flag_ra_biased, flag_ra_optimistic_coalescing, get_biased_reg(), GET_MODE, HARD_REG_SET, HARD_REGNO_NREGS, hardregset_to_string(), i, insert_coalesced_conflicts(), IOR_HARD_REG_SET, web::is_coalesced, max_normal_pseudo, memset, conflict_link::next, sub_conflict::next, nregs, NULL, PRECOLORED, PSEUDO_REGNO_MODE, put_web(), reg_alternate_class(), reg_class_contents, reg_preferred_class(), remove_list(), restore_conflicts_from_coalesce(), SELECT, set_cand, SET_HARD_REG_BIT, sl, web::spill_cost, web::spill_temp, SPILLED, conflict_link::sub, conflict_link::t, sub_conflict::t, try(), web::usable_regs, usable_regs, web::was_spilled, WEBS, and wl.
Referenced by assign_colors(), break_coalesced_spills(), colorize_one_web(), and try_recolor_web().
Definition at line 724 of file ra-colorize.c.
References abort, web::add_hardregs, AND_HARD_REG_SET, COALESCED, decrement_degree(), find_subweb(), flag_ra_merge_spill_costs, FREEZE, GET_MODE, HARD_REGNO_NREGS, hard_regs_count(), hardreg2web, i, max_normal_pseudo, merge_moves(), conflict_link::next, sub_conflict::next, nregs, NULL, NUM_REGS, web::orig_x, PRECOLORED, put_web(), record_conflict(), reg_class_subunion, remove_web_from_list(), sub_conflict::s, SELECT, simplify_p(), sl, SPILL, conflict_link::sub, SUBWEB_P, conflict_link::t, sub_conflict::t, and wl.
Definition at line 2456 of file ra-colorize.c.
References web_pair::conflicts, web_pair::cost, p1, and p2.
Referenced by sort_and_combine_web_pairs().
Definition at line 1958 of file ra-colorize.c.
References web::spill_cost.
Referenced by build_worklists(), and recolor_spills().
Definition at line 665 of file ra-colorize.c.
References web::add_hardregs, BITMAP_XFREE, BITMAP_XMALLOC, COALESCED, web::id, MAX, conflict_link::next, web::num_conflicts, NUM_REGS, REGNO_REG_SET_P, seen, SELECT, SET_REGNO_REG_SET, conflict_link::t, and wl.
Referenced by coalesce(), and SNL_Update_Strip_Dependence().
| static int count_long_blocks | ( | HARD_REG_SET | free_colors, | |
| int | len | |||
| ) | [static] |
Definition at line 1136 of file ra-colorize.c.
References count, FIRST_PSEUDO_REGISTER, i, and TEST_HARD_REG_BIT.
Referenced by colorize_one_web().
Definition at line 428 of file ra-colorize.c.
References a, before, COALESCED, enable_move(), FREEZE, conflict_link::next, NUM_REGS, put_web(), remove_web_from_list(), SELECT, SIMPLIFY, and conflict_link::t.
Referenced by combine(), and simplify().
Definition at line 951 of file ra-colorize.c.
References flag_ra_break_aliases, HOST_WIDE_INT, and ret.
Referenced by ra_colorize_init().
Definition at line 411 of file ra-colorize.c.
References ACTIVE, move::dlink, move_list::move, move_list::next, put_move(), remove_list(), move::type, and WORKLIST.
Referenced by decrement_degree().
| static void extended_coalesce_2 | ( | ) | [static] |
Definition at line 2588 of file ra-colorize.c.
References add_web_pair_cost(), alias, BLOCK_FOR_INSN, def2web, ra_insn_info::defs, dest, DF_REF_ID, find_web_for_subweb, frequency, get_insns(), GET_MODE, hard_regs_intersect_p(), web::id, init_web_pairs(), insn, insn_df, INSN_P, INSN_UID, max_normal_pseudo, n, NEXT_INSN, web::num_conflicts, ra_insn_info::num_defs, ra_insn_info::num_uses, num_webs, web::orig_x, PRECOLORED, web::regno, sort_and_combine_web_pairs(), source, sup_igraph, TEST_BIT, web::usable_regs, use2web, and ra_insn_info::uses.
Referenced by ra_colorize_graph().
| static void freeze | ( | ) | [static] |
Definition at line 932 of file ra-colorize.c.
References d, DLIST_WEB, FREEZE, freeze_moves(), pop_list(), put_web(), SIMPLIFY, and WEBS.
Referenced by ra_colorize_graph().
Definition at line 900 of file ra-colorize.c.
References ACTIVE, alias, dest, web::dlink, move::dlink, FREEZE, FROZEN, move_list::move, web::moves, move_list::next, web::num_conflicts, NUM_REGS, put_move(), put_web(), remove_list(), remove_move(), SIMPLIFY, move::source_web, src, move::target_web, move::type, and WEBS.
Referenced by freeze(), and select_spill().
| static int get_biased_reg | ( | HARD_REG_SET | dont_begin_colors, | |
| HARD_REG_SET | bias, | |||
| HARD_REG_SET | prefer_colors, | |||
| HARD_REG_SET | free_colors, | |||
| enum machine_mode | mode | |||
| ) | [static] |
Definition at line 1103 of file ra-colorize.c.
References c, COPY_HARD_REG_SET, flag_ra_biased, get_free_reg(), HARD_REG_SET, IOR_COMPL_HARD_REG_SET, and s.
Referenced by colorize_one_web().
| int get_free_reg | ( | HARD_REG_SET | dont_begin_colors, | |
| HARD_REG_SET | free_colors, | |||
| enum machine_mode | mode | |||
| ) |
Definition at line 1052 of file ra-colorize.c.
References c, FIRST_PSEUDO_REGISTER, HARD_REGNO_MODE_OK, HARD_REGNO_NREGS, i, INT_MAX, INV_REG_ALLOC_ORDER, size, and TEST_HARD_REG_BIT.
| static char* hardregset_to_string | ( | HARD_REG_SET | s | ) | [static] |
Definition at line 1162 of file ra-colorize.c.
References c, HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT_PRINT_HEX, i, and sprintf().
Referenced by colorize_one_web().
| static void init_web_pairs | ( | ) | [static] |
Definition at line 2406 of file ra-colorize.c.
Referenced by aggressive_coalesce(), and extended_coalesce_2().
| static void insert_coalesced_conflicts | ( | ) | [static] |
Definition at line 1904 of file ra-colorize.c.
References abort, web::add_hardregs, alias, COALESCED, web::color, web::conflict_list, d, DLIST_WEB, GET_MODE, HARD_REGNO_NREGS, hard_regs_intersect_p(), hardreg2web, i, web::id, conflict_link::next, dlist::next, nregs, num_webs, web::orig_x, PRECOLORED, sup_igraph, conflict_link::t, TEST_BIT, web::usable_regs, WEBS, and wl.
Referenced by break_coalesced_spills(), colorize_one_web(), and recolor_spills().
Definition at line 534 of file ra-colorize.c.
References bitmap_bit_p(), bitmap_set_bit(), BITMAP_XFREE, BITMAP_XMALLOC, move::insn, INSN_UID, move_list::move, move_list::next, NULL, and seen.
Referenced by combine(), and spill_coalescing().
Definition at line 573 of file ra-colorize.c.
References COALESCED, GET_MODE, HARD_REGNO_MODE_OK, HARD_REGNO_NREGS, hardreg2web, i, web::id, igraph, igraph_index, never_use_colors, conflict_link::next, sub_conflict::next, NULL, web::num_conflicts, NUM_REGS, num_webs, PRECOLORED, SELECT, size, sl, conflict_link::sub, sup_igraph, conflict_link::t, sub_conflict::t, TEST_BIT, TEST_HARD_REG_BIT, and wl.
Referenced by _bfd_coff_reloc_link_order(), _bfd_generic_reloc_link_order(), _bfd_m68hc11_elf_merge_private_bfd_data(), _bfd_mips_elf_merge_private_bfd_data(), _bfd_mmix_check_all_relocs(), _bfd_sh_align_load_span(), _cpp_create_definition(), _cpp_create_trad_definition(), _unit_bksp(), add_binding(), add_exception_specifier(), adjustl_intrinsic(), aggressive_coalesce(), analyze_iv_to_split_insn(), aout_link_reloc_link_order(), ar_sim(), assert_semantics(), assignment_stmt_semantics(), Attempt_Reshape(), attr_init_semantics(), avr_operand(), bfd_elf_gc_sections(), Bound_Difference_To_Linex(), c_parser_attributes(), calculate_live_on_entry(), call_list_semantics(), CFG_transformation(), cgraph_decide_inlining(), change_subscript(), Check_Arrays(), Check_Doacross_Sync_Coverage(), check_ext_dependent_givs(), check_for_constructors(), check_forall_triplet_for_index(), check_stat_variable(), check_uncoalesced_moves(), check_where_conformance(), Cif_Errstring(), cif_named_constant_rec(), class_can_hold_mode(), coalesce(), collect_source_relocs(), compute_removed_literals(), compute_text_actions(), const_init_semantics(), create_constructor_constant(), create_iso_definition(), create_namelist_descriptor(), create_runtime_array_constructor(), create_runtime_struct_constructor(), create_scalar_type_tbl(), create_strct_tbl(), cvrt_str_to_cn(), data_repeat_semantics(), Dep_Carried_Outside_Or_Zero(), directive_stmt_semantics(), discombobulate_structure_ref(), ecoff_reloc_link_order(), elf_gc_sections(), elf_link_add_object_symbols(), elf_link_input_bfd(), elf_reloc_link_order(), elfNN_ia64_merge_private_bfd_data(), else_stmt_semantics(), encode_decode_stmt_semantics(), enter_cmd_line_cc_define(), equivalence_semantics(), execute_fold_all_builtins(), expand_asm_operands(), expand_binop(), expand_case(), ffecom_2pass_advise_entrypoint(), ffedata_eval_offset_(), ffeequiv_layout_cblock(), ffeexpr_cb_comma_c_(), ffeintrin_is_intrinsic(), ffestc_establish_impletter_(), ffetarget_layout(), find_reg(), find_relaxable_sections(), find_reloads(), finish_spills(), Fiss_Gather_Inner_Loop(), fold_aggragate_expression(), fold_binary(), folder_driver(), forall_semantics(), frv_asm_out_constructor(), frv_asm_out_destructor(), gen_far_branch(), gen_forall_max_expr(), gen_internal_dope_vector(), grok_op_properties(), grokdeclarator(), grokfield(), grokfndecl(), iand_intrinsic(), ieee_object_p(), if_stmt_semantics(), init_caller_save(), init_whole_array(), RG::Insert(), insert_restore(), insert_save(), interpret_adjustl_intrinsic(), interpret_array_construct_opr(), interpret_binary_intrinsic_opr(), interpret_binary_opr(), interpret_concat_opr(), interpret_constructor(), interpret_csmg_opr(), interpret_cvmgt_opr(), interpret_implied_do(), interpret_index_opr(), interpret_max_min_opr(), interpret_ref(), interpret_repeat_intrinsic(), interpret_reshape_intrinsic(), interpret_shape_intrinsic(), interpret_sik_intrinsic(), interpret_size_intrinsic(), interpret_srk_intrinsic(), interpret_struct_construct_opr(), interpret_transfer_intrinsic(), interpret_trim_intrinsic(), interpret_ubound_intrinsic(), interpret_unary_intrinsic_opr(), interpret_unary_opr(), LU_MAT< T >::Inv(), invert_jump_1(), IPA_LNO_Annotate_Array_Call(), IPA_LNO_Annotate_Scalar_Call(), IPFEC_Query_Skiplist(), IPL_EX_Value_Evaluate(), lbound_intrinsic(), Linear_Expr_With_Mode(), mips_elf_perform_relocation(), no_conflict_p(), note_yacc_type(), open_mp_directive_semantics(), optimize_reshape(), output_pop_multiple(), output_push_multiple(), output_struct_ids(), parse_initializer(), LU_MAT< T >::Particular_Solution(), peel_loop_completely(), peel_loop_simple(), pp_base_format(), print_insn_avr(), print_insn_sh(), Projected_Region_From_St(), push_class_level_binding(), SD_INFO::Push_Memory_Nodes(), put_string_in_tmp(), Query_Skiplist(), read_in_module_tbl(), read_sytb_from_module_file(), relax_property_section(), relax_section(), CG_GROUPING::reserve_resource(), reshape_intrinsic(), resolve_ext_opr(), rewrite_use_outer(), Row_Echelon(), scan_fortran_macro(), scan_linker_output(), scan_parameters(), set_multilib_dir(), shape_intrinsic(), size_offset_binary_calc(), size_offset_logical_calc(), size_offset_min_max_calc(), SNL_GEN_2D_Regtile(), SNL_GEN_U_Ctiling(), SNL_INV_Compact_Scalar_Expand(), SNL_INV_Scalar_Expand(), SNL_Peel_Iteration(), Solve_For(), sort_and_combine_web_pairs(), split_branches(), supplement_binding(), SWP_Bundle_First_In_Group(), SWP_Bundle_Next_Cycle(), SWP_Bundle_Next_In_Group(), tagged_types_tu_compatible_p(), transfer_intrinsic(), tree_unroll_loop(), SNL_DEP_INFO::U_Fully_Permutable(), ubound_intrinsic(), Unit_Stride_Reference(), Unroll_Dowhile_Loop(), unroll_loop_constant_iterations(), unroll_loop_runtime_iterations(), unroll_loop_stupid(), Upper_Bound_Standardize(), validate_char_len(), validate_kind(), vax_float_literal(), vect_analyze_data_ref_accesses(), vect_analyze_loop(), vect_analyze_operations(), where_stmt_semantics(), WN_add_lno_info(), WN_dup_dep_vertex(), WN_Solve_For(), WN_Upper_Bound_Standardize(), xcoff_reloc_link_order(), and xtensa_callback_required_dependence().
| static void sort_and_combine_web_pairs PARAMS | ( | (int) | ) | [static] |
| static void add_web_pair_cost PARAMS | ( | (struct web *, struct web *, unsigned HOST_WIDE_INT, unsigned int) | ) | [static] |
| static char* hardregset_to_string PARAMS | ( | (HARD_REG_SET) | ) | [static] |
| static int count_long_blocks PARAMS | ( | (HARD_REG_SET, int) | ) | [static] |
| static int get_biased_reg PARAMS | ( | (HARD_REG_SET, HARD_REG_SET, HARD_REG_SET, HARD_REG_SET, enum machine_mode) | ) | [static] |
| int get_free_reg PARAMS | ( | (HARD_REG_SET, HARD_REG_SET, enum machine_mode) | ) |
| static int color_usable_p PARAMS | ( | (int, HARD_REG_SET, HARD_REG_SET, enum machine_mode) | ) | [static] |
| static unsigned int simplify_p PARAMS | ( | (enum node_type) | ) | [inline, static] |
Definition at line 77 of file cplus-dem.c.
Definition at line 154 of file ra-colorize.c.
References r, and remove_list().
Referenced by aggressive_coalesce(), assign_colors(), break_coalesced_spills(), coalesce(), freeze(), parts_to_webs_1(), ra_colorize_free_all(), reset_lists(), and simplify().
Definition at line 103 of file ra-colorize.c.
References abort, and dlist::prev.
Referenced by put_move(), and put_web().
Definition at line 116 of file ra-colorize.c.
References abort, dlist::next, and dlist::prev.
Referenced by put_web_at_end().
Definition at line 302 of file ra-colorize.c.
References abort, ACTIVE, CONSTRAINED, FROZEN, MV_COALESCED, push_list(), and WORKLIST.
Referenced by aggressive_coalesce(), build_worklists(), coalesce(), enable_move(), and freeze_moves().
Definition at line 180 of file ra-colorize.c.
References abort, COALESCED, COLORED, FREE, FREEZE, INITIAL, PRECOLORED, push_list(), SELECT, SIMPLIFY, SIMPLIFY_FAT, SIMPLIFY_SPILL, SPILL, SPILLED, and WEBS.
Referenced by add_worklist(), break_coalesced_spills(), build_worklists(), colorize_one_web(), combine(), decrement_degree(), detect_non_changed_webs(), freeze(), freeze_moves(), init_one_web_common(), ra_colorize_free_all(), reset_lists(), select_spill(), simplify(), spill_coalescing(), spill_propagation(), try_recolor_web(), and unalias_web().
Definition at line 274 of file ra-colorize.c.
References abort, INITIAL, PRECOLORED, push_list_end(), SIMPLIFY, and WEBS.
Referenced by unalias_web().
| void ra_colorize_free_all | ( | ) |
Definition at line 2723 of file ra-colorize.c.
References web::conflict_list, d, DLIST_WEB, FREE, free(), INITIAL, NULL, web::orig_conflict_list, pop_list(), put_web(), web::subreg_next, and WEBS.
Referenced by free_all_mem().
Definition at line 2667 of file ra-colorize.c.
References aggressive_coalesce(), assign_colors(), break_coalesced_spills(), build_worklists(), check_colors(), check_uncoalesced_moves(), coalesce(), DUMP_COSTS, dump_graph_cost(), dump_igraph(), extended_coalesce_2(), flag_ra_break_aliases, flag_ra_optimistic_coalescing, FREEZE, freeze(), recolor_spills(), rtl_dump_file, select_spill(), simplify(), SIMPLIFY, SIMPLIFY_FAT, SIMPLIFY_SPILL, SPILL, and WEBS.
Referenced by one_pass().
| void ra_colorize_init | ( | ) |
Definition at line 2713 of file ra-colorize.c.
References default_spill_heuristic().
Referenced by init_ra().
| static void recolor_spills | ( | ) | [static] |
Definition at line 1975 of file ra-colorize.c.
References alias, assign_colors(), COALESCED, comp_webs_maxcost(), DUMP_COSTS, dump_graph_cost(), flag_ra_merge_spill_costs, free(), i, id2web, insert_coalesced_conflicts(), num_subwebs, num_webs, qsort(), web::spill_cost, SPILLED, try_recolor_web(), and xmalloc().
Referenced by ra_colorize_graph().
Definition at line 136 of file ra-colorize.c.
References dlist::next, NULL, dlist::prev, and is::y.
Referenced by add_worklist(), break_coalesced_spills(), build_worklists(), colorize_one_web(), enable_move(), freeze_moves(), parts_to_webs_1(), pop_list(), remove_web_from_list(), select_spill(), spill_coalescing(), try_recolor_web(), and unalias_web().
Definition at line 520 of file ra-colorize.c.
References abort, move_list::move, move_list::next, and remove_move_1().
Referenced by coalesce(), and freeze_moves().
Definition at line 497 of file ra-colorize.c.
References move_list::move, and move_list::next.
Referenced by remove_move().
Definition at line 290 of file ra-colorize.c.
References INITIAL, PRECOLORED, remove_list(), and WEBS.
Referenced by combine(), decrement_degree(), detect_non_changed_webs(), and spill_propagation().
| void reset_lists | ( | ) |
Definition at line 220 of file ra-colorize.c.
References abort, alias, BITMAP_XFREE, COALESCED, COLORED, d, DLIST_WEB, FREE, free_dlist(), FREEZE, i, ID2WEB, INITIAL, dlist::next, NULL, num_webs, pop_list(), PRECOLORED, put_web(), SELECT, SIMPLIFY, SIMPLIFY_FAT, SIMPLIFY_SPILL, SPILL, SPILLED, web::useless_conflicts, and WEBS.
Referenced by reg_alloc().
Definition at line 2231 of file ra-colorize.c.
References abort, web::alias, COALESCED, web::conflict_list, COPY_HARD_REG_SET, find_subweb(), web::have_orig_conflicts, web::id, igraph, igraph_index, conflict_link::next, sub_conflict::next, NULL, num_webs, web::orig_conflict_list, web::orig_x, PRECOLORED, record_conflict(), RESET_BIT, sub_conflict::s, sl, conflict_link::sub, SUBWEB_P, sup_igraph, conflict_link::t, sub_conflict::t, and wl.
Referenced by break_coalesced_spills(), and colorize_one_web().
| static void select_spill | ( | ) | [static] |
Definition at line 974 of file ra-colorize.c.
References abort, d, DLIST_WEB, DUMP_PROCESS, freeze_moves(), HOST_WIDE_INT, web::is_coalesced, dlist::next, NULL, web::num_conflicts, put_web(), remove_list(), SIMPLIFY, SPILL, web::spill_temp, and WEBS.
Referenced by ra_colorize_graph().
| static void simplify | ( | ) | [static] |
Definition at line 458 of file ra-colorize.c.
References web::add_hardregs, COALESCED, web::conflict_list, d, decrement_degree(), DLIST_WEB, DUMP_PROCESS, web::id, conflict_link::next, web::num_conflicts, pop_list(), put_web(), SELECT, SIMPLIFY, SIMPLIFY_FAT, SIMPLIFY_SPILL, conflict_link::t, WEBS, and wl.
Referenced by ra_colorize_graph(), simplify_control_stmt_condition(), and thread_across_edge().
| static unsigned int simplify_p | ( | enum node_type | type | ) | [inline, static] |
Definition at line 715 of file ra-colorize.c.
References SIMPLIFY, SIMPLIFY_FAT, and SIMPLIFY_SPILL.
Referenced by combine().
| static void sort_and_combine_web_pairs | ( | int | for_move | ) | [static] |
Definition at line 2477 of file ra-colorize.c.
References abort, alias, web::color, combine, comp_web_pairs(), free(), h, hard_regs_intersect_p(), i, web::id, web_pair::larger, web_pair::next_list, num_webs, ok(), p, PRECOLORED, web::prefer_colors, qsort(), SET_HARD_REG_BIT, web_pair::smaller, sorted, sup_igraph, TEST_BIT, web::usable_regs, and xmalloc().
Referenced by aggressive_coalesce(), and extended_coalesce_2().
Definition at line 1701 of file ra-colorize.c.
References abort, web::add_hardregs, alias, c, calculate_dont_begin(), CLEAR_HARD_REG_BIT, CLEAR_HARD_REG_SET, COALESCED, web::color, COLORED, colorize_one_web(), web::conflict_list, COPY_HARD_REG_SET, web::dlink, DUMP_COLORIZE, FIRST_PSEUDO_REGISTER, free(), get_free_reg(), GET_MODE, HARD_REG_SET, HARD_REGNO_MODE_OK, HARD_REGNO_NREGS, HOST_WIDE_INT, i, web::id, conflict_link::next, nregs, num_webs, web::orig_x, PRECOLORED, put_web(), remove_list(), SELECT, SET_HARD_REG_BIT, web::spill_cost, web::spill_temp, SPILLED, conflict_link::t, TEST_HARD_REG_BIT, web::usable_regs, web::was_spilled, WEBS, wl, and xcalloc().
Referenced by recolor_spills().
Definition at line 2090 of file ra-colorize.c.
References COALESCED, NULL, put_web(), put_web_at_end(), remove_list(), SELECT, and WEBS.
Referenced by break_aliases_to_web(), and break_precolored_alias().
Definition at line 98 of file ra-colorize.c.
struct dlist * mv_coalesced [static] |
Definition at line 97 of file ra-colorize.c.
struct dlist * mv_constrained [static] |
Definition at line 97 of file ra-colorize.c.
Definition at line 98 of file ra-colorize.c.
struct dlist* mv_worklist [static] |
Definition at line 97 of file ra-colorize.c.
unsigned int num_web_pairs [static] |
Definition at line 2401 of file ra-colorize.c.
struct web_pair* web_pair_hash[WEB_PAIR_HASH_SIZE] [static] |
Definition at line 2399 of file ra-colorize.c.
struct web_pair* web_pair_list [static] |
Definition at line 2400 of file ra-colorize.c.
1.5.6