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
301 static int cmp_loc (
const void *pa,
const void *pb);
507 return htab_hash_pointer (s->
fn_decl);
513 return a->fn_decl ==
b->fn_decl;
586 unsigned HOST_WIDE_INT
id;
676 hashval_t
r = ds->
len;
679 for (
i = 0;
i < ds->
len;
i++)
680 r =
r * 67 + (
unsigned)ds->
s[
i] - 113;
690 return memcmp (ds1->
s, ds2->
s, ds1->
len) == 0;
781 const char *,
int,
size_t *,
782 bool decompress =
false);
788 const char *,
int,
size_t *);
791 const char *,
const char *,
size_t,
792 bool decompress =
false);
795 const char *,
const char *,
size_t);
798 const char *,
const char *);
809 HOST_WIDE_INT, HOST_WIDE_INT,
860 const char *,
unsigned,
870 unsigned *,
unsigned *,
bool);
944 struct cl_target_option *);
948 struct cl_target_option *);
951 struct bitpack_d *,
struct cl_optimization *);
954 struct bitpack_d *,
struct cl_optimization *);
1031 if (actual != expected)
1032 internal_error (
"bytecode stream: expected tag %s instead of %s",
1041 if (actual < tag1 || actual > tag2)
1042 internal_error (
"bytecode stream: tag %s is not in the expected range "
1054 encoder->
trees.create (0);
1066 encoder->
trees.release ();
1073 return encoder->
trees.length ();
1081 return encoder->
trees[idx];
1088 return encoder->
nodes.length ();
1092#define LCC_NOT_FOUND (-1)
1148 return encoder->
nodes[ref].node;
Definition lto-streamer.h:745
vec< ld_plugin_symbol_resolution_t > globals_resolution
Definition lto-streamer.h:757
lto_location_cache location_cache
Definition lto-streamer.h:763
struct streamer_tree_cache_d * reader_cache
Definition lto-streamer.h:760
unsigned int strings_len
Definition lto-streamer.h:754
struct lto_file_decl_data * file_data
Definition lto-streamer.h:748
const char * strings
Definition lto-streamer.h:751
Definition genoutput.cc:150
Value * get(const Key &k)
Definition hash-map.h:189
Definition hash-table.h:375
Definition lto-streamer.h:266
void revert_location_cache()
Definition lto-streamer-in.cc:503
static int cmp_loc(const void *pa, const void *pb)
Definition lto-streamer-in.cc:386
lto_location_cache()
Definition lto-streamer.h:280
auto_vec< cached_location > loc_cache
Definition lto-streamer.h:315
void accept_location_cache()
Definition lto-streamer-in.cc:494
int accepted_length
Definition lto-streamer.h:320
void input_location_and_block(location_t *loc, struct bitpack_d *bp, class lto_input_block *ib, class data_in *data_in)
Definition lto-streamer-in.cc:514
~lto_location_cache()
Definition lto-streamer.h:288
tree current_block
Definition lto-streamer.h:332
const char * current_file
Definition lto-streamer.h:327
unsigned current_discr
Definition lto-streamer.h:333
int current_col
Definition lto-streamer.h:329
int current_line
Definition lto-streamer.h:328
bool apply_location_cache()
Definition lto-streamer-in.cc:430
location_t current_loc
Definition lto-streamer.h:331
static lto_location_cache * current_cache
Definition lto-streamer.h:298
bool current_sysp
Definition lto-streamer.h:330
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:72
tree_code
Definition genmatch.cc:347
gimple_code
Definition gimple.h:30
bool is_a(U *p)
Definition is-a.h:230
T dyn_cast(U *p)
Definition is-a.h:280
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:1701
void lto_output_init_mode_table(void)
Definition lto-streamer-out.cc:3182
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:423
tree lto_input_tree(class lto_input_block *, class data_in *)
Definition lto-streamer-in.cc:1934
void lto_free_file_name_hash(void)
Definition lto-streamer-in.cc:2168
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:1114
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:466
struct lto_out_decl_state * lto_out_decl_state_ptr
Definition lto-streamer.h:539
lto_symtab_encoder_iterator lsei_start_in_partition(lto_symtab_encoder_t encoder)
Definition lto-streamer.h:1174
struct lto_in_decl_state * lto_get_function_in_decl_state(struct lto_file_decl_data *, tree)
Definition lto-section-in.cc:409
vec< lto_out_decl_state_ptr > lto_function_decl_states
Definition lto-section-out.cc:40
class data_in * lto_data_in_create(struct lto_file_decl_data *, const char *, unsigned, vec< ld_plugin_symbol_resolution_t >)
Definition lto-streamer-in.cc:2188
lto_symtab_encoder_t compute_ltrans_boundary(lto_symtab_encoder_t encoder)
Definition lto-cgraph.cc:840
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:332
const char * lto_get_summary_section_data(struct lto_file_decl_data *, enum lto_section_type, size_t *)
Definition lto-section-in.cc:184
void print_lto_report(const char *)
Definition lto-streamer.cc:159
void lto_free_function_in_decl_state_for_node(symtab_node *)
Definition lto-section-in.cc:435
enum tree_code lto_tag_to_tree_code(enum LTO_tags tag)
Definition lto-streamer.h:1021
lto_symtab_encoder_iterator lsei_start_variable_in_partition(lto_symtab_encoder_t encoder)
Definition lto-streamer.h:1225
void lto_output_tree(struct output_block *, tree, bool, bool)
Definition lto-streamer-out.cc:1795
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:1880
bool referenced_from_this_partition_p(symtab_node *, lto_symtab_encoder_t)
Definition lto-cgraph.cc:351
void stream_write_tree_ref(struct output_block *, tree)
Definition lto-streamer-out.cc:467
struct lto_file_decl_data * lto_file_decl_data_ptr
Definition lto-streamer.h:610
const char * lto_get_decl_name_mapping(struct lto_file_decl_data *, const char *)
Definition lto-section-in.cc:366
void cl_optimization_stream_in(class data_in *, struct bitpack_d *, struct cl_optimization *)
void lsei_next_function_in_partition(lto_symtab_encoder_iterator *lsei)
Definition lto-streamer.h:1188
bool lto_symtab_encoder_encode_body_p(lto_symtab_encoder_t, struct cgraph_node *)
Definition lto-cgraph.cc:173
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:255
void lto_tag_check(enum LTO_tags actual, enum LTO_tags expected)
Definition lto-streamer.h:1029
struct lto_in_decl_state * lto_in_decl_state_ptr
Definition lto-streamer.h:500
tree lto_tree_ref_encoder_get_tree(struct lto_tree_ref_encoder *encoder, unsigned int idx)
Definition lto-streamer.h:1078
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:1199
enum gimple_code lto_tag_to_gimple_code(enum LTO_tags tag)
Definition lto-streamer.h:1002
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:284
void lto_output_toplevel_asms(void)
Definition lto-streamer-out.cc:2524
int lto_symtab_encoder_lookup(lto_symtab_encoder_t encoder, symtab_node *node)
Definition lto-streamer.h:1098
enum ld_plugin_symbol_resolution ld_plugin_symbol_resolution_t
Definition lto-streamer.h:238
bool lsei_end_p(lto_symtab_encoder_iterator lsei)
Definition lto-streamer.h:1107
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)
void lto_write_data(const void *, unsigned int)
Definition lto-section-out.cc:101
void output_symtab(void)
Definition lto-cgraph.cc:971
void lto_streamer_hooks_init(void)
Definition lto-streamer.cc:279
struct output_block * create_output_block(enum lto_section_type)
Definition lto-streamer-out.cc:78
void lto_delete_in_decl_state(struct lto_in_decl_state *)
Definition lto-section-in.cc:396
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:2005
void lsei_next_in_partition(lto_symtab_encoder_iterator *lsei)
Definition lto-streamer.h:1164
lto_decl_stream_e_t
Definition lto-streamer.h:233
@ LTO_N_DECL_STREAMS
Definition lto-streamer.h:235
@ LTO_DECL_STREAM
Definition lto-streamer.h:234
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_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:228
@ LTO_section_function_body
Definition lto-streamer.h:206
@ LTO_section_ipa_icf
Definition lto-streamer.h:221
symtab_node * lsei_node(lto_symtab_encoder_iterator lsei)
Definition lto-streamer.h:1121
lto_symtab_encoder_iterator lsei_start(lto_symtab_encoder_t encoder)
Definition lto-streamer.h:1153
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:134
int lto_symtab_encoder_size(lto_symtab_encoder_t encoder)
Definition lto-streamer.h:1086
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:669
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:276
void lto_init_tree_ref_encoder(struct lto_tree_ref_encoder *encoder)
Definition lto-streamer.h:1051
tree lto_input_fn_decl_ref(lto_input_block *, lto_file_decl_data *)
Definition lto-streamer-in.cc:681
void lto_output_decl_state_streams(struct output_block *, struct lto_out_decl_state *)
Definition lto-streamer-out.cc:2909
void lto_check_version(int, int, const char *)
Definition lto-streamer.cc:264
void produce_asm(struct output_block *ob, tree fn)
Definition lto-streamer-out.cc:2207
void lto_output_fn_decl_ref(struct lto_out_decl_state *, struct lto_output_stream *, tree)
Definition lto-streamer-out.cc:359
struct lto_file_decl_data ** lto_get_file_decl_data(void)
Definition lto-section-in.cc:89
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:2205
void lto_symtab_encoder_delete(lto_symtab_encoder_t)
Definition lto-cgraph.cc:94
bool lto_tag_is_gimple_code_p(enum LTO_tags tag)
Definition lto-streamer.h:982
void lto_output_var_decl_ref(struct lto_out_decl_state *, struct lto_output_stream *, tree)
Definition lto-streamer-out.cc:346
int lto_symtab_encoder_encode(lto_symtab_encoder_t, symtab_node *)
Definition lto-cgraph.cc:108
void destroy_output_block(struct output_block *)
Definition lto-streamer-out.cc:110
FILE * streamer_dump_file
Definition lto-streamer.cc:42
bool lto_tag_is_tree_code_p(enum LTO_tags tag)
Definition lto-streamer.h:974
lto_symtab_encoder_t lto_symtab_encoder_new(bool)
Definition lto-cgraph.cc:80
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:2155
void lto_tag_check_range(enum LTO_tags actual, enum LTO_tags tag1, enum LTO_tags tag2)
Definition lto-streamer.h:1038
enum LTO_tags lto_tree_code_to_tag(enum tree_code code)
Definition lto-streamer.h:1012
void input_symtab(void)
Definition lto-cgraph.cc:1748
struct lto_stats_d lto_stats
Definition lto-streamer.cc:36
void select_what_to_stream(void)
Definition lto-cgraph.cc:824
unsigned int lto_tree_ref_encoder_size(struct lto_tree_ref_encoder *encoder)
Definition lto-streamer.h:1071
void lsei_next_variable_in_partition(lto_symtab_encoder_iterator *lsei)
Definition lto-streamer.h:1214
void produce_asm_for_decls()
Definition lto-streamer-out.cc:3281
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:234
void omp_lto_input_declare_variant_alt(lto_input_block *, cgraph_node *, vec< symtab_node * >)
Definition omp-general.cc:2821
enum LTO_tags lto_gimple_code_to_tag(enum gimple_code code)
Definition lto-streamer.h:993
void output_offload_tables(void)
Definition lto-cgraph.cc:1080
void lto_input_toplevel_asms(struct lto_file_decl_data *, int)
Definition lto-streamer-in.cc:1966
bool asm_nodes_output
Definition lto-cgraph.cc:49
tree lto_input_tree_ref(class lto_input_block *, class data_in *, struct function *, enum LTO_tags)
Definition lto-streamer-in.cc:642
void lto_output()
Definition lto-streamer-out.cc:2728
void lto_append_block(struct lto_output_stream *)
Definition data-streamer-out.cc:38
void omp_lto_output_declare_variant_alt(lto_simple_output_block *, cgraph_node *, lto_symtab_encoder_t)
Definition omp-general.cc:2759
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:1854
void lto_set_symtab_encoder_in_partition(lto_symtab_encoder_t, symtab_node *)
Definition lto-cgraph.cc:228
void lto_push_out_decl_state(struct lto_out_decl_state *)
Definition lto-section-out.cc:240
lto_compression
Definition lto-streamer.h:358
@ ZSTD
Definition lto-streamer.h:360
@ ZLIB
Definition lto-streamer.h:359
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:1691
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:249
void lto_input_location(location_t *, struct bitpack_d *, class data_in *)
Definition lto-streamer-in.cc:628
symtab_node * lto_symtab_encoder_deref(lto_symtab_encoder_t encoder, int ref)
Definition lto-streamer.h:1143
varpool_node * lsei_varpool_node(lto_symtab_encoder_iterator lsei)
Definition lto-streamer.h:1135
bool lto_stream_offload_p
Definition lto-streamer.cc:40
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
bool lto_symtab_encoder_delete_node(lto_symtab_encoder_t, symtab_node *)
Definition lto-cgraph.cc:140
#define LCC_NOT_FOUND
Definition lto-streamer.h:1092
void lto_destroy_tree_ref_encoder(struct lto_tree_ref_encoder *encoder)
Definition lto-streamer.h:1061
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:1128
void lto_streamer_init(void)
Definition lto-streamer.cc:240
void input_offload_tables(bool)
Definition lto-cgraph.cc:1820
void lto_init_eh(void)
Definition lto-streamer-in.cc:897
void lto_output_location(struct output_block *, struct bitpack_d *, location_t)
Definition lto-streamer-out.cc:272
void lto_prepare_function_for_streaming(cgraph_node *)
Definition lto-streamer-out.cc:2323
bool gate_lto_out(void)
Definition lto-streamer.cc:254
bool reachable_from_other_partition_p(struct cgraph_node *, lto_symtab_encoder_t)
Definition lto-cgraph.cc:327
void lto_record_renamed_decl(struct lto_file_decl_data *, const char *, const char *)
Definition lto-section-in.cc:341
bool reachable_from_this_partition_p(struct cgraph_node *, lto_symtab_encoder_t)
Definition lto-cgraph.cc:366
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:388
void lto_end_section(void)
Definition lto-section-out.cc:88
vec< dref_entry > dref_queue
Definition lto-streamer-in.cc:1710
bool lto_symtab_encoder_in_partition_p(lto_symtab_encoder_t, symtab_node *)
Definition lto-cgraph.cc:216
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:75
hashval_t lto_input_scc(class lto_input_block *, class data_in *, unsigned *, unsigned *, bool)
Definition lto-streamer-in.cc:1793
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:246
const char * lto_section_name[]
Definition lto-section-in.cc:35
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:193
bool lto_symtab_encoder_encode_initializer_p(lto_symtab_encoder_t, varpool_node *)
Definition lto-cgraph.cc:194
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:206
void lto_output_decl_state_refs(struct output_block *, struct lto_output_stream *, struct lto_out_decl_state *)
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:503
static bool equal(lto_in_decl_state *a, lto_in_decl_state *b)
Definition lto-streamer.h:511
static hashval_t hash(lto_in_decl_state *s)
Definition lto-streamer.h:505
Definition lto-streamer.h:1239
tree decl
Definition lto-streamer.h:1240
unsigned HOST_WIDE_INT off
Definition lto-streamer.h:1242
const char * sym
Definition lto-streamer.h:1241
Definition function.h:249
Definition hash-traits.h:321
Definition lto-streamer.h:613
char * ptr
Definition lto-streamer.h:614
Definition lto-streamer.h:445
unsigned int body
Definition lto-streamer.h:451
unsigned int in_partition
Definition lto-streamer.h:449
unsigned int initializer
Definition lto-streamer.h:455
symtab_node * node
Definition lto-streamer.h:446
Definition lto-streamer.h:556
htab_t section_hash_table
Definition lto-streamer.h:574
unsigned mode_bits
Definition lto-streamer.h:607
unsigned max_index
Definition lto-streamer.h:590
vec< res_pair > respairs
Definition lto-streamer.h:589
struct lto_file_decl_data * next
Definition lto-streamer.h:580
struct lto_in_decl_state * global_decl_state
Definition lto-streamer.h:562
gcov_summary profile_info
Definition lto-streamer.h:592
int order
Definition lto-streamer.h:583
htab_t renaming_hash_table
Definition lto-streamer.h:577
unsigned HOST_WIDE_INT id
Definition lto-streamer.h:586
const char * file_name
Definition lto-streamer.h:571
lto_section lto_section_header
Definition lto-streamer.h:601
int order_base
Definition lto-streamer.h:603
const unsigned char * mode_table
Definition lto-streamer.h:598
hash_map< tree, ld_plugin_symbol_resolution > * resolution_map
Definition lto-streamer.h:595
int unit_base
Definition lto-streamer.h:605
struct lto_in_decl_state * current_decl_state
Definition lto-streamer.h:558
hash_table< decl_state_hasher > * function_decl_states
Definition lto-streamer.h:568
lto_symtab_encoder_t symtab_node_encoder
Definition lto-streamer.h:565
Definition lto-streamer.h:488
bool compressed
Definition lto-streamer.h:497
tree fn_decl
Definition lto-streamer.h:494
vec< tree, va_gc > * streams[LTO_N_DECL_STREAMS]
Definition lto-streamer.h:490
Definition lto-streamer.h:304
tree block
Definition lto-streamer.h:309
const char * file
Definition lto-streamer.h:305
unsigned discr
Definition lto-streamer.h:310
int line
Definition lto-streamer.h:307
location_t * loc
Definition lto-streamer.h:306
int col
Definition lto-streamer.h:307
bool sysp
Definition lto-streamer.h:308
Definition lto-streamer.h:520
lto_symtab_encoder_t symtab_node_encoder
Definition lto-streamer.h:526
bool compressed
Definition lto-streamer.h:533
tree fn_decl
Definition lto-streamer.h:530
bool output_offload_tables_p
Definition lto-streamer.h:536
struct lto_tree_ref_encoder streams[LTO_N_DECL_STREAMS]
Definition lto-streamer.h:523
Definition lto-streamer.h:622
struct lto_char_ptr_base * current_block
Definition lto-streamer.h:627
unsigned int total_size
Definition lto-streamer.h:639
unsigned int block_size
Definition lto-streamer.h:636
unsigned int left_in_block
Definition lto-streamer.h:633
char * current_pointer
Definition lto-streamer.h:630
struct lto_char_ptr_base * first_block
Definition lto-streamer.h:624
Definition lto-streamer.h:367
uint16_t flags
Definition lto-streamer.h:374
unsigned char _padding
Definition lto-streamer.h:371
int16_t minor_version
Definition lto-streamer.h:369
unsigned char slim_object
Definition lto-streamer.h:370
int16_t major_version
Definition lto-streamer.h:368
lto_compression get_compression()
Definition lto-streamer.h:383
void set_compression(lto_compression c)
Definition lto-streamer.h:377
Definition lto-streamer.h:645
struct lto_output_stream * main_stream
Definition lto-streamer.h:650
enum lto_section_type section_type
Definition lto-streamer.h:646
struct lto_out_decl_state * decl_state
Definition lto-streamer.h:647
Definition lto-streamer.h:426
unsigned HOST_WIDE_INT num_pickle_refs_output
Definition lto-streamer.h:440
unsigned HOST_WIDE_INT num_input_cgraph_nodes
Definition lto-streamer.h:427
unsigned HOST_WIDE_INT num_output_il_bytes
Definition lto-streamer.h:435
unsigned HOST_WIDE_INT num_input_files
Definition lto-streamer.h:429
unsigned HOST_WIDE_INT num_compressed_il_bytes
Definition lto-streamer.h:436
unsigned HOST_WIDE_INT num_output_files
Definition lto-streamer.h:430
unsigned HOST_WIDE_INT num_trees[NUM_TREE_CODES]
Definition lto-streamer.h:434
unsigned HOST_WIDE_INT num_function_bodies
Definition lto-streamer.h:433
unsigned HOST_WIDE_INT num_input_il_bytes
Definition lto-streamer.h:437
unsigned HOST_WIDE_INT section_size[LTO_N_SECTION_TYPES]
Definition lto-streamer.h:432
unsigned HOST_WIDE_INT num_uncompressed_il_bytes
Definition lto-streamer.h:438
unsigned HOST_WIDE_INT num_cgraph_partitions
Definition lto-streamer.h:431
unsigned HOST_WIDE_INT num_output_symtab_nodes
Definition lto-streamer.h:428
unsigned HOST_WIDE_INT num_tree_bodies_output
Definition lto-streamer.h:439
Definition lto-streamer.h:461
vec< lto_encoder_entry > nodes
Definition lto-streamer.h:462
hash_map< symtab_node *, size_t > * map
Definition lto-streamer.h:463
Definition lto-streamer.h:470
lto_symtab_encoder_t encoder
Definition lto-streamer.h:471
unsigned index
Definition lto-streamer.h:472
Definition lto-streamer.h:480
hash_map< tree, unsigned > * tree_hash_table
Definition lto-streamer.h:481
vec< tree > trees
Definition lto-streamer.h:482
Definition hash-traits.h:303
Definition lto-streamer.h:698
unsigned current_discr
Definition lto-streamer.h:729
struct obstack obstack
Definition lto-streamer.h:739
int current_line
Definition lto-streamer.h:723
struct lto_output_stream * cfg_stream
Definition lto-streamer.h:709
struct lto_output_stream * string_stream
Definition lto-streamer.h:706
enum lto_section_type section_type
Definition lto-streamer.h:699
hash_set< tree > * local_trees
Definition lto-streamer.h:735
bool current_sysp
Definition lto-streamer.h:725
int current_col
Definition lto-streamer.h:724
tree current_block
Definition lto-streamer.h:728
struct lto_out_decl_state * decl_state
Definition lto-streamer.h:700
bool emit_pwd
Definition lto-streamer.h:727
hash_table< string_slot_hasher > * string_hash_table
Definition lto-streamer.h:713
symtab_node * symbol
Definition lto-streamer.h:717
const char * current_file
Definition lto-streamer.h:722
bool reset_locus
Definition lto-streamer.h:726
struct streamer_tree_cache_d * writer_cache
Definition lto-streamer.h:732
struct lto_output_stream * main_stream
Definition lto-streamer.h:703
Definition lto-streamer.h:545
ld_plugin_symbol_resolution_t res
Definition lto-streamer.h:546
unsigned index
Definition lto-streamer.h:547
Definition tree-streamer.h:47
Definition lto-streamer.h:665
static bool equal(const string_slot *, const string_slot *)
Definition lto-streamer.h:687
static hashval_t hash(const string_slot *)
Definition lto-streamer.h:674
Definition lto-streamer.h:656
int len
Definition lto-streamer.h:658
unsigned int slot_num
Definition lto-streamer.h:659
const char * s
Definition lto-streamer.h:657
#define NULL
Definition system.h:50
#define gcc_assert(EXPR)
Definition system.h:821
#define false
Definition system.h:895
#define STATIC_ASSERT(X)
Definition system.h:871
#define NUM_TREE_CODES
Definition tree-core.h:156
@ MAX_TREE_CODES
Definition tree-core.h:149
#define NULL_TREE
Definition tree.h:317