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);
518 return htab_hash_pointer (s->
fn_decl);
524 return a->fn_decl ==
b->fn_decl;
597 unsigned HOST_WIDE_INT
id;
687 hashval_t
r = ds->
len;
690 for (
i = 0;
i < ds->
len;
i++)
691 r =
r * 67 + (
unsigned)ds->
s[
i] - 113;
701 return memcmp (ds1->
s, ds2->
s, ds1->
len) == 0;
792 const char *,
int,
size_t *,
793 bool decompress =
false);
799 const char *,
int,
size_t *);
802 const char *,
const char *,
size_t,
803 bool decompress =
false);
806 const char *,
const char *,
size_t);
809 const char *,
const char *);
820 HOST_WIDE_INT, HOST_WIDE_INT,
871 const char *,
unsigned,
881 unsigned *,
unsigned *,
bool);
951 struct cl_target_option *);
955 struct cl_target_option *);
958 struct bitpack_d *,
struct cl_optimization *);
961 struct bitpack_d *,
struct cl_optimization *);
1038 if (actual != expected)
1039 internal_error (
"bytecode stream: expected tag %s instead of %s",
1048 if (actual < tag1 || actual > tag2)
1049 internal_error (
"bytecode stream: tag %s is not in the expected range "
1061 encoder->
trees.create (0);
1073 encoder->
trees.release ();
1080 return encoder->
trees.length ();
1088 return encoder->
trees[idx];
1095 return encoder->
nodes.length ();
1099#define LCC_NOT_FOUND (-1)
1155 return encoder->
nodes[ref].node;
Definition lto-streamer.h:756
vec< ld_plugin_symbol_resolution_t > globals_resolution
Definition lto-streamer.h:768
lto_location_cache location_cache
Definition lto-streamer.h:774
struct streamer_tree_cache_d * reader_cache
Definition lto-streamer.h:771
unsigned int strings_len
Definition lto-streamer.h:765
struct lto_file_decl_data * file_data
Definition lto-streamer.h:759
const char * strings
Definition lto-streamer.h:762
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:105
tree_code
Definition genmatch.cc:992
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
bool lto_symtab_encoder_in_partition_p(lto_symtab_encoder_t encoder, symtab_node *node)
Definition lto-cgraph.cc:216
bool asm_nodes_output
Definition lto-cgraph.cc:49
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:1711
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:1702
void lto_output_init_mode_table(void)
Definition lto-streamer-out.cc:3259
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:1949
void lto_free_file_name_hash(void)
Definition lto-streamer-in.cc:2179
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:1121
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:477
struct lto_out_decl_state * lto_out_decl_state_ptr
Definition lto-streamer.h:550
lto_symtab_encoder_iterator lsei_start_in_partition(lto_symtab_encoder_t encoder)
Definition lto-streamer.h:1181
struct lto_in_decl_state * lto_get_function_in_decl_state(struct lto_file_decl_data *, tree)
Definition lto-section-in.cc:409
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:2199
lto_symtab_encoder_t compute_ltrans_boundary(lto_symtab_encoder_t encoder)
Definition lto-cgraph.cc:853
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:1028
lto_symtab_encoder_iterator lsei_start_variable_in_partition(lto_symtab_encoder_t encoder)
Definition lto-streamer.h:1232
void lto_output_tree(struct output_block *, tree, bool, bool)
Definition lto-streamer-out.cc:1798
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:1895
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:621
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:1195
bool lto_symtab_encoder_encode_body_p(lto_symtab_encoder_t, struct cgraph_node *)
Definition lto-cgraph.cc:184
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:1036
struct lto_in_decl_state * lto_in_decl_state_ptr
Definition lto-streamer.h:511
tree lto_tree_ref_encoder_get_tree(struct lto_tree_ref_encoder *encoder, unsigned int idx)
Definition lto-streamer.h:1085
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:1206
enum gimple_code lto_tag_to_gimple_code(enum LTO_tags tag)
Definition lto-streamer.h:1009
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:2534
int lto_symtab_encoder_lookup(lto_symtab_encoder_t encoder, symtab_node *node)
Definition lto-streamer.h:1105
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:1114
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:984
void lto_streamer_hooks_init(void)
Definition lto-streamer.cc:279
void produce_asm(struct output_block *ob)
Definition lto-streamer-out.cc:2249
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:2020
void lsei_next_in_partition(lto_symtab_encoder_iterator *lsei)
Definition lto-streamer.h:1171
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:1128
lto_symtab_encoder_iterator lsei_start(lto_symtab_encoder_t encoder)
Definition lto-streamer.h:1160
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:1093
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:1058
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:2986
void lto_check_version(int, int, const char *)
Definition lto-streamer.cc:264
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:2216
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:989
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:110
void destroy_output_block(struct output_block *)
Definition lto-streamer-out.cc:110
bool lto_tag_is_tree_code_p(enum LTO_tags tag)
Definition lto-streamer.h:981
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:2166
void lto_tag_check_range(enum LTO_tags actual, enum LTO_tags tag1, enum LTO_tags tag2)
Definition lto-streamer.h:1045
enum LTO_tags lto_tree_code_to_tag(enum tree_code code)
Definition lto-streamer.h:1019
void input_symtab(void)
Definition lto-cgraph.cc:1758
void select_what_to_stream(void)
Definition lto-cgraph.cc:837
unsigned int lto_tree_ref_encoder_size(struct lto_tree_ref_encoder *encoder)
Definition lto-streamer.h:1078
void lsei_next_variable_in_partition(lto_symtab_encoder_iterator *lsei)
Definition lto-streamer.h:1221
void produce_asm_for_decls()
Definition lto-streamer-out.cc:3358
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
enum LTO_tags lto_gimple_code_to_tag(enum gimple_code code)
Definition lto-streamer.h:1000
void output_offload_tables(void)
Definition lto-cgraph.cc:1093
void lto_input_toplevel_asms(struct lto_file_decl_data *, int)
Definition lto-streamer-in.cc:1981
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:2802
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:1869
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:1692
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
bool lto_symtab_encoder_only_for_inlining_p(lto_symtab_encoder_t, struct cgraph_node *)
Definition lto-cgraph.cc:174
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:1150
varpool_node * lsei_varpool_node(lto_symtab_encoder_iterator lsei)
Definition lto-streamer.h:1142
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:142
#define LCC_NOT_FOUND
Definition lto-streamer.h:1099
void lto_destroy_tree_ref_encoder(struct lto_tree_ref_encoder *encoder)
Definition lto-streamer.h:1068
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:1135
void lto_streamer_init(void)
Definition lto-streamer.cc:240
void input_offload_tables(bool)
Definition lto-cgraph.cc:1833
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:2333
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
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:1808
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_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:514
static bool equal(lto_in_decl_state *a, lto_in_decl_state *b)
Definition lto-streamer.h:522
static hashval_t hash(lto_in_decl_state *s)
Definition lto-streamer.h:516
Definition lto-streamer.h:1246
tree decl
Definition lto-streamer.h:1247
unsigned HOST_WIDE_INT off
Definition lto-streamer.h:1249
const char * sym
Definition lto-streamer.h:1248
Definition function.h:249
Definition hash-traits.h:321
Definition hash-traits.h:122
Definition lto-streamer.h:624
char * ptr
Definition lto-streamer.h:625
lto_encoder_entry(symtab_node *n)
Definition lto-streamer.h:447
unsigned int body
Definition lto-streamer.h:457
unsigned int in_partition
Definition lto-streamer.h:455
unsigned int only_for_inlining
Definition lto-streamer.h:459
unsigned int initializer
Definition lto-streamer.h:463
symtab_node * node
Definition lto-streamer.h:452
Definition lto-streamer.h:567
htab_t section_hash_table
Definition lto-streamer.h:585
unsigned mode_bits
Definition lto-streamer.h:618
unsigned max_index
Definition lto-streamer.h:601
vec< res_pair > respairs
Definition lto-streamer.h:600
struct lto_file_decl_data * next
Definition lto-streamer.h:591
struct lto_in_decl_state * global_decl_state
Definition lto-streamer.h:573
gcov_summary profile_info
Definition lto-streamer.h:603
int order
Definition lto-streamer.h:594
htab_t renaming_hash_table
Definition lto-streamer.h:588
unsigned HOST_WIDE_INT id
Definition lto-streamer.h:597
const char * file_name
Definition lto-streamer.h:582
lto_section lto_section_header
Definition lto-streamer.h:612
int order_base
Definition lto-streamer.h:614
const unsigned char * mode_table
Definition lto-streamer.h:609
hash_map< tree, ld_plugin_symbol_resolution > * resolution_map
Definition lto-streamer.h:606
int unit_base
Definition lto-streamer.h:616
struct lto_in_decl_state * current_decl_state
Definition lto-streamer.h:569
hash_table< decl_state_hasher > * function_decl_states
Definition lto-streamer.h:579
lto_symtab_encoder_t symtab_node_encoder
Definition lto-streamer.h:576
Definition lto-streamer.h:499
bool compressed
Definition lto-streamer.h:508
tree fn_decl
Definition lto-streamer.h:505
vec< tree, va_gc > * streams[LTO_N_DECL_STREAMS]
Definition lto-streamer.h:501
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:531
lto_symtab_encoder_t symtab_node_encoder
Definition lto-streamer.h:537
bool compressed
Definition lto-streamer.h:544
tree fn_decl
Definition lto-streamer.h:541
bool output_offload_tables_p
Definition lto-streamer.h:547
struct lto_tree_ref_encoder streams[LTO_N_DECL_STREAMS]
Definition lto-streamer.h:534
Definition lto-streamer.h:633
struct lto_char_ptr_base * current_block
Definition lto-streamer.h:638
unsigned int total_size
Definition lto-streamer.h:650
unsigned int block_size
Definition lto-streamer.h:647
unsigned int left_in_block
Definition lto-streamer.h:644
char * current_pointer
Definition lto-streamer.h:641
struct lto_char_ptr_base * first_block
Definition lto-streamer.h:635
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:656
struct lto_output_stream * main_stream
Definition lto-streamer.h:661
enum lto_section_type section_type
Definition lto-streamer.h:657
struct lto_out_decl_state * decl_state
Definition lto-streamer.h:658
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:469
hash_map< int_hash< int, -1, -2 >, int > * order_remap
Definition lto-streamer.h:474
vec< lto_encoder_entry > nodes
Definition lto-streamer.h:470
hash_map< symtab_node *, size_t > * map
Definition lto-streamer.h:471
Definition lto-streamer.h:481
lto_symtab_encoder_t encoder
Definition lto-streamer.h:482
unsigned index
Definition lto-streamer.h:483
Definition lto-streamer.h:491
hash_map< tree, unsigned > * tree_hash_table
Definition lto-streamer.h:492
vec< tree > trees
Definition lto-streamer.h:493
Definition hash-traits.h:303
Definition lto-streamer.h:709
unsigned current_discr
Definition lto-streamer.h:740
struct obstack obstack
Definition lto-streamer.h:750
int current_line
Definition lto-streamer.h:734
struct lto_output_stream * cfg_stream
Definition lto-streamer.h:720
struct lto_output_stream * string_stream
Definition lto-streamer.h:717
enum lto_section_type section_type
Definition lto-streamer.h:710
hash_set< tree > * local_trees
Definition lto-streamer.h:746
bool current_sysp
Definition lto-streamer.h:736
int current_col
Definition lto-streamer.h:735
tree current_block
Definition lto-streamer.h:739
struct lto_out_decl_state * decl_state
Definition lto-streamer.h:711
bool emit_pwd
Definition lto-streamer.h:738
hash_table< string_slot_hasher > * string_hash_table
Definition lto-streamer.h:724
symtab_node * symbol
Definition lto-streamer.h:728
const char * current_file
Definition lto-streamer.h:733
bool reset_locus
Definition lto-streamer.h:737
struct streamer_tree_cache_d * writer_cache
Definition lto-streamer.h:743
struct lto_output_stream * main_stream
Definition lto-streamer.h:714
Definition lto-streamer.h:556
ld_plugin_symbol_resolution_t res
Definition lto-streamer.h:557
unsigned index
Definition lto-streamer.h:558
Definition tree-streamer.h:47
Definition lto-streamer.h:676
static bool equal(const string_slot *, const string_slot *)
Definition lto-streamer.h:698
static hashval_t hash(const string_slot *)
Definition lto-streamer.h:685
Definition lto-streamer.h:667
int len
Definition lto-streamer.h:669
unsigned int slot_num
Definition lto-streamer.h:670
const char * s
Definition lto-streamer.h:668
#define NULL
Definition system.h:50
#define gcc_assert(EXPR)
Definition system.h:814
#define true
Definition system.h:887
#define false
Definition system.h:888
#define STATIC_ASSERT(X)
Definition system.h:864
#define NUM_TREE_CODES
Definition tree-core.h:156
@ MAX_TREE_CODES
Definition tree-core.h:149
#define NULL_TREE
Definition tree.h:317