GCC Middle and Back End API Reference
|
Data Structures | |
struct | freeing_string_slot_hasher |
Variables | |
static hash_table < freeing_string_slot_hasher > | file_name_hash_table |
|
static |
Lookup STRING in file_name_hash_table. If found, return the existing string, otherwise insert STRING as the canonical version.
References hash_table< Descriptor, Allocator >::find_slot(), len, string_slot::len, memcpy(), string_slot::s, and strlen().
Referenced by lto_input_location().
|
static |
Fixup call_stmt pointers in NODE and all clones.
References cgraph_node::clone_of, cgraph_node::clones, symtab_node_base::decl, fixup_call_stmt_edges_1(), cgraph_node::next_sibling_clone, and cgraph_node::symbol.
Referenced by input_function().
|
static |
Go through all NODE edges and fixup call_stmt pointers so they point to STMTS.
References cgraph_edge::call_stmt, cgraph_node::callees, fatal_error(), gimple_stmt_max_uid(), cgraph_node::indirect_calls, ipa_ref::lto_stmt_uid, cgraph_edge::lto_stmt_uid, cgraph_edge::next_callee, symtab_node_base::ref_list, ipa_ref::stmt, and cgraph_node::symbol.
Referenced by fixup_call_stmt_edges().
|
static |
After reading the EH regions, pointers to peer and children regions are region numbers. This converts all these region numbers into real pointers into the rematerialized regions for FN. ROOT_REGION is the region number for the root EH region in FN.
References eh_landing_pad_d::index, eh_region_d::index, eh_region_d::inner, eh_region_d::landing_pads, eh_landing_pad_d::next_lp, eh_region_d::next_peer, eh_region_d::outer, and eh_landing_pad_d::region.
Referenced by input_eh_regions().
|
static |
Read the CFG for function FN from input block IB.
References alloc_loop(), loop::any_estimate, loop::any_upper_bound, apply_scale(), cfun, count, edge_def::count, EST_LAST, loop::estimate_state, flow_loop_tree_node_add(), flow_loops_find(), loop::header, double_int::high, init_empty_tree_cfg_for_function(), init_loops_structure(), init_ssa_operands(), loops::larray, basic_block_def::loop_father, double_int::low, make_edge(), make_new_block(), loop::nb_iterations_estimate, loop::nb_iterations_upper_bound, basic_block_def::next_bb, place_new_loop(), basic_block_def::prev_bb, edge_def::probability, PROFILE_LAST, set_loops_for_fn(), streamer_read_gcov_count(), streamer_read_hwi(), streamer_read_uhwi(), loops::tree_root, and vec_safe_grow_cleared().
Referenced by input_function().
|
static |
Read and return EH landing pad IX from input block IB, using descriptors in DATA_IN.
References eh_landing_pad_d::index, LTO_eh_landing_pad, LTO_null, lto_tag_check_range(), eh_landing_pad_d::next_lp, eh_landing_pad_d::post_landing_pad, eh_landing_pad_d::region, streamer_read_hwi(), and streamer_read_record_start().
Referenced by input_eh_regions().
|
static |
Read and return EH region IX from input block IB, using descriptors in DATA_IN.
References add_type_for_runtime(), eh_region_d::eh_region_u::allowed, eh_region_d::eh_region_u::eh_try, ERT_ALLOWED_EXCEPTIONS, ERT_CLEANUP, ERT_MUST_NOT_THROW, ERT_TRY, eh_region_d::eh_region_u::eh_region_u_must_not_throw::failure_decl, eh_region_d::eh_region_u::eh_region_u_must_not_throw::failure_loc, eh_region_d::eh_region_u::eh_region_u_allowed::filter, eh_region_d::eh_region_u::eh_region_u_try::first_catch, eh_region_d::index, eh_region_d::inner, eh_region_d::eh_region_u::eh_region_u_allowed::label, eh_region_d::landing_pads, eh_region_d::eh_region_u::eh_region_u_try::last_catch, LTO_ert_allowed_exceptions, LTO_ert_cleanup, LTO_ert_must_not_throw, LTO_ert_try, lto_input_eh_catch_list(), LTO_null, eh_region_d::eh_region_u::must_not_throw, eh_region_d::next_peer, eh_region_d::outer, streamer_read_bitpack(), streamer_read_hwi(), streamer_read_record_start(), streamer_read_uhwi(), eh_region_d::type, eh_region_d::eh_region_u::eh_region_u_allowed::type_list, and eh_region_d::u.
Referenced by input_eh_regions().
|
static |
Read the exception table for FN from IB using the data descriptors in DATA_IN.
References fixup_eh_region_pointers(), HOST_WIDE_INT, input_eh_lp(), input_eh_region(), len, LTO_eh_table, lto_init_eh(), LTO_null, lto_tag_check_range(), streamer_read_hwi(), streamer_read_record_start(), streamer_read_uchar(), targetm, and vec_safe_grow_cleared().
Referenced by input_function().
|
static |
Read the body of function FN_DECL from DATA_IN using input block IB.
References bb_seq(), CDI_DOMINATORS, CDI_POST_DOMINATORS, cfun, cgraph_get_create_node(), cgraph_node::count_materialization_scale, ei_edge(), execute_all_ipa_stmt_fixups(), fixup_call_stmt_edges(), free(), free_dominance_info(), function::gimple_df, gimple_register_cfg_hooks(), gimple_set_body(), gimple_set_uid(), gimple_stmt_max_uid(), gimple_uid(), gsi_end_p(), gsi_next(), gsi_remove(), gsi_start_bb(), gsi_start_phis(), gsi_stmt(), gimple_df::in_ssa_p, inc_gimple_stmt_max_uid(), init_tree_ssa(), input_bb(), input_cfg(), input_eh_regions(), input_ssa_names(), input_struct_function_base(), is_gimple_debug(), LTO_function, lto_tag_check(), push_struct_function(), set_gimple_stmt_max_uid(), streamer_read_chain(), streamer_read_record_start(), streamer_read_uhwi(), and update_ssa().
Referenced by lto_read_body().
|
static |
Read the SSA names array for function FN from DATA_IN using input block IB.
References cfun, gimple_build_nop(), init_ssanames(), make_ssa_name_fn(), set_ssa_default_def(), streamer_read_uchar(), and streamer_read_uhwi().
Referenced by input_function().
|
static |
Input the base body of struct function FN from DATA_IN using input block IB.
References bp_unpack_value(), len, streamer_read_bitpack(), streamer_read_hwi(), streamer_read_uhwi(), and vec_safe_grow_cleared().
Referenced by input_function().
|
read |
Create a new data_in object for FILE_DATA. STRINGS is the string table to use with LEN strings. RESOLUTIONS is the vector of linker resolutions (NULL if not using a linker plugin).
References data_in::file_data, data_in::globals_resolution, len, data_in::reader_cache, streamer_tree_cache_create(), data_in::strings, and data_in::strings_len.
Referenced by inline_read_section(), input_cgraph_opt_section(), ipa_prop_read_section(), lto_input_toplevel_asms(), lto_read_body(), and read_replacements_section().
void lto_data_in_delete | ( | ) |
Remove DATA_IN.
References free(), data_in::globals_resolution, data_in::labels, data_in::reader_cache, and streamer_tree_cache_delete().
Referenced by inline_read_section(), input_cgraph_opt_section(), ipa_prop_read_section(), lto_input_toplevel_asms(), lto_read_body(), and read_replacements_section().
void lto_init_eh | ( | void | ) |
Initialize EH support.
References init_eh().
Referenced by input_eh_regions(), and lto_input_ts_function_decl_tree_pointers().
void lto_input_data_block | ( | ) |
Read LENGTH bytes from STREAM to ADDR.
References buffer, and streamer_read_uchar().
|
staticread |
Read and return a double-linked list of catch handlers from input block IB, using descriptors in DATA_IN.
References add_type_for_runtime(), eh_catch_d::filter_list, first, eh_catch_d::label, LTO_eh_catch, lto_tag_check_range(), eh_catch_d::prev_catch, streamer_read_record_start(), and eh_catch_d::type_list.
Referenced by input_eh_region().
void lto_input_function_body | ( | struct lto_file_decl_data * | file_data, |
tree | fn_decl, | ||
const char * | data | ||
) |
Read the body of FN_DECL using DATA. FILE_DATA holds the global decls and types.
References lto_read_body(), and LTO_section_function_body.
Referenced by cgraph_get_body().
location_t lto_input_location | ( | ) |
Read a location bitpack from input block IB.
References bp_unpack_value(), bp_unpack_var_len_unsigned(), canon_file_name(), current_file, len, line_table, and string_for_index().
Referenced by lto_streamer_hooks_init().
hashval_t lto_input_scc | ( | struct lto_input_block * | ib, |
struct data_in * | data_in, | ||
unsigned * | len, | ||
unsigned * | entry_len | ||
) |
Populate the reader cache with trees materialized from the SCC following in the IB, DATA_IN stream.
References first, LTO_builtin_decl, LTO_field_decl_ref, LTO_global_decl_ref, lto_input_tree_1(), LTO_integer_cst, LTO_null, lto_read_tree_1(), LTO_tree_pickle_reference, LTO_tree_scc, streamer_tree_cache_d::nodes, data_in::reader_cache, streamer_alloc_tree(), streamer_read_record_start(), streamer_read_uchar(), streamer_read_uhwi(), streamer_tree_cache_append(), and streamer_tree_cache_get_tree().
Referenced by lto_input_tree_1().
void lto_input_toplevel_asms | ( | ) |
Input toplevel asms.
References add_asm_node(), len, lto_check_version(), lto_data_in_create(), lto_data_in_delete(), lto_free_section_data(), lto_get_section_data(), lto_asm_header::lto_header, LTO_section_asm, lto_asm_header::main_size, lto_header::major_version, lto_header::minor_version, asm_node::order, order_base, streamer_read_hwi(), streamer_read_string_cst(), lto_asm_header::string_size, symtab_order, and vNULL.
Referenced by input_cgraph_1().
tree lto_input_tree | ( | ) |
References lto_input_tree_1(), and streamer_read_record_start().
Referenced by lto_input_tree_1(), and lto_streamer_hooks_init().
tree lto_input_tree_1 | ( | struct lto_input_block * | ib, |
struct data_in * | data_in, | ||
enum LTO_tags | tag, | ||
hashval_t | hash | ||
) |
Read a tree from input block IB using the per-file context in DATA_IN. This context is used, for example, to resolve references to previously read nodes.
References build_int_cst_wide(), cfun, HOST_WIDE_INT, len, LTO_builtin_decl, LTO_field_decl_ref, LTO_global_decl_ref, lto_input_scc(), lto_input_tree(), lto_input_tree_ref(), LTO_integer_cst, LTO_null, LTO_NUM_TAGS, lto_read_tree(), LTO_tree_pickle_reference, LTO_tree_scc, data_in::reader_cache, streamer_get_builtin_tree(), streamer_get_pickled_tree(), streamer_read_hwi(), streamer_read_uhwi(), and streamer_tree_cache_append().
Referenced by lto_input_scc(), and lto_input_tree().
tree lto_input_tree_ref | ( | struct lto_input_block * | ib, |
struct data_in * | data_in, | ||
struct function * | fn, | ||
enum LTO_tags | tag | ||
) |
Read a reference to a tree node from DATA_IN using input block IB. TAG is the expected node that should be found in IB, if TAG belongs to one of the indexable trees, expect to read a reference index to be looked up in one of the symbol tables, otherwise read the pysical representation of the tree using stream_read_tree. FN is the function scope for the read tree.
References data_in::file_data, HOST_WIDE_INT, LTO_const_decl_ref, LTO_field_decl_ref, LTO_function_decl_ref, LTO_global_decl_ref, LTO_imported_decl_ref, LTO_label_decl_ref, LTO_namespace_decl_ref, LTO_result_decl_ref, LTO_ssa_name_ref, lto_tag_check_range(), LTO_translation_unit_decl_ref, LTO_type_decl_ref, LTO_type_ref, and streamer_read_uhwi().
Referenced by lto_input_tree_1().
|
static |
Read the body from DATA for function FN_DECL and fill it in. FILE_DATA are the global decls and types. SECTION_TYPE is either LTO_section_function_body or LTO_section_static_initializer. If section type is LTO_section_function_body, FN must be the decl for that function.
References cache, lto_function_header::cfg_size, cgraph_get_node(), lto_file_decl_data::current_decl_state, lto_file_decl_data::global_decl_state, input_function(), len, lto_check_version(), lto_data_in_create(), lto_data_in_delete(), lto_get_function_in_decl_state(), LTO_section_function_body, streamer_tree_cache_d::nodes, pop_cfun(), data_in::reader_cache, streamer_tree_cache_get_tree(), and vNULL.
Referenced by lto_input_function_body().
|
static |
Read the physical representation of a tree node with tag TAG from input block IB using the per-file context in DATA_IN.
References lto_read_tree_1(), data_in::reader_cache, streamer_alloc_tree(), streamer_read_uchar(), and streamer_tree_cache_append().
Referenced by lto_input_tree_1().
|
static |
Read the physical representation of a tree node EXPR from input block IB using the per-file context in DATA_IN.
References lto_orig_address_remove(), streamer_handle_as_builtin_p(), streamer_read_tree_bitfields(), and streamer_read_tree_body().
Referenced by lto_input_scc(), and lto_read_tree().
void lto_reader_init | ( | void | ) |
Initialization for the LTO reader.
References hash_table< Descriptor, Allocator >::create(), and lto_streamer_init().
void lto_tag_check_set | ( | ) |
Check that tag ACTUAL has one of the given values. NUM_TAGS is the number of valid tag values to check.
References internal_error(), and lto_tag_name().
Referenced by input_bb().
|
static |
Make a new basic block with index INDEX in function FN.
References alloc_block(), and basic_block_def::index.
Referenced by input_cfg().
|
static |
The table to hold the file names.