23#ifndef GCC_LTO_STREAMER_H
24#define GCC_LTO_STREAMER_H
26#include "plugin-api.h"
124#define LTO_major_version GCC_major_version
125#define LTO_minor_version 0
533 return htab_hash_pointer (s->fn_decl);
539 return a->fn_decl ==
b->fn_decl;
616 unsigned HOST_WIDE_INT
id;
654 return linemap_id + file_data->
order;
723 hashval_t
r = ds->
len;
726 for (
i = 0;
i < ds->
len;
i++)
727 r =
r * 67 + (
unsigned)ds->
s[
i] - 113;
737 return memcmp (ds1->
s, ds2->
s, ds1->
len) == 0;
828 const char *,
int,
size_t *,
829 bool decompress =
false);
835 const char *,
int,
size_t *);
838 const char *,
const char *,
size_t,
839 bool decompress =
false);
842 const char *,
const char *,
size_t);
845 const char *,
const char *);
856 HOST_WIDE_INT, HOST_WIDE_INT,
907 const char *,
unsigned,
909 bool need_location_cache =
true);
918 unsigned *,
unsigned *,
bool);
991 struct cl_target_option *);
995 struct cl_target_option *);
998 struct bitpack_d *,
struct cl_optimization *);
1001 struct bitpack_d *,
struct cl_optimization *);
1078 if (actual != expected)
1079 internal_error (
"bytecode stream: expected tag %s instead of %s",
1088 if (actual < tag1 || actual > tag2)
1089 internal_error (
"bytecode stream: tag %s is not in the expected range "
1101 encoder->
trees.create (0);
1113 encoder->
trees.release ();
1120 return encoder->
trees.length ();
1128 return encoder->
trees[idx];
1135 return encoder->
nodes.length ();
1139#define LCC_NOT_FOUND (-1)
1195 return encoder->
nodes[ref].node;
Definition lto-streamer.h:788
data_in(lto_file_decl_data *data_for_loc)
Definition lto-streamer.h:808
vec< ld_plugin_symbol_resolution_t > globals_resolution
Definition lto-streamer.h:800
lto_location_cache location_cache
Definition lto-streamer.h:806
struct streamer_tree_cache_d * reader_cache
Definition lto-streamer.h:803
unsigned int strings_len
Definition lto-streamer.h:797
struct lto_file_decl_data * file_data
Definition lto-streamer.h:791
const char * strings
Definition lto-streamer.h:794
Value * get(const Key &k)
Definition hash-map.h:189
Definition hash-table.h:375
Definition lto-streamer.h:275
void revert_location_cache()
Definition lto-streamer-in.cc:439
size_t stream_map_idx
Definition lto-streamer.h:335
location_t stream_loc_offset
Definition lto-streamer.h:336
tree stream_block
Definition lto-streamer.h:333
lto_file_decl_data *const decl_data
Definition lto-streamer.h:325
lto_location_cache(lto_file_decl_data *loc_data)
Definition lto-streamer.h:292
unsigned stream_discr
Definition lto-streamer.h:334
auto_vec< cached_location > loc_cache
Definition lto-streamer.h:330
unsigned accepted_length
Definition lto-streamer.h:344
void accept_location_cache()
Definition lto-streamer-in.cc:430
~lto_location_cache()
Definition lto-streamer.h:301
unsigned linemap_offset
Definition lto-streamer.h:327
const lto_loc_map * cur_loc_map
Definition lto-streamer.h:326
void input_location_and_block(location_t *dest, struct bitpack_d *bp, class lto_input_block *ib, class data_in *data_in)
Definition lto-streamer-in.cc:599
bool apply_location_cache()
Definition lto-streamer-in.cc:407
location_t current_loc
Definition lto-streamer.h:340
static lto_location_cache * current_cache
Definition lto-streamer.h:313
void set_linemap_offset(unsigned offset)
Definition lto-streamer.h:290
cached_location current_cloc
Definition lto-streamer.h:339
Definition lra-spills.cc:101
#define GTY(x)
Definition coretypes.h:41
union tree_node * tree
Definition coretypes.h:97
void internal_error(const char *,...) ATTRIBUTE_GCC_DIAG(1
void ATTRIBUTE_NORETURN
Definition diagnostic-core.h:76
tree_code
Definition genmatch.cc:1002
gimple_code
Definition gimple.h:33
bool is_a(U *p)
Definition is-a.h:230
T dyn_cast(U *p)
Definition is-a.h:280
bool lto_symtab_encoder_in_partition_p(lto_symtab_encoder_t encoder, toplevel_node *node)
Definition lto-cgraph.cc:213
const char * lto_section_name[LTO_N_SECTION_TYPES]
Definition lto-section-in.cc:35
vec< lto_out_decl_state_ptr > lto_function_decl_states
Definition lto-section-out.cc:40
vec< dref_entry > dref_queue
Definition lto-streamer-in.cc:1769
const char * lto_tag_name(enum LTO_tags tag)
Definition lto-streamer.cc:47
FILE * streamer_dump_file
Definition lto-streamer.cc:42
struct lto_stats_d lto_stats
Definition lto-streamer.cc:36
bool lto_stream_offload_p
Definition lto-streamer.cc:40
void lto_section_overrun(class lto_input_block *) ATTRIBUTE_NORETURN
Definition lto-section-in.cc:458
void lto_input_variable_constructor(struct lto_file_decl_data *, struct varpool_node *, const char *)
Definition lto-streamer-in.cc:1760
void lto_output_init_mode_table(void)
Definition lto-streamer-out.cc:3556
struct lto_out_decl_state * lto_get_out_decl_state(void)
Definition lto-section-out.cc:232
void lto_free_function_in_decl_state(struct lto_in_decl_state *)
Definition lto-section-in.cc:424
tree lto_input_tree(class lto_input_block *, class data_in *)
Definition lto-streamer-in.cc:2007
void lto_free_file_name_hash(void)
Definition lto-streamer-in.cc:2239
void lto_record_function_out_decl_state(tree, struct lto_out_decl_state *)
Definition lto-section-out.cc:258
void lsei_next(lto_symtab_encoder_iterator *lsei)
Definition lto-streamer.h:1161
void input_toplevel_asms(void)
Definition lto-cgraph.cc:1890
void cl_optimization_stream_out(struct output_block *, struct bitpack_d *, struct cl_optimization *)
struct lto_symtab_encoder_d * lto_symtab_encoder_t
Definition lto-streamer.h:488
struct lto_out_decl_state * lto_out_decl_state_ptr
Definition lto-streamer.h:569
lto_symtab_encoder_iterator lsei_start_in_partition(lto_symtab_encoder_t encoder)
Definition lto-streamer.h:1221
struct lto_in_decl_state * lto_get_function_in_decl_state(struct lto_file_decl_data *, tree)
Definition lto-section-in.cc:410
lto_symtab_encoder_t compute_ltrans_boundary(lto_symtab_encoder_t encoder)
Definition lto-cgraph.cc:872
bool lto_symtab_encoder_delete_node(lto_symtab_encoder_t, toplevel_node *)
Definition lto-cgraph.cc:139
void lto_input_cgraph(struct lto_file_decl_data *, const char *)
void lto_write_raw_data(const void *, unsigned int)
Definition lto-section-out.cc:112
char * lto_get_section_name(int, const char *, int, struct lto_file_decl_data *)
Definition lto-streamer.cc:103
htab_t lto_create_renaming_table(void)
Definition lto-section-in.cc:333
const char * lto_get_summary_section_data(struct lto_file_decl_data *, enum lto_section_type, size_t *)
Definition lto-section-in.cc:185
void print_lto_report(const char *)
Definition lto-streamer.cc:164
bool lto_symtab_encoder_in_partition_p(lto_symtab_encoder_t, toplevel_node *)
Definition lto-cgraph.cc:213
void lto_free_function_in_decl_state_for_node(symtab_node *)
Definition lto-section-in.cc:436
enum tree_code lto_tag_to_tree_code(enum LTO_tags tag)
Definition lto-streamer.h:1068
lto_symtab_encoder_iterator lsei_start_variable_in_partition(lto_symtab_encoder_t encoder)
Definition lto-streamer.h:1272
void lto_output_tree(struct output_block *, tree, bool, bool)
Definition lto-streamer-out.cc:2011
void lto_destroy_simple_output_block(struct lto_simple_output_block *)
Definition lto-section-out.cc:171
tree lto_input_tree_1(class lto_input_block *, class data_in *, enum LTO_tags, hashval_t hash)
Definition lto-streamer-in.cc:1953
bool referenced_from_this_partition_p(symtab_node *, lto_symtab_encoder_t)
Definition lto-cgraph.cc:360
void stream_write_tree_ref(struct output_block *, tree)
Definition lto-streamer-out.cc:657
struct lto_file_decl_data * lto_file_decl_data_ptr
Definition lto-streamer.h:657
const char * lto_get_decl_name_mapping(struct lto_file_decl_data *, const char *)
Definition lto-section-in.cc:367
void cl_optimization_stream_in(class data_in *, struct bitpack_d *, struct cl_optimization *)
void lto_copy_linemaps()
Definition lto-streamer-out.cc:2974
void lsei_next_function_in_partition(lto_symtab_encoder_iterator *lsei)
Definition lto-streamer.h:1235
bool lto_symtab_encoder_encode_body_p(lto_symtab_encoder_t, struct cgraph_node *)
Definition lto-cgraph.cc:181
void lto_free_section_data_f(struct lto_file_decl_data *, enum lto_section_type, const char *, const char *, size_t)
Definition lto-streamer.h:256
void lto_tag_check(enum LTO_tags actual, enum LTO_tags expected)
Definition lto-streamer.h:1076
struct lto_in_decl_state * lto_in_decl_state_ptr
Definition lto-streamer.h:526
tree lto_tree_ref_encoder_get_tree(struct lto_tree_ref_encoder *encoder, unsigned int idx)
Definition lto-streamer.h:1125
struct lto_out_decl_state * lto_new_out_decl_state(void)
Definition lto-section-out.cc:200
lto_symtab_encoder_iterator lsei_start_function_in_partition(lto_symtab_encoder_t encoder)
Definition lto-streamer.h:1246
enum gimple_code lto_tag_to_gimple_code(enum LTO_tags tag)
Definition lto-streamer.h:1049
LTO_tags
Definition lto-streamer.h:134
@ LTO_ert_allowed_exceptions
Definition lto-streamer.h:183
@ LTO_tree_scc
Definition lto-streamer.h:152
@ LTO_ert_try
Definition lto-streamer.h:182
@ LTO_bb1
Definition lto-streamer.h:169
@ LTO_eh_catch
Definition lto-streamer.h:190
@ LTO_NUM_TAGS
Definition lto-streamer.h:193
@ LTO_global_stream_ref
Definition lto-streamer.h:147
@ LTO_ert_must_not_throw
Definition lto-streamer.h:184
@ LTO_tree_pickle_reference
Definition lto-streamer.h:138
@ LTO_null
Definition lto-streamer.h:135
@ LTO_bb0
Definition lto-streamer.h:168
@ LTO_eh_region
Definition lto-streamer.h:172
@ LTO_ssa_name_ref
Definition lto-streamer.h:149
@ LTO_trees
Definition lto-streamer.h:155
@ LTO_first_tree_tag
Definition lto-streamer.h:162
@ LTO_function
Definition lto-streamer.h:175
@ LTO_first_gimple_tag
Definition lto-streamer.h:165
@ LTO_eh_landing_pad
Definition lto-streamer.h:187
@ LTO_integer_cst
Definition lto-streamer.h:158
@ LTO_eh_table
Definition lto-streamer.h:178
@ LTO_ert_cleanup
Definition lto-streamer.h:181
void lto_output_location_and_block(struct output_block *, struct bitpack_d *, location_t)
Definition lto-streamer-out.cc:473
enum ld_plugin_symbol_resolution ld_plugin_symbol_resolution_t
Definition lto-streamer.h:239
bool lsei_end_p(lto_symtab_encoder_iterator lsei)
Definition lto-streamer.h:1154
void lto_begin_section(const char *, bool)
Definition lto-section-out.cc:66
void lto_input_data_block(class lto_input_block *, void *, size_t)
Definition lto-streamer-in.cc:132
bool referenced_from_other_partition_p(struct ipa_ref_list *, lto_symtab_encoder_t)
toplevel_node * lto_symtab_encoder_deref(lto_symtab_encoder_t encoder, int ref)
Definition lto-streamer.h:1190
void lto_write_data(const void *, unsigned int)
Definition lto-section-out.cc:101
unsigned lto_linemap_output_id(unsigned linemap_id, const lto_file_decl_data *file_data)
Definition lto-streamer.h:652
void output_symtab(void)
Definition lto-cgraph.cc:1032
void lto_streamer_hooks_init(void)
Definition lto-streamer.cc:284
void produce_asm(struct output_block *ob)
Definition lto-streamer-out.cc:2463
struct output_block * create_output_block(enum lto_section_type)
Definition lto-streamer-out.cc:75
void lto_delete_in_decl_state(struct lto_in_decl_state *)
Definition lto-section-in.cc:397
void cl_target_option_stream_out(struct output_block *, struct bitpack_d *, struct cl_target_option *)
void lto_input_mode_table(struct lto_file_decl_data *)
Definition lto-streamer-in.cc:2080
void lsei_next_in_partition(lto_symtab_encoder_iterator *lsei)
Definition lto-streamer.h:1211
lto_decl_stream_e_t
Definition lto-streamer.h:234
@ LTO_N_DECL_STREAMS
Definition lto-streamer.h:236
@ LTO_DECL_STREAM
Definition lto-streamer.h:235
lto_section_type
Definition lto-streamer.h:204
@ LTO_section_offload_table
Definition lto-streamer.h:222
@ LTO_section_symtab
Definition lto-streamer.h:208
@ LTO_section_decls
Definition lto-streamer.h:205
@ LTO_section_cgraph_opt_sum
Definition lto-streamer.h:218
@ LTO_section_linemap
Definition lto-streamer.h:228
@ LTO_section_jump_functions
Definition lto-streamer.h:212
@ LTO_section_ipa_modref
Definition lto-streamer.h:227
@ LTO_section_ipa_fn_summary
Definition lto-streamer.h:219
@ LTO_section_ipcp_transform
Definition lto-streamer.h:220
@ LTO_section_ipa_pure_const
Definition lto-streamer.h:213
@ LTO_section_lto
Definition lto-streamer.h:224
@ LTO_section_symtab_extension
Definition lto-streamer.h:209
@ LTO_section_symtab_nodes
Definition lto-streamer.h:216
@ LTO_section_ipa_sra
Definition lto-streamer.h:225
@ LTO_section_ipa_profile
Definition lto-streamer.h:215
@ LTO_section_static_initializer
Definition lto-streamer.h:207
@ LTO_section_odr_types
Definition lto-streamer.h:226
@ LTO_section_refs
Definition lto-streamer.h:210
@ LTO_section_opts
Definition lto-streamer.h:217
@ LTO_section_mode_table
Definition lto-streamer.h:223
@ LTO_section_asm
Definition lto-streamer.h:211
@ LTO_section_ipa_reference
Definition lto-streamer.h:214
@ LTO_N_SECTION_TYPES
Definition lto-streamer.h:229
@ LTO_section_function_body
Definition lto-streamer.h:206
@ LTO_section_ipa_icf
Definition lto-streamer.h:221
lto_symtab_encoder_iterator lsei_start(lto_symtab_encoder_t encoder)
Definition lto-streamer.h:1200
void lto_value_range_error(const char *, HOST_WIDE_INT, HOST_WIDE_INT, HOST_WIDE_INT) ATTRIBUTE_NORETURN
Definition lto-section-in.cc:467
const char * lto_get_section_data(struct lto_file_decl_data *, enum lto_section_type, const char *, int, size_t *, bool decompress=false)
Definition lto-section-in.cc:135
int lto_symtab_encoder_size(lto_symtab_encoder_t encoder)
Definition lto-streamer.h:1133
void lto_input_constructors_and_inits(struct lto_file_decl_data *, const char *)
tree lto_input_var_decl_ref(lto_input_block *, lto_file_decl_data *)
Definition lto-streamer-in.cc:726
void lto_destroy_simple_input_block(struct lto_file_decl_data *, enum lto_section_type, class lto_input_block *, const char *, size_t)
Definition lto-section-in.cc:277
void lto_init_tree_ref_encoder(struct lto_tree_ref_encoder *encoder)
Definition lto-streamer.h:1098
bool lto_variably_modified_type_p(tree)
Definition lto-streamer-out.cc:131
tree lto_input_fn_decl_ref(lto_input_block *, lto_file_decl_data *)
Definition lto-streamer-in.cc:738
void lto_output_decl_state_streams(struct output_block *, struct lto_out_decl_state *)
Definition lto-streamer-out.cc:3265
void lto_check_version(int, int, const char *)
Definition lto-streamer.cc:269
void lto_output_fn_decl_ref(struct lto_out_decl_state *, struct lto_output_stream *, tree)
Definition lto-streamer-out.cc:548
struct lto_file_decl_data ** lto_get_file_decl_data(void)
Definition lto-section-in.cc:90
void lto_delete_out_decl_state(struct lto_out_decl_state *)
Definition lto-section-out.cc:218
void lto_data_in_delete(class data_in *)
Definition lto-streamer-in.cc:2277
void lto_symtab_encoder_delete(lto_symtab_encoder_t)
Definition lto-cgraph.cc:91
bool lto_tag_is_gimple_code_p(enum LTO_tags tag)
Definition lto-streamer.h:1029
void lto_output_var_decl_ref(struct lto_out_decl_state *, struct lto_output_stream *, tree)
Definition lto-streamer-out.cc:535
void destroy_output_block(struct output_block *)
Definition lto-streamer-out.cc:107
bool lto_tag_is_tree_code_p(enum LTO_tags tag)
Definition lto-streamer.h:1021
lto_symtab_encoder_t lto_symtab_encoder_new(bool)
Definition lto-cgraph.cc:77
struct lto_simple_output_block * lto_create_simple_output_block(enum lto_section_type)
Definition lto-section-out.cc:153
void lto_reader_init(void)
Definition lto-streamer-in.cc:2226
void lto_register_linemap_for_output(size_t, unsigned)
Definition lto-streamer-out.cc:3071
void lto_tag_check_range(enum LTO_tags actual, enum LTO_tags tag1, enum LTO_tags tag2)
Definition lto-streamer.h:1085
class data_in * lto_data_in_create(struct lto_file_decl_data *, const char *, unsigned, vec< ld_plugin_symbol_resolution_t >, bool need_location_cache=true)
Definition lto-streamer-in.cc:2259
enum LTO_tags lto_tree_code_to_tag(enum tree_code code)
Definition lto-streamer.h:1059
void input_symtab(void)
Definition lto-cgraph.cc:1833
void select_what_to_stream(void)
Definition lto-cgraph.cc:856
unsigned int lto_tree_ref_encoder_size(struct lto_tree_ref_encoder *encoder)
Definition lto-streamer.h:1118
void lsei_next_variable_in_partition(lto_symtab_encoder_iterator *lsei)
Definition lto-streamer.h:1261
void produce_asm_for_decls()
Definition lto-streamer-out.cc:3655
void lto_free_raw_section_data(struct lto_file_decl_data *, enum lto_section_type, const char *, const char *, size_t)
Definition lto-section-in.cc:235
enum LTO_tags lto_gimple_code_to_tag(enum gimple_code code)
Definition lto-streamer.h:1040
void output_offload_tables(void)
Definition lto-cgraph.cc:1135
void lto_input_toplevel_asms(struct lto_file_decl_data *, int)
Definition lto-streamer-in.cc:2039
tree lto_input_tree_ref(class lto_input_block *, class data_in *, struct function *, enum LTO_tags)
Definition lto-streamer-in.cc:699
toplevel_node * lsei_node(lto_symtab_encoder_iterator lsei)
Definition lto-streamer.h:1168
void lto_output()
Definition lto-streamer-out.cc:3079
void lto_append_block(struct lto_output_stream *)
Definition data-streamer-out.cc:38
void lto_write_options(void)
Definition lto-opts.cc:60
tree stream_read_tree_ref(class lto_input_block *, class data_in *)
Definition lto-streamer-in.cc:1927
void lto_output_toplevel_asms(lto_symtab_encoder_t)
Definition lto-streamer-out.cc:2748
void lto_push_out_decl_state(struct lto_out_decl_state *)
Definition lto-section-out.cc:240
lto_compression
Definition lto-streamer.h:369
@ ZSTD
Definition lto-streamer.h:371
@ ZLIB
Definition lto-streamer.h:370
void cl_target_option_stream_in(class data_in *, struct bitpack_d *, struct cl_target_option *)
void lto_input_function_body(struct lto_file_decl_data *, struct cgraph_node *, const char *)
Definition lto-streamer-in.cc:1750
class lto_input_block * lto_create_simple_input_block(struct lto_file_decl_data *, enum lto_section_type, const char **, size_t *)
Definition lto-section-in.cc:250
bool lto_symtab_encoder_only_for_inlining_p(lto_symtab_encoder_t, struct cgraph_node *)
Definition lto-cgraph.cc:171
void lto_input_location(location_t *, struct bitpack_d *, class data_in *)
Definition lto-streamer-in.cc:685
void lto_set_symtab_encoder_in_partition(lto_symtab_encoder_t, toplevel_node *)
Definition lto-cgraph.cc:225
varpool_node * lsei_varpool_node(lto_symtab_encoder_iterator lsei)
Definition lto-streamer.h:1182
void lto_write_stream(struct lto_output_stream *)
Definition lto-section-out.cc:121
struct lto_out_decl_state * lto_pop_out_decl_state(void)
Definition lto-section-out.cc:248
#define LCC_NOT_FOUND
Definition lto-streamer.h:1139
void lto_destroy_tree_ref_encoder(struct lto_tree_ref_encoder *encoder)
Definition lto-streamer.h:1108
void lto_register_decl_definition(tree, struct lto_file_decl_data *)
const char * lto_tag_name(enum LTO_tags)
Definition lto-streamer.cc:47
struct cgraph_node * lsei_cgraph_node(lto_symtab_encoder_iterator lsei)
Definition lto-streamer.h:1175
void lto_streamer_init(void)
Definition lto-streamer.cc:245
void input_offload_tables(bool)
Definition lto-cgraph.cc:1921
void lto_init_eh(void)
Definition lto-streamer-in.cc:954
void lto_output_location(struct output_block *, struct bitpack_d *, location_t)
Definition lto-streamer-out.cc:461
void lto_prepare_function_for_streaming(cgraph_node *)
Definition lto-streamer-out.cc:2547
bool gate_lto_out(void)
Definition lto-streamer.cc:259
bool reachable_from_other_partition_p(struct cgraph_node *, lto_symtab_encoder_t)
Definition lto-cgraph.cc:336
void lto_record_renamed_decl(struct lto_file_decl_data *, const char *, const char *)
Definition lto-section-in.cc:342
bool reachable_from_this_partition_p(struct cgraph_node *, lto_symtab_encoder_t)
Definition lto-cgraph.cc:375
unsigned char lto_decl_flags_t
Definition lto-streamer.h:127
struct lto_in_decl_state * lto_new_in_decl_state(void)
Definition lto-section-in.cc:389
void lto_end_section(void)
Definition lto-section-out.cc:88
void lto_tag_check_set(enum LTO_tags, int,...)
Definition lto-streamer-in.cc:111
void lto_set_in_hooks(struct lto_file_decl_data **, lto_get_section_data_f *, lto_free_section_data_f *)
Definition lto-section-in.cc:76
hashval_t lto_input_scc(class lto_input_block *, class data_in *, unsigned *, unsigned *, bool)
Definition lto-streamer-in.cc:1866
int lto_symtab_encoder_lookup(lto_symtab_encoder_t encoder, toplevel_node *node)
Definition lto-streamer.h:1145
const char * lto_get_section_data_f(struct lto_file_decl_data *, enum lto_section_type, const char *, int, size_t *)
Definition lto-streamer.h:247
int lto_symtab_encoder_encode(lto_symtab_encoder_t, toplevel_node *)
Definition lto-cgraph.cc:107
const char * lto_get_raw_section_data(struct lto_file_decl_data *, enum lto_section_type, const char *, int, size_t *)
Definition lto-section-in.cc:194
bool lto_symtab_encoder_encode_initializer_p(lto_symtab_encoder_t, varpool_node *)
Definition lto-cgraph.cc:191
void lto_free_section_data(struct lto_file_decl_data *, enum lto_section_type, const char *, const char *, size_t, bool decompress=false)
Definition lto-section-in.cc:207
void lto_output_decl_state_refs(struct output_block *, struct lto_output_stream *, struct lto_out_decl_state *)
Definition custom-sarif-properties/state-graphs.h:33
poly_int< N, C > r
Definition poly-int.h:774
i
Definition poly-int.h:776
Ca const poly_int< N, Cb > & b
Definition poly-int.h:771
Ca & a
Definition poly-int.h:770
Definition data-streamer.h:35
Definition lto-streamer.h:529
static bool equal(lto_in_decl_state *a, lto_in_decl_state *b)
Definition lto-streamer.h:537
static hashval_t hash(lto_in_decl_state *s)
Definition lto-streamer.h:531
Definition lto-streamer.h:1286
tree decl
Definition lto-streamer.h:1287
unsigned HOST_WIDE_INT off
Definition lto-streamer.h:1289
const char * sym
Definition lto-streamer.h:1288
Definition function.h:249
Definition hash-traits.h:321
Definition hash-traits.h:122
Definition lto-streamer.h:660
char * ptr
Definition lto-streamer.h:661
lto_encoder_entry(toplevel_node *n)
Definition lto-streamer.h:458
unsigned int body
Definition lto-streamer.h:468
unsigned int in_partition
Definition lto-streamer.h:466
unsigned int only_for_inlining
Definition lto-streamer.h:470
unsigned int initializer
Definition lto-streamer.h:474
Definition lto-streamer.h:586
htab_t section_hash_table
Definition lto-streamer.h:604
unsigned mode_bits
Definition lto-streamer.h:637
unsigned max_index
Definition lto-streamer.h:620
vec< res_pair > respairs
Definition lto-streamer.h:619
struct lto_file_decl_data * next
Definition lto-streamer.h:610
lto_file_decl_data * loc_map_decl_data
Definition lto-streamer.h:645
struct lto_in_decl_state * global_decl_state
Definition lto-streamer.h:592
gcov_summary profile_info
Definition lto-streamer.h:622
int order
Definition lto-streamer.h:613
htab_t renaming_hash_table
Definition lto-streamer.h:607
unsigned HOST_WIDE_INT id
Definition lto-streamer.h:616
const char * file_name
Definition lto-streamer.h:601
vec< lto_loc_map *, va_gc > * loc_maps
Definition lto-streamer.h:646
lto_section lto_section_header
Definition lto-streamer.h:631
int order_base
Definition lto-streamer.h:633
unsigned num_linemap_sections
Definition lto-streamer.h:642
const unsigned char * mode_table
Definition lto-streamer.h:628
hash_map< tree, ld_plugin_symbol_resolution > * resolution_map
Definition lto-streamer.h:625
int unit_base
Definition lto-streamer.h:635
struct lto_in_decl_state * current_decl_state
Definition lto-streamer.h:588
hash_table< decl_state_hasher > * function_decl_states
Definition lto-streamer.h:598
lto_symtab_encoder_t symtab_node_encoder
Definition lto-streamer.h:595
Definition lto-streamer.h:510
bool compressed
Definition lto-streamer.h:519
tree fn_decl
Definition lto-streamer.h:516
vec< tree, va_gc > * streams[LTO_N_DECL_STREAMS]
Definition lto-streamer.h:512
unsigned linemap_id
Definition lto-streamer.h:523
Definition lto-streamer.h:265
size_t map[1]
Definition lto-streamer.h:267
size_t nmaps
Definition lto-streamer.h:266
Definition lto-streamer.h:317
tree block
Definition lto-streamer.h:320
unsigned discr
Definition lto-streamer.h:321
location_t loc
Definition lto-streamer.h:319
location_t * dest
Definition lto-streamer.h:318
Definition lto-streamer.h:546
lto_symtab_encoder_t symtab_node_encoder
Definition lto-streamer.h:552
bool compressed
Definition lto-streamer.h:559
tree fn_decl
Definition lto-streamer.h:556
bool output_offload_tables_p
Definition lto-streamer.h:562
unsigned linemap_id
Definition lto-streamer.h:566
struct lto_tree_ref_encoder streams[LTO_N_DECL_STREAMS]
Definition lto-streamer.h:549
Definition lto-streamer.h:669
struct lto_char_ptr_base * current_block
Definition lto-streamer.h:674
unsigned int total_size
Definition lto-streamer.h:686
unsigned int block_size
Definition lto-streamer.h:683
unsigned int left_in_block
Definition lto-streamer.h:680
char * current_pointer
Definition lto-streamer.h:677
struct lto_char_ptr_base * first_block
Definition lto-streamer.h:671
Definition lto-streamer.h:378
uint16_t flags
Definition lto-streamer.h:385
unsigned char _padding
Definition lto-streamer.h:382
int16_t minor_version
Definition lto-streamer.h:380
unsigned char slim_object
Definition lto-streamer.h:381
int16_t major_version
Definition lto-streamer.h:379
lto_compression get_compression()
Definition lto-streamer.h:394
void set_compression(lto_compression c)
Definition lto-streamer.h:388
Definition lto-streamer.h:692
struct lto_output_stream * main_stream
Definition lto-streamer.h:697
enum lto_section_type section_type
Definition lto-streamer.h:693
struct lto_out_decl_state * decl_state
Definition lto-streamer.h:694
Definition lto-streamer.h:437
unsigned HOST_WIDE_INT num_pickle_refs_output
Definition lto-streamer.h:451
unsigned HOST_WIDE_INT num_input_cgraph_nodes
Definition lto-streamer.h:438
unsigned HOST_WIDE_INT num_output_il_bytes
Definition lto-streamer.h:446
unsigned HOST_WIDE_INT num_input_files
Definition lto-streamer.h:440
unsigned HOST_WIDE_INT num_compressed_il_bytes
Definition lto-streamer.h:447
unsigned HOST_WIDE_INT num_output_files
Definition lto-streamer.h:441
unsigned HOST_WIDE_INT num_trees[NUM_TREE_CODES]
Definition lto-streamer.h:445
unsigned HOST_WIDE_INT num_function_bodies
Definition lto-streamer.h:444
unsigned HOST_WIDE_INT num_input_il_bytes
Definition lto-streamer.h:448
unsigned HOST_WIDE_INT section_size[LTO_N_SECTION_TYPES]
Definition lto-streamer.h:443
unsigned HOST_WIDE_INT num_uncompressed_il_bytes
Definition lto-streamer.h:449
unsigned HOST_WIDE_INT num_cgraph_partitions
Definition lto-streamer.h:442
unsigned HOST_WIDE_INT num_output_symtab_nodes
Definition lto-streamer.h:439
unsigned HOST_WIDE_INT num_tree_bodies_output
Definition lto-streamer.h:450
Definition lto-streamer.h:480
hash_map< toplevel_node *, size_t > * map
Definition lto-streamer.h:482
hash_map< int_hash< int, -1, -2 >, int > * order_remap
Definition lto-streamer.h:485
vec< lto_encoder_entry > nodes
Definition lto-streamer.h:481
Definition lto-streamer.h:492
lto_symtab_encoder_t encoder
Definition lto-streamer.h:493
unsigned index
Definition lto-streamer.h:494
Definition lto-streamer.h:502
hash_map< tree, unsigned > * tree_hash_table
Definition lto-streamer.h:503
vec< tree > trees
Definition lto-streamer.h:504
Definition hash-traits.h:303
Definition lto-streamer.h:745
unsigned current_discr
Definition lto-streamer.h:769
struct obstack obstack
Definition lto-streamer.h:782
struct lto_output_stream * cfg_stream
Definition lto-streamer.h:756
struct lto_output_stream * string_stream
Definition lto-streamer.h:753
enum lto_section_type section_type
Definition lto-streamer.h:746
hash_set< tree > * local_trees
Definition lto-streamer.h:778
size_t current_map_idx
Definition lto-streamer.h:770
tree current_block
Definition lto-streamer.h:768
location_t current_loc_offset
Definition lto-streamer.h:771
struct lto_out_decl_state * decl_state
Definition lto-streamer.h:747
hash_table< string_slot_hasher > * string_hash_table
Definition lto-streamer.h:760
symtab_node * symbol
Definition lto-streamer.h:764
unsigned current_linemap_id
Definition lto-streamer.h:772
struct streamer_tree_cache_d * writer_cache
Definition lto-streamer.h:775
struct lto_output_stream * main_stream
Definition lto-streamer.h:750
Definition lto-streamer.h:575
ld_plugin_symbol_resolution_t res
Definition lto-streamer.h:576
unsigned index
Definition lto-streamer.h:577
Definition tree-streamer.h:47
Definition lto-streamer.h:712
static bool equal(const string_slot *, const string_slot *)
Definition lto-streamer.h:734
static hashval_t hash(const string_slot *)
Definition lto-streamer.h:721
Definition lto-streamer.h:703
int len
Definition lto-streamer.h:705
unsigned int slot_num
Definition lto-streamer.h:706
const char * s
Definition lto-streamer.h:704
#define NULL
Definition system.h:50
#define gcc_assert(EXPR)
Definition system.h:820
#define true
Definition system.h:893
#define false
Definition system.h:894
#define STATIC_ASSERT(X)
Definition system.h:870
@ MAX_TREE_CODES
Definition tree-core.h:157
#define NUM_TREE_CODES
Definition tree-core.h:164
#define NULL_TREE
Definition tree.h:318