GCC Middle and Back End API Reference
|
Data Structures | |
struct | et_occ |
Functions | |
static void | set_depth () |
static void | set_depth_add () |
static void | set_prev () |
static void | set_next () |
static void | et_recomp_min () |
static void | et_check_occ_sanity () |
static void | et_check_sanity () |
static void | et_check_tree_sanity () |
static int | record_path_before_1 () |
static void | record_path_before () |
static int | check_path_after_1 () |
static void | check_path_after () |
static void | et_splay () |
static struct et_occ * | et_new_occ () |
struct et_node * | et_new_tree () |
void | et_free_tree () |
void | et_free_tree_force () |
void | et_free_pools () |
void | et_set_father () |
void | et_split () |
struct et_node * | et_nca () |
bool | et_below () |
struct et_node * | et_root () |
Variables | |
static alloc_pool | et_nodes |
static alloc_pool | et_occurrences |
static int | len |
static void * | datas [MAX_NODES] |
static int | depths [MAX_NODES] |
|
static |
Checks whether the path represented by a tree containing OCC was not changed since the last recording.
References check_path_after_1(), len, and et_occ::parent.
Referenced by et_splay().
|
static |
Checks whether the path represented by OCC, with depth incremented by DEPTH, was not changed since the last recording.
References datas, et_occ::depth, depths, len, et_occ::min, et_occ::next, et_occ::of, and et_occ::prev.
Referenced by check_path_after().
bool et_below | ( | ) |
Checks whether the node UP is an ancestor of the node DOWN.
References et_check_tree_sanity(), et_splay(), et_occ::next, et_occ::parent, et_occ::prev, et_node::rightmost_occ, set_next(), and set_prev().
Referenced by dominated_by_p().
|
static |
Checks whether neighborhood of OCC seems sane.
References et_occ::next, et_occ::parent, and et_occ::prev.
Referenced by et_check_sanity().
|
static |
Checks whether tree rooted at OCC is sane.
References et_check_occ_sanity(), et_occ::next, and et_occ::prev.
Referenced by et_check_tree_sanity(), and et_splay().
|
static |
Checks whether tree containing OCC is sane.
References et_check_sanity(), and et_occ::parent.
Referenced by et_below(), et_nca(), et_set_father(), et_splay(), and et_split().
void et_free_pools | ( | void | ) |
Release the alloc pools, if they are empty.
References free_alloc_pool_if_empty().
Referenced by free_dominance_info().
void et_free_tree | ( | ) |
Releases et tree T.
References et_split(), et_node::father, pool_free(), et_node::rightmost_occ, and et_node::son.
Referenced by delete_from_dominance_info().
void et_free_tree_force | ( | ) |
Releases et tree T without maintaining other nodes.
References et_node::parent_occ, pool_free(), and et_node::rightmost_occ.
Referenced by free_dominance_info().
|
read |
Finds the nearest common ancestor of the nodes N1 and N2.
References et_occ::depth, et_check_tree_sanity(), et_splay(), et_occ::min, et_occ::min_occ, et_occ::next, et_occ::of, et_occ::parent, et_occ::prev, et_node::rightmost_occ, set_next(), and set_prev().
Referenced by nearest_common_dominator().
|
staticread |
Create a new et tree occurrence of NODE.
References create_alloc_pool(), et_occ::depth, et_occ::min, et_occ::min_occ, et_occ::next, et_occ::of, et_occ::parent, pool_alloc(), and et_occ::prev.
Referenced by et_new_tree(), and et_set_father().
|
read |
Create a new et tree containing DATA.
References create_alloc_pool(), et_node::data, et_new_occ(), et_node::father, et_node::left, et_node::parent_occ, pool_alloc(), et_node::right, et_node::rightmost_occ, and et_node::son.
Referenced by add_to_dominance_info(), and calculate_dominance_info().
|
inlinestatic |
Recompute minimum for occurrence OCC.
References et_occ::depth, et_occ::min, et_occ::min_occ, et_occ::next, and et_occ::prev.
Referenced by et_set_father(), et_splay(), and et_split().
|
read |
Returns the root of the tree that contains NODE.
References et_splay(), et_occ::next, and et_node::rightmost_occ.
Referenced by root_of_dom_tree().
void et_set_father | ( | ) |
Sets father of et tree T to FATHER.
References et_occ::depth, et_check_tree_sanity(), et_new_occ(), et_recomp_min(), et_splay(), et_node::father, et_node::left, et_occ::min, et_occ::min_occ, et_node::parent_occ, et_occ::prev, record_path_before(), et_node::right, et_node::rightmost_occ, set_next(), set_prev(), and et_node::son.
Referenced by calculate_dominance_info(), redirect_immediate_dominators(), and set_immediate_dominator().
|
static |
Splay the occurrence OCC to the root of the tree.
References check_path_after(), et_occ::depth, et_check_sanity(), et_check_tree_sanity(), et_recomp_min(), et_occ::min, et_occ::min_occ, et_occ::next, et_occ::parent, et_occ::prev, record_path_before(), set_depth(), set_depth_add(), set_next(), and set_prev().
Referenced by et_below(), et_nca(), et_root(), et_set_father(), and et_split().
void et_split | ( | ) |
Splits the edge from T to its father.
References et_occ::depth, et_check_tree_sanity(), et_recomp_min(), et_splay(), et_node::father, et_node::left, et_occ::min, et_occ::next, et_occ::parent, et_node::parent_occ, pool_free(), et_occ::prev, record_path_before(), et_node::right, et_node::rightmost_occ, set_prev(), and et_node::son.
Referenced by et_free_tree(), redirect_immediate_dominators(), and set_immediate_dominator().
|
static |
Records the path represented by a tree containing OCC.
References len, et_occ::parent, and record_path_before_1().
Referenced by et_set_father(), et_splay(), and et_split().
|
static |
Records the path represented by OCC, with depth incremented by DEPTH.
References et_node::data, datas, et_occ::depth, depths, len, et_occ::min, et_occ::next, et_occ::of, and et_occ::prev.
Referenced by record_path_before().
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
Sets next field of OCC to P.
References et_occ::next, and et_occ::parent.
Referenced by et_below(), et_nca(), et_set_father(), and et_splay().
|
inlinestatic |
Sets prev field of OCC to P.
References et_occ::parent, and et_occ::prev.
Referenced by et_below(), et_nca(), et_set_father(), et_splay(), and et_split().
|
static |
Referenced by check_path_after_1(), and record_path_before_1().
|
static |
Referenced by check_path_after_1(), and record_path_before_1().
|
static |
|
static |
|
static |
Referenced by add_ehspec_entry(), add_mnemonic_string(), add_names_to_union_domain(), add_prefix(), add_standard_paths(), add_to_sequence(), adjust_last_stmt(), alter_constraints(), alter_output_for_insn(), alter_predicate_for_insn(), array_value_type(), asm_operand_ok(), assign_parm_adjust_entry_rtl(), attr_string(), vec< T, A, vl_embed >::block_remove(), bp_unpack_string(), bt_callback(), build_cdtor(), build_string(), build_var(), build_vl_exp_stat(), can_move_by_pieces(), can_store_by_pieces(), canon_file_name(), canonicalize_name(), cgraph_get_body(), check_global_declarations(), check_path_after(), check_path_after_1(), cl_option_hash_eq(), cl_option_hash_hash(), clear_by_pieces(), clone_function_name(), collect_insn_data(), common_handle_option(), compare_debug_auxbase_opt_spec_function(), computed_jump_p(), const_hash_1(), const_with_all_bytes_same(), constrain_operands(), convert_filename(), convert_white_space(), vec< T, A, vl_embed >::copy(), copy_function(), copy_rtx_if_shared_1(), coverage_init(), create_array(), dbxout_finish_complex_stabs(), decode_cmdline_option(), default_elf_asm_output_ascii(), default_function_rodata_section(), delete_insn(), delete_related_insns(), df_prune_to_subcfg(), diagnostic_show_locus(), do_niy(), do_spec_1(), driver_handle_option(), dump_generic_node(), duplicate_alternatives(), duplicate_each_alternative(), dw2_asm_output_nstring(), emit_debug_global_declarations(), emit_group_load_1(), ensure_ops_are_available(), expand_builtin_memcmp(), expand_builtin_memcpy(), expand_builtin_memory_chk(), expand_builtin_mempcpy(), expand_builtin_memset(), expand_builtin_stpcpy(), expand_builtin_strcmp(), expand_builtin_strlen(), expand_builtin_strncmp(), expand_builtin_strncpy(), expand_compound_operation(), expand_field_assignment(), expand_omp_sections(), expand_used_vars(), expr_invariant_in_loop_p(), file_at_path(), find_a_file(), find_matching_operand(), find_operand(), find_reloads(), find_split_point(), find_string_form(), fold_builtin_memory_chk(), fold_builtin_memory_op(), fold_builtin_printf(), fold_builtin_snprintf(), fold_builtin_snprintf_chk_1(), fold_builtin_sprintf_chk_1(), fold_builtin_stpcpy(), fold_builtin_strcat(), fold_builtin_strlen(), fold_builtin_stxcpy_chk(), fold_builtin_stxncpy_chk(), fold_checksum_tree(), fold_ternary_loc(), fold_view_convert_expr(), for_each_path(), form_allocno_hard_regs_nodes_forest(), double_int::from_buffer(), gen_exp(), gen_insn(), gen_intv_fp_libfunc(), gen_libfunc(), gen_producer_string(), gen_regexp_el(), get_adjustment_for_base(), get_allocno_hard_regs_subnodes_num(), get_alternatives_number(), get_file_function_name(), get_last_value_validate(), get_mem_refs_of_builtin_call(), get_param_index(), get_pattern_stats(), get_pattern_stats_1(), get_pos_from_mask(), get_spaces(), get_ssa_name_ann(), getenv_spec_function(), gimplify_asm_expr(), haifa_classify_rtx(), handle_builtin_memcpy(), handle_builtin_strcat(), handle_builtin_strcpy(), hash_c_test(), hash_loc_operands(), index_in_adjustments_multiple_times_p(), inequality_comparisons_p(), init_asm_output(), init_attributes(), init_cloog_input_file(), init_insn_reg_pressure_info(), init_sync_libfuncs_1(), inline_read_summary(), input_cgraph_opt_summary(), input_eh_regions(), input_identifier(), input_phi(), input_struct_function_base(), input_symtab(), ipa_dump_param_adjustments(), ipa_modify_call_arguments(), ipa_modify_formal_parameters(), ipa_profile_read_summary(), ipa_prop_read_all_agg_replacement(), ipa_prop_read_jump_functions(), ipa_reference_read_optimization_summary(), ira_allocate_and_accumulate_costs(), ira_allocate_and_copy_costs(), ira_allocate_and_set_costs(), ira_allocate_and_set_or_copy_costs(), is_and_set_subset_of(), is_ctor_dtor(), is_or_set_subset_of(), is_subset_of_any(), list_length(), lto_data_in_create(), lto_get_section_data(), lto_input_location(), lto_input_toplevel_asms(), lto_input_tree_1(), lto_output_data_stream(), lto_read_body(), main(), make_field_assignment(), make_phi_node(), make_tree_vec_stat(), make_vector_stat(), mangle_name(), mark_matching_switches(), mark_operands_from_match_dup(), mark_operands_used_in_match_dup(), match_rtx(), max_operand_1(), maybe_emit_chk_warning(), maybe_emit_sprintf_chk_warning(), mergeable_string_section(), mf_build_string(), move_by_pieces(), move_deaths(), num_operands(), optimize_one_addr_into_implicit_ptr(), outermost_invariant_loop_for_expr(), output_die(), output_file_directive(), output_loc_operands(), output_macinfo_op(), output_phi(), output_ssa_names(), pack_ts_optimization(), pack_ts_target_option(), parse_plugin_arg_opt(), preprocess_case_label_vec_for_gimple(), print_filtered_help(), print_multilib_info(), print_node(), print_path(), print_single_switch(), process_alt_operands(), process_command(), pure_const_read_summary(), vec< T, A, vl_embed >::quick_grow(), read_cmdline_option(), read_line(), reassociate_bb(), recalculate_side_effects(), record_path_before(), record_path_before_1(), record_potential_iterator_use(), reg_class_from_constraints(), release_pages(), release_phi_node(), renumerate_operands_in_pattern(), replace_duplicating_operands_in_pattern(), reposition_prologue_and_epilogue_notes(), reserve_phi_args_for_new_edge(), resize_phi_node(), resolve_one_addr(), run_gcc(), save_macinfo_strings(), save_string(), scan_linker_output(), set_index(), shorten_branches(), simplify_cond(), simplify_gimple_switch_label_vec(), spec_path(), sprint_ul(), sra_ipa_modify_expr(), sra_ipa_reset_debug_stmts(), stack_protect_classify_type(), stmt_kills_ref_p_1(), store_by_pieces(), streamer_alloc_tree(), streamer_read_string(), streamer_read_string_cst(), streamer_read_uhwi(), streamer_string_index(), string_cst_pool_decl(), string_for_index(), subst(), subst_dup(), subst_pattern_match(), switch_matches(), TB_getline(), try_combine(), unpack_ts_optimization(), unpack_ts_target_option(), update_path(), used_arg(), validate_insn_alternatives(), validate_pattern(), validate_switches(), vec_safe_grow(), vec_safe_grow_cleared(), vect_estimate_min_profitable_iters(), verify_rtx_sharing(), vinsn_vec_clear(), vn_reference_lookup_3(), walk_rtx(), walk_tree_1(), wrap_help(), wrapup_global_declarations(), write_extract_subexp(), write_global_declarations(), write_insn_constraint_len(), write_langs(), and xcoffout_declare_function().