GCC Middle and Back End API Reference
et-forest.c File Reference
#include "config.h"
#include "system.h"
#include "coretypes.h"
#include "et-forest.h"
Include dependency graph for et-forest.c:

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_occet_new_occ ()
struct et_nodeet_new_tree ()
void et_free_tree ()
void et_free_tree_force ()
void et_free_pools ()
void et_set_father ()
void et_split ()
struct et_nodeet_nca ()
bool et_below ()
struct et_nodeet_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]

Function Documentation

static void check_path_after ( )
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 int check_path_after_1 ( )
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 void et_check_occ_sanity ( )
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 void 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 void et_check_tree_sanity ( )
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 ( )
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().

struct et_node* et_nca ( )
read
static struct et_occ* et_new_occ ( )
staticread
static void et_recomp_min ( )
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().

struct et_node* et_root ( )
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().

static void record_path_before ( )
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 int record_path_before_1 ( )
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().

static void set_depth ( )
inlinestatic
Changes depth of OCC to D.   

References et_occ::depth, and et_occ::min.

Referenced by et_splay().

static void set_depth_add ( )
inlinestatic
Adds D to the depth of OCC.   

References et_occ::depth, and et_occ::min.

Referenced by et_splay().

static void set_next ( )
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().

static void set_prev ( )
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().


Variable Documentation

void* datas[MAX_NODES]
static
int depths[MAX_NODES]
static
alloc_pool et_nodes
static
alloc_pool et_occurrences
static
int len
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().