41#define CTF_NULL_TYPEID 0
45#define CTF_INIT_TYPEID 1
112 union GTY ((desc (
"0")))
121#define ctti_size _u._size
122#define ctti_type _u._type
126#define CTF_FUNC_VARARG 0x1
132 const char * dmd_name;
140#define ctf_dmd_list_next(elem) ((ctf_dmdef_t *)((elem)->dmd_next))
147 const char * farg_name;
152#define ctf_farg_list_next(elem) ((ctf_func_arg_t *)((elem)->farg_next))
159 const char * dtd_name;
162 bool from_global_func;
165 bool dtd_enum_unsigned;
166 union GTY ((desc (
"ctf_dtu_d_union_selector (&%1)")))
188 const char * dvd_name;
190 unsigned int dvd_visibility;
203 const char * ctsloc_file;
204 unsigned int ctsloc_line;
205 unsigned int ctsloc_col;
240 return (
dtd->dtd_key ==
dtd2->dtd_key);
260 return (
dvd->dvd_key ==
dvd2->dvd_key);
270 unsigned short ctfc_magic;
271 unsigned char ctfc_version;
272 unsigned char ctfc_flags;
276 hash_table <ctfc_dtd_hasher> *
GTY (()) ctfc_types;
332 size_t ctfc_aux_strlen;
339#define CTF_AUX_STRTAB 1
376#define CTF_ADD_NONROOT 0
377#define CTF_ADD_ROOT 1
384extern void ctf_output (
const char * filename);
387extern void btf_output (
const char * filename);
bool traverse_btf_func_types(funcs_traverse_callback callback, void *data)
Definition btfout.cc:1497
void btf_init_postprocess(void)
Definition btfout.cc:1366
ctf_id_t get_btf_id(ctf_id_t key)
Definition btfout.cc:251
void btf_finalize(void)
Definition btfout.cc:1466
void btf_output(const char *filename)
Definition btfout.cc:1441
Definition hash-table.h:375
#define GTY(x)
Definition coretypes.h:41
union tree_node * tree
Definition coretypes.h:97
ctf_dvdef_ref ctf_dvd_lookup(const ctf_container_ref ctfc, dw_die_ref die)
Definition ctfc.cc:169
int ctf_add_variable(ctf_container_ref ctfc, const char *name, ctf_id_t ref, dw_die_ref die, unsigned int external_vis, dw_die_ref die_var_decl)
Definition ctfc.cc:705
ctf_id_t ctf_add_reftype(ctf_container_ref ctfc, uint32_t flag, ctf_id_t ref, uint32_t kind, dw_die_ref die)
Definition ctfc.cc:431
unsigned int ctfc_get_num_ctf_types(ctf_container_ref ctfc)
Definition ctfc.cc:49
ctf_id_t ctf_add_forward(ctf_container_ref ctfc, uint32_t flag, const char *name, uint32_t kind, dw_die_ref die)
Definition ctfc.cc:451
ctf_id_t ctf_add_slice(ctf_container_ref ctfc, uint32_t flag, ctf_id_t ref, uint32_t bit_offset, uint32_t bit_size, dw_die_ref die)
Definition ctfc.cc:492
int ctf_add_member_offset(ctf_container_ref ctfc, dw_die_ref sou, const char *name, ctf_id_t type, uint64_t bit_offset)
Definition ctfc.cc:664
ctf_id_t ctf_add_function(ctf_container_ref ctfc, uint32_t flag, const char *name, const ctf_funcinfo_t *ctc, dw_die_ref die, bool from_global_func, int linkage)
Definition ctfc.cc:781
ctf_id_t ctf_add_sou(ctf_container_ref ctfc, uint32_t flag, const char *name, uint32_t kind, size_t size, dw_die_ref die)
Definition ctfc.cc:810
ctf_id_t ctf_lookup_tree_type(ctf_container_ref ctfc, const tree type)
Definition ctfc.cc:854
void ctf_init(void)
Definition ctfc.cc:1047
ctf_container_ref ctf_get_tu_ctfc(void)
Definition ctfc.cc:33
bool ctf_type_exists(ctf_container_ref ctfc, dw_die_ref type, ctf_id_t *type_id)
Definition ctfc.cc:872
ctf_strtable_t * ctfc_get_strtab(ctf_container_ref ctfc, int aux)
Definition ctfc.cc:65
size_t ctfc_get_strtab_len(ctf_container_ref ctfc, int aux)
Definition ctfc.cc:73
ctf_id_t ctf_add_pointer(ctf_container_ref ctfc, uint32_t flag, ctf_id_t ref, dw_die_ref die)
Definition ctfc.cc:548
int ctfc_get_dtd_srcloc(ctf_dtdef_ref dtd, ctf_srcloc_ref loc)
Definition ctfc.cc:893
size_t ctfc_get_num_vlen_bytes(ctf_container_ref ctfc)
Definition ctfc.cc:82
ctf_dtdef_ref ctf_dtd_lookup(const ctf_container_ref ctfc, const dw_die_ref type)
Definition ctfc.cc:136
const char * ctf_add_string(ctf_container_ref ctfc, const char *name, uint32_t *name_offset, int aux_str=CTF_STRTAB)
Definition ctfc.cc:318
ctf_id_t ctf_add_unknown(ctf_container_ref ctfc, uint32_t flag, const char *name, const ctf_encoding_t *ep, dw_die_ref die)
Definition ctfc.cc:541
void ctfc_delete_container(ctf_container_ref ctfc)
Definition ctfc.cc:1004
bool ctfc_is_empty_container(ctf_container_ref ctfc)
Definition ctfc.cc:41
ctf_id_t ctf_add_integer(ctf_container_ref ctfc, uint32_t flag, const char *name, const ctf_encoding_t *ep, dw_die_ref die)
Definition ctfc.cc:534
int ctf_add_enumerator(ctf_container_ref ctfc, ctf_id_t enid, const char *name, HOST_WIDE_INT value, dw_die_ref die)
Definition ctfc.cc:615
void ctf_add_cuname(ctf_container_ref ctfc, const char *filename)
Definition ctfc.cc:332
ctf_id_t ctf_add_enum(ctf_container_ref ctfc, uint32_t flag, const char *name, HOST_WIDE_INT size, bool eunsigned, dw_die_ref die)
Definition ctfc.cc:579
ctf_id_t ctf_add_float(ctf_container_ref ctfc, uint32_t flag, const char *name, const ctf_encoding_t *ep, dw_die_ref die)
Definition ctfc.cc:527
ctf_id_t ctf_add_array(ctf_container_ref ctfc, uint32_t flag, const ctf_arinfo_t *arp, dw_die_ref die)
Definition ctfc.cc:555
ctf_container_ref tu_ctfc
Definition ctfc.cc:30
int ctfc_get_dvd_srcloc(ctf_dvdef_ref dvd, ctf_srcloc_ref loc)
Definition ctfc.cc:906
bool ctf_dvd_ignore_lookup(const ctf_container_ref ctfc, dw_die_ref die)
Definition ctfc.cc:203
ctf_id_t ctf_add_typedef(ctf_container_ref ctfc, uint32_t flag, const char *name, ctf_id_t ref, dw_die_ref die)
Definition ctfc.cc:468
unsigned int ctfc_get_num_ctf_vars(ctf_container_ref ctfc)
Definition ctfc.cc:56
enum ctf_dtu_d_union_enum ctf_dtu_d_union_selector(ctf_dtdef_ref ctftype)
Definition ctfc.cc:91
int ctf_add_function_arg(ctf_container_ref ctfc, dw_die_ref func, const char *name, ctf_id_t type)
Definition ctfc.cc:749
ctf_dvdef_ref ctf_dvd_lookup(const ctf_container_ref ctfc, dw_die_ref die)
Definition ctfc.cc:169
struct ctf_dmdef ctf_dmdef_t
uint64_t ctf_id_t
Definition ctfc.h:49
bool ctf_type_exists(ctf_container_ref, dw_die_ref, ctf_id_t *)
Definition ctfc.cc:872
struct ctf_itype ctf_itype_t
struct ctf_sliceinfo ctf_sliceinfo_t
void btf_init_postprocess(void)
Definition btfout.cc:1366
void ctfc_delete_container(ctf_container_ref)
Definition ctfc.cc:1004
ctf_container_t * ctf_container_ref
Definition ctfc.h:339
void ctf_add_cuname(ctf_container_ref, const char *)
Definition ctfc.cc:332
size_t ctfc_get_num_vlen_bytes(ctf_container_ref)
Definition ctfc.cc:82
int ctf_add_variable(ctf_container_ref, const char *, ctf_id_t, dw_die_ref, unsigned int, dw_die_ref)
Definition ctfc.cc:705
ctf_dtu_d_union_enum
Definition ctfc.h:210
@ CTF_DTU_D_ARGUMENTS
Definition ctfc.h:214
@ CTF_DTU_D_SLICE
Definition ctfc.h:215
@ CTF_DTU_D_MEMBERS
Definition ctfc.h:211
@ CTF_DTU_D_ENCODING
Definition ctfc.h:213
@ CTF_DTU_D_ARRAY
Definition ctfc.h:212
ctf_dvdef_t * ctf_dvdef_ref
Definition ctfc.h:194
struct ctf_strtable ctf_strtable_t
int ctf_add_enumerator(ctf_container_ref, ctf_id_t, const char *, HOST_WIDE_INT, dw_die_ref)
Definition ctfc.cc:615
ctf_id_t get_btf_id(ctf_id_t)
Definition btfout.cc:251
unsigned int ctfc_get_num_ctf_types(ctf_container_ref)
Definition ctfc.cc:49
ctf_id_t ctf_add_array(ctf_container_ref, uint32_t, const ctf_arinfo_t *, dw_die_ref)
Definition ctfc.cc:555
void ctf_init(void)
Definition ctfc.cc:1047
ctf_container_ref ctf_get_tu_ctfc(void)
Definition ctfc.cc:33
ctf_id_t ctf_add_float(ctf_container_ref, uint32_t, const char *, const ctf_encoding_t *, dw_die_ref)
Definition ctfc.cc:527
bool(* funcs_traverse_callback)(ctf_dtdef_ref, void *)
Definition ctfc.h:442
ctf_id_t ctf_lookup_tree_type(ctf_container_ref, const tree)
Definition ctfc.cc:854
struct ctf_encoding ctf_encoding_t
ctf_dtdef_t * ctf_dtdef_ref
Definition ctfc.h:195
enum ctf_dtu_d_union_enum ctf_dtu_d_union_selector(ctf_dtdef_ref)
Definition ctfc.cc:91
struct ctf_string ctf_string_t
ctf_id_t ctf_add_reftype(ctf_container_ref, uint32_t, ctf_id_t, uint32_t, dw_die_ref)
Definition ctfc.cc:431
int ctf_add_function_arg(ctf_container_ref, dw_die_ref, const char *, ctf_id_t)
Definition ctfc.cc:749
int ctfc_get_dvd_srcloc(ctf_dvdef_ref, ctf_srcloc_ref)
Definition ctfc.cc:906
void btf_finalize(void)
Definition btfout.cc:1466
ctf_strtable_t * ctfc_get_strtab(ctf_container_ref, int)
Definition ctfc.cc:65
bool ctfc_is_empty_container(ctf_container_ref)
Definition ctfc.cc:41
ctf_id_t ctf_add_enum(ctf_container_ref, uint32_t, const char *, HOST_WIDE_INT, bool, dw_die_ref)
Definition ctfc.cc:579
const char * ctf_add_string(ctf_container_ref, const char *, uint32_t *, int)
Definition ctfc.cc:318
ctf_id_t ctf_add_function(ctf_container_ref, uint32_t, const char *, const ctf_funcinfo_t *, dw_die_ref, bool, int)
Definition ctfc.cc:781
ctf_id_t ctf_add_typedef(ctf_container_ref, uint32_t, const char *, ctf_id_t, dw_die_ref)
Definition ctfc.cc:468
ctf_id_t ctf_add_integer(ctf_container_ref, uint32_t, const char *, const ctf_encoding_t *, dw_die_ref)
Definition ctfc.cc:534
struct ctf_func_arg ctf_func_arg_t
void ctf_output(const char *filename)
Definition ctfout.cc:797
bool traverse_btf_func_types(funcs_traverse_callback, void *)
Definition btfout.cc:1497
ctf_id_t ctf_add_pointer(ctf_container_ref, uint32_t, ctf_id_t, dw_die_ref)
Definition ctfc.cc:548
ctf_srcloc_t * ctf_srcloc_ref
Definition ctfc.h:206
int ctf_add_member_offset(ctf_container_ref, dw_die_ref, const char *, ctf_id_t, uint64_t)
Definition ctfc.cc:664
struct ctf_funcinfo ctf_funcinfo_t
ctf_id_t ctf_add_unknown(ctf_container_ref, uint32_t, const char *, const ctf_encoding_t *, dw_die_ref)
Definition ctfc.cc:541
unsigned int ctfc_get_num_ctf_vars(ctf_container_ref)
Definition ctfc.cc:56
size_t ctfc_get_strtab_len(ctf_container_ref, int)
Definition ctfc.cc:73
ctf_id_t ctf_add_slice(ctf_container_ref, uint32_t, ctf_id_t, uint32_t, uint32_t, dw_die_ref)
Definition ctfc.cc:492
int ctfc_get_dtd_srcloc(ctf_dtdef_ref, ctf_srcloc_ref)
Definition ctfc.cc:893
struct ctf_srcloc ctf_srcloc_t
ctf_id_t ctf_add_sou(ctf_container_ref, uint32_t, const char *, uint32_t, size_t, dw_die_ref)
Definition ctfc.cc:810
struct ctf_arinfo ctf_arinfo_t
ctf_container_ref tu_ctfc
Definition ctfc.cc:30
bool ctf_dvd_ignore_lookup(const ctf_container_ref ctfc, dw_die_ref die)
Definition ctfc.cc:203
ctf_id_t ctf_add_forward(ctf_container_ref, uint32_t, const char *, uint32_t, dw_die_ref)
Definition ctfc.cc:451
struct ctf_container ctf_container_t
void ctf_finalize(void)
Definition ctfout.cc:831
void btf_output(const char *filename)
Definition btfout.cc:1441
ctf_dtdef_ref ctf_dtd_lookup(const ctf_container_ref ctfc, dw_die_ref die)
Definition ctfc.cc:136
T * ggc_alloc(ALONE_CXX_MEM_STAT_INFO)
Definition ggc.h:184
ctf_id_t ctr_contents
Definition ctfc.h:84
unsigned int ctr_nelems
Definition ctfc.h:86
ctf_id_t ctr_index
Definition ctfc.h:85
hash_table< ctfc_dtd_hasher > * ctfc_types
Definition ctfc.h:274
size_t ctfc_strlen
Definition ctfc.h:328
ctf_dtdef_t ** ctfc_types_list
Definition ctfc.h:311
unsigned char ctfc_flags
Definition ctfc.h:270
unsigned short ctfc_magic
Definition ctfc.h:268
hash_table< ctfc_dvd_hasher > * ctfc_vars
Definition ctfc.h:276
uint64_t ctfc_num_vlen_bytes
Definition ctfc.h:294
uint64_t ctfc_num_stypes
Definition ctfc.h:287
ctf_id_t ctfc_nextid
Definition ctfc.h:297
hash_table< ctfc_dvd_hasher > * ctfc_ignore_vars
Definition ctfc.h:278
uint64_t ctfc_num_types
Definition ctfc.h:286
uint64_t ctfc_vars_list_count
Definition ctfc.h:307
ctf_strtable_t ctfc_strtable
Definition ctfc.h:281
uint64_t ctfc_num_global_funcs
Definition ctfc.h:288
uint32_t ctfc_cuname_offset
Definition ctfc.h:271
size_t ctfc_aux_strlen
Definition ctfc.h:330
ctf_dvdef_t ** ctfc_vars_list
Definition ctfc.h:305
ctf_dvdef_t ** ctfc_gobjts_list
Definition ctfc.h:318
uint64_t ctfc_numbytes_asm
Definition ctfc.h:326
ctf_dtdef_t ** ctfc_gfuncs_list
Definition ctfc.h:315
ctf_strtable_t ctfc_aux_strtable
Definition ctfc.h:284
uint64_t ctfc_num_global_objts
Definition ctfc.h:289
unsigned char ctfc_version
Definition ctfc.h:269
HOST_WIDE_INT dmd_value
Definition ctfc.h:135
ctf_id_t dmd_type
Definition ctfc.h:132
struct ctf_dmdef * dmd_next
Definition ctfc.h:136
uint32_t dmd_name_offset
Definition ctfc.h:133
const char * dmd_name
Definition ctfc.h:131
uint64_t dmd_offset
Definition ctfc.h:134
bool from_global_func
Definition ctfc.h:161
ctf_func_arg_t * dtu_argv
Definition ctfc.h:173
ctf_sliceinfo_t dtu_slice
Definition ctfc.h:175
ctf_itype_t dtd_data
Definition ctfc.h:160
ctf_dmdef_t * dtu_members
Definition ctfc.h:167
union ctf_dtdef::@11 dtd_u
uint32_t linkage
Definition ctfc.h:163
ctf_arinfo_t dtu_arr
Definition ctfc.h:169
dw_die_ref dtd_key
Definition ctfc.h:157
ctf_id_t dtd_type
Definition ctfc.h:159
bool dtd_enum_unsigned
Definition ctfc.h:164
const char * dtd_name
Definition ctfc.h:158
ctf_encoding_t dtu_enc
Definition ctfc.h:171
unsigned int dvd_visibility
Definition ctfc.h:188
uint32_t dvd_name_offset
Definition ctfc.h:187
const char * dvd_name
Definition ctfc.h:186
ctf_id_t dvd_type
Definition ctfc.h:189
dw_die_ref dvd_key
Definition ctfc.h:185
unsigned int cte_offset
Definition ctfc.h:76
unsigned int cte_bits
Definition ctfc.h:77
unsigned int cte_format
Definition ctfc.h:75
const char * farg_name
Definition ctfc.h:146
struct ctf_func_arg * farg_next
Definition ctfc.h:148
ctf_id_t farg_type
Definition ctfc.h:145
uint32_t farg_name_offset
Definition ctfc.h:147
ctf_id_t ctc_return
Definition ctfc.h:93
unsigned int ctc_flags
Definition ctfc.h:95
unsigned int ctc_argc
Definition ctfc.h:94
uint32_t ctti_lsizehi
Definition ctfc.h:116
uint32_t ctti_info
Definition ctfc.h:111
uint32_t _type
Definition ctfc.h:114
uint32_t ctti_lsizelo
Definition ctfc.h:117
uint32_t ctti_name
Definition ctfc.h:110
uint32_t _size
Definition ctfc.h:113
unsigned short cts_offset
Definition ctfc.h:101
unsigned short cts_bits
Definition ctfc.h:102
unsigned int cts_type
Definition ctfc.h:100
unsigned int ctsloc_line
Definition ctfc.h:202
unsigned int ctsloc_col
Definition ctfc.h:203
const char * ctsloc_file
Definition ctfc.h:201
struct ctf_string * cts_next
Definition ctfc.h:56
const char * cts_str
Definition ctfc.h:55
ctf_string_t * ctstab_head
Definition ctfc.h:63
int ctstab_num
Definition ctfc.h:65
size_t ctstab_len
Definition ctfc.h:66
ctf_string_t * ctstab_tail
Definition ctfc.h:64
const char * ctstab_estr
Definition ctfc.h:67
ctf_dtdef_ref compare_type
Definition ctfc.h:223
static bool equal(ctf_dtdef_ref, ctf_dtdef_ref)
Definition ctfc.h:236
static hashval_t hash(ctf_dtdef_ref)
Definition ctfc.h:230
ctf_dvdef_ref compare_type
Definition ctfc.h:243
static bool equal(ctf_dvdef_ref, ctf_dvdef_ref)
Definition ctfc.h:256
static hashval_t hash(ctf_dvdef_ref)
Definition ctfc.h:250
Definition dwarf2out.cc:3178
Definition hash-traits.h:321
#define bool
Definition system.h:893