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
534 return htab_hash_pointer (s->fn_decl);
540 return a->fn_decl ==
b->fn_decl;
617 unsigned HOST_WIDE_INT
id;
655 return linemap_id + file_data->
order;
724 hashval_t
r = ds->
len;
727 for (
i = 0;
i < ds->
len;
i++)
728 r =
r * 67 + (
unsigned)ds->
s[
i] - 113;
738 return memcmp (ds1->
s, ds2->
s, ds1->
len) == 0;
829 const char *,
int,
size_t *,
830 bool decompress =
false);
836 const char *,
int,
size_t *);
839 const char *,
const char *,
size_t,
840 bool decompress =
false);
843 const char *,
const char *,
size_t);
846 const char *,
const char *);
857 HOST_WIDE_INT, HOST_WIDE_INT,
908 const char *,
unsigned,
910 bool need_location_cache =
true);
919 unsigned *,
unsigned *,
bool);
992 struct cl_target_option *);
996 struct cl_target_option *);
999 struct bitpack_d *,
struct cl_optimization *);
1002 struct bitpack_d *,
struct cl_optimization *);
1079 if (actual != expected)
1080 internal_error (
"bytecode stream: expected tag %s instead of %s",
1089 if (actual < tag1 || actual > tag2)
1090 internal_error (
"bytecode stream: tag %s is not in the expected range "
1102 encoder->
trees.create (0);
1114 encoder->
trees.release ();
1121 return encoder->
trees.length ();
1129 return encoder->
trees[idx];
1136 return encoder->
nodes.length ();
1140#define LCC_NOT_FOUND (-1)
1196 return encoder->
nodes[ref].node;
Definition lto-streamer.h:789
data_in(lto_file_decl_data *data_for_loc)
Definition lto-streamer.h:809
vec< ld_plugin_symbol_resolution_t > globals_resolution
Definition lto-streamer.h:801
lto_location_cache location_cache
Definition lto-streamer.h:807
struct streamer_tree_cache_d * reader_cache
Definition lto-streamer.h:804
unsigned int strings_len
Definition lto-streamer.h:798
struct lto_file_decl_data * file_data
Definition lto-streamer.h:792
const char * strings
Definition lto-streamer.h:795
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:345
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
unsigned stream_linemap_order
Definition lto-streamer.h:337
bool apply_location_cache()
Definition lto-streamer-in.cc:407
location_t current_loc
Definition lto-streamer.h:341
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:340
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:1162
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:489
struct lto_out_decl_state * lto_out_decl_state_ptr
Definition lto-streamer.h:570
lto_symtab_encoder_iterator lsei_start_in_partition(lto_symtab_encoder_t encoder)
Definition lto-streamer.h:1222
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:1069
lto_symtab_encoder_iterator lsei_start_variable_in_partition(lto_symtab_encoder_t encoder)
Definition lto-streamer.h:1273
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:658
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:1236
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:1077
struct lto_in_decl_state * lto_in_decl_state_ptr
Definition lto-streamer.h:527
tree lto_tree_ref_encoder_get_tree(struct lto_tree_ref_encoder *encoder, unsigned int idx)
Definition lto-streamer.h:1126
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:1247
enum gimple_code lto_tag_to_gimple_code(enum LTO_tags tag)
Definition lto-streamer.h:1050
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:1155
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:1191
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:653
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:1212
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:1201
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:1134
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:1099
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:1030
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:1022
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:1086
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:1060
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:1119
void lsei_next_variable_in_partition(lto_symtab_encoder_iterator *lsei)
Definition lto-streamer.h:1262
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:1041
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:1169
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:370
@ ZSTD
Definition lto-streamer.h:372
@ ZLIB
Definition lto-streamer.h:371
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:1183
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:1140
void lto_destroy_tree_ref_encoder(struct lto_tree_ref_encoder *encoder)
Definition lto-streamer.h:1109
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:1176
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:1146
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:530
static bool equal(lto_in_decl_state *a, lto_in_decl_state *b)
Definition lto-streamer.h:538
static hashval_t hash(lto_in_decl_state *s)
Definition lto-streamer.h:532
Definition lto-streamer.h:1287
tree decl
Definition lto-streamer.h:1288
unsigned HOST_WIDE_INT off
Definition lto-streamer.h:1290
const char * sym
Definition lto-streamer.h:1289
Definition function.h:249
Definition hash-traits.h:321
Definition hash-traits.h:122
Definition lto-streamer.h:661
char * ptr
Definition lto-streamer.h:662
lto_encoder_entry(toplevel_node *n)
Definition lto-streamer.h:459
unsigned int body
Definition lto-streamer.h:469
unsigned int in_partition
Definition lto-streamer.h:467
unsigned int only_for_inlining
Definition lto-streamer.h:471
unsigned int initializer
Definition lto-streamer.h:475
Definition lto-streamer.h:587
htab_t section_hash_table
Definition lto-streamer.h:605
unsigned mode_bits
Definition lto-streamer.h:638
unsigned max_index
Definition lto-streamer.h:621
vec< res_pair > respairs
Definition lto-streamer.h:620
struct lto_file_decl_data * next
Definition lto-streamer.h:611
lto_file_decl_data * loc_map_decl_data
Definition lto-streamer.h:646
struct lto_in_decl_state * global_decl_state
Definition lto-streamer.h:593
gcov_summary profile_info
Definition lto-streamer.h:623
int order
Definition lto-streamer.h:614
htab_t renaming_hash_table
Definition lto-streamer.h:608
unsigned HOST_WIDE_INT id
Definition lto-streamer.h:617
const char * file_name
Definition lto-streamer.h:602
vec< lto_loc_map *, va_gc > * loc_maps
Definition lto-streamer.h:647
lto_section lto_section_header
Definition lto-streamer.h:632
int order_base
Definition lto-streamer.h:634
unsigned num_linemap_sections
Definition lto-streamer.h:643
const unsigned char * mode_table
Definition lto-streamer.h:629
hash_map< tree, ld_plugin_symbol_resolution > * resolution_map
Definition lto-streamer.h:626
int unit_base
Definition lto-streamer.h:636
struct lto_in_decl_state * current_decl_state
Definition lto-streamer.h:589
hash_table< decl_state_hasher > * function_decl_states
Definition lto-streamer.h:599
lto_symtab_encoder_t symtab_node_encoder
Definition lto-streamer.h:596
Definition lto-streamer.h:511
bool compressed
Definition lto-streamer.h:520
tree fn_decl
Definition lto-streamer.h:517
vec< tree, va_gc > * streams[LTO_N_DECL_STREAMS]
Definition lto-streamer.h:513
unsigned linemap_id
Definition lto-streamer.h:524
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:547
lto_symtab_encoder_t symtab_node_encoder
Definition lto-streamer.h:553
bool compressed
Definition lto-streamer.h:560
tree fn_decl
Definition lto-streamer.h:557
bool output_offload_tables_p
Definition lto-streamer.h:563
unsigned linemap_id
Definition lto-streamer.h:567
struct lto_tree_ref_encoder streams[LTO_N_DECL_STREAMS]
Definition lto-streamer.h:550
Definition lto-streamer.h:670
struct lto_char_ptr_base * current_block
Definition lto-streamer.h:675
unsigned int total_size
Definition lto-streamer.h:687
unsigned int block_size
Definition lto-streamer.h:684
unsigned int left_in_block
Definition lto-streamer.h:681
char * current_pointer
Definition lto-streamer.h:678
struct lto_char_ptr_base * first_block
Definition lto-streamer.h:672
Definition lto-streamer.h:379
uint16_t flags
Definition lto-streamer.h:386
unsigned char _padding
Definition lto-streamer.h:383
int16_t minor_version
Definition lto-streamer.h:381
unsigned char slim_object
Definition lto-streamer.h:382
int16_t major_version
Definition lto-streamer.h:380
lto_compression get_compression()
Definition lto-streamer.h:395
void set_compression(lto_compression c)
Definition lto-streamer.h:389
Definition lto-streamer.h:693
struct lto_output_stream * main_stream
Definition lto-streamer.h:698
enum lto_section_type section_type
Definition lto-streamer.h:694
struct lto_out_decl_state * decl_state
Definition lto-streamer.h:695
Definition lto-streamer.h:438
unsigned HOST_WIDE_INT num_pickle_refs_output
Definition lto-streamer.h:452
unsigned HOST_WIDE_INT num_input_cgraph_nodes
Definition lto-streamer.h:439
unsigned HOST_WIDE_INT num_output_il_bytes
Definition lto-streamer.h:447
unsigned HOST_WIDE_INT num_input_files
Definition lto-streamer.h:441
unsigned HOST_WIDE_INT num_compressed_il_bytes
Definition lto-streamer.h:448
unsigned HOST_WIDE_INT num_output_files
Definition lto-streamer.h:442
unsigned HOST_WIDE_INT num_trees[NUM_TREE_CODES]
Definition lto-streamer.h:446
unsigned HOST_WIDE_INT num_function_bodies
Definition lto-streamer.h:445
unsigned HOST_WIDE_INT num_input_il_bytes
Definition lto-streamer.h:449
unsigned HOST_WIDE_INT section_size[LTO_N_SECTION_TYPES]
Definition lto-streamer.h:444
unsigned HOST_WIDE_INT num_uncompressed_il_bytes
Definition lto-streamer.h:450
unsigned HOST_WIDE_INT num_cgraph_partitions
Definition lto-streamer.h:443
unsigned HOST_WIDE_INT num_output_symtab_nodes
Definition lto-streamer.h:440
unsigned HOST_WIDE_INT num_tree_bodies_output
Definition lto-streamer.h:451
Definition lto-streamer.h:481
hash_map< toplevel_node *, size_t > * map
Definition lto-streamer.h:483
hash_map< int_hash< int, -1, -2 >, int > * order_remap
Definition lto-streamer.h:486
vec< lto_encoder_entry > nodes
Definition lto-streamer.h:482
Definition lto-streamer.h:493
lto_symtab_encoder_t encoder
Definition lto-streamer.h:494
unsigned index
Definition lto-streamer.h:495
Definition lto-streamer.h:503
hash_map< tree, unsigned > * tree_hash_table
Definition lto-streamer.h:504
vec< tree > trees
Definition lto-streamer.h:505
Definition hash-traits.h:303
Definition lto-streamer.h:746
unsigned current_discr
Definition lto-streamer.h:770
struct obstack obstack
Definition lto-streamer.h:783
struct lto_output_stream * cfg_stream
Definition lto-streamer.h:757
struct lto_output_stream * string_stream
Definition lto-streamer.h:754
enum lto_section_type section_type
Definition lto-streamer.h:747
hash_set< tree > * local_trees
Definition lto-streamer.h:779
size_t current_map_idx
Definition lto-streamer.h:771
tree current_block
Definition lto-streamer.h:769
location_t current_loc_offset
Definition lto-streamer.h:772
struct lto_out_decl_state * decl_state
Definition lto-streamer.h:748
hash_table< string_slot_hasher > * string_hash_table
Definition lto-streamer.h:761
symtab_node * symbol
Definition lto-streamer.h:765
unsigned current_linemap_id
Definition lto-streamer.h:773
struct streamer_tree_cache_d * writer_cache
Definition lto-streamer.h:776
struct lto_output_stream * main_stream
Definition lto-streamer.h:751
Definition lto-streamer.h:576
ld_plugin_symbol_resolution_t res
Definition lto-streamer.h:577
unsigned index
Definition lto-streamer.h:578
Definition tree-streamer.h:47
Definition lto-streamer.h:713
static bool equal(const string_slot *, const string_slot *)
Definition lto-streamer.h:735
static hashval_t hash(const string_slot *)
Definition lto-streamer.h:722
Definition lto-streamer.h:704
int len
Definition lto-streamer.h:706
unsigned int slot_num
Definition lto-streamer.h:707
const char * s
Definition lto-streamer.h:705
#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