41#define CTF_NULL_TYPEID 0
45#define CTF_INIT_TYPEID 1
120 union GTY ((desc (
"0")))
126 uint32_t ctti_lsizelo;
129#define ctti_size _u._size
130#define ctti_type _u._type
134#define CTF_FUNC_VARARG 0x1
138typedef struct GTY ((chain_next (
"%h.dmd_next")))
ctf_dmdef
148#define ctf_dmd_list_next(elem) ((ctf_dmdef_t *)((elem)->dmd_next))
160#define ctf_farg_list_next(elem) ((ctf_func_arg_t *)((elem)->farg_next))
189 union GTY ((desc (
"ctf_dtu_d_union_selector (&%1)")))
206#define ctf_type_id(dtd) ((uint32_t) dtd->dtd_type)
225 unsigned int ctsloc_line;
226 unsigned int ctsloc_col;
256 return htab_hash_pointer (dtd->dtd_key);
262 return (dtd->dtd_key == dtd2->
dtd_key);
276 return htab_hash_pointer (dvd->
dvd_key);
365 size_t ctfc_aux_strlen;
372#define CTF_AUX_STRTAB 1
412#define CTF_ADD_NONROOT 0
413#define CTF_ADD_ROOT 1
420extern void ctf_output (
const char * filename);
467 uint32_t,
unsigned HOST_WIDE_INT,
dw_die_ref);
bool traverse_btf_func_types(funcs_traverse_callback callback, void *data)
Definition btfout.cc:1813
void btf_early_finish(void)
Definition btfout.cc:1235
uint32_t btf_dtd_kind(ctf_dtdef_ref dtd)
Definition btfout.cc:154
void btf_finalize(void)
Definition btfout.cc:1777
void btf_finish(void)
Definition btfout.cc:1728
void btf_mark_type_used(tree t)
Definition btfout.cc:1605
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:172
ctf_dtdef_ref 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:598
ctf_dtdef_ref ctf_add_array(ctf_container_ref ctfc, uint32_t flag, const ctf_arinfo_t *arp, dw_die_ref die)
Definition ctfc.cc:612
unsigned int ctfc_get_num_ctf_types(ctf_container_ref ctfc)
Definition ctfc.cc:49
ctf_dtdef_ref 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:635
void ctfc_delete_strtab(ctf_strtable_t *strtab)
Definition ctfc.cc:1040
ctf_dtdef_ref ctf_add_typedef(ctf_container_ref ctfc, uint32_t flag, const char *name, ctf_dtdef_ref ref, dw_die_ref die)
Definition ctfc.cc:530
ctf_dtdef_ref 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:836
ctf_dtdef_ref ctf_add_sou(ctf_container_ref ctfc, uint32_t flag, const char *name, uint32_t kind, unsigned HOST_WIDE_INT size, dw_die_ref die)
Definition ctfc.cc:865
void init_ctf_strtable(ctf_strtable_t *strtab)
Definition ctfc.cc:978
void ctf_init(void)
Definition ctfc.cc:1110
ctf_dvdef_ref ctf_add_variable(ctf_container_ref ctfc, const char *name, ctf_dtdef_ref ref, dw_die_ref die, unsigned int external_vis, dw_die_ref die_var_decl)
Definition ctfc.cc:760
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_dtdef_ref *dtd)
Definition ctfc.cc:926
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_dtdef_ref ctf_add_reftype(ctf_container_ref ctfc, uint32_t flag, ctf_dtdef_ref ref, uint32_t kind, dw_die_ref die)
Definition ctfc.cc:432
int ctf_add_function_arg(ctf_container_ref ctfc, dw_die_ref func, const char *name, ctf_dtdef_ref arg_dtd)
Definition ctfc.cc:804
int ctfc_get_dtd_srcloc(ctf_dtdef_ref dtd, ctf_srcloc_ref loc)
Definition ctfc.cc:947
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:139
ctf_dtdef_ref 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:584
const char * ctf_add_string(ctf_container_ref ctfc, const char *name, uint32_t *name_offset, int aux_str=CTF_STRTAB)
Definition ctfc.cc:321
ctf_dtdef_ref 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:591
int ctf_add_member_offset(ctf_container_ref ctfc, dw_die_ref sou, const char *name, ctf_dtdef_ref type, uint64_t bit_offset)
Definition ctfc.cc:719
ctf_dtdef_ref ctf_add_pointer(ctf_container_ref ctfc, uint32_t flag, ctf_dtdef_ref ref, dw_die_ref die)
Definition ctfc.cc:605
void ctfc_delete_container(ctf_container_ref ctfc)
Definition ctfc.cc:1062
bool ctfc_is_empty_container(ctf_container_ref ctfc)
Definition ctfc.cc:41
ctf_dtdef_ref ctf_add_slice(ctf_container_ref ctfc, uint32_t flag, ctf_dtdef_ref ref, uint32_t bit_offset, uint32_t bit_size, dw_die_ref die)
Definition ctfc.cc:552
void ctf_add_cuname(ctf_container_ref ctfc, const char *filename)
Definition ctfc.cc:335
ctf_dtdef_ref ctf_add_forward(ctf_container_ref ctfc, uint32_t flag, const char *name, uint32_t kind, dw_die_ref die)
Definition ctfc.cc:514
ctf_dtdef_ref ctf_add_decl_tag(ctf_container_ref ctfc, uint32_t flag, const char *value, ctf_dtdef_ref ref_dtd, uint32_t comp_idx)
Definition ctfc.cc:483
ctf_dtdef_ref ctf_add_type_tag(ctf_container_ref ctfc, uint32_t flag, const char *value, ctf_dtdef_ref ref_dtd)
Definition ctfc.cc:452
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:960
bool ctf_dvd_ignore_lookup(const ctf_container_ref ctfc, dw_die_ref die)
Definition ctfc.cc:206
unsigned int ctfc_get_num_ctf_vars(ctf_container_ref ctfc)
Definition ctfc.cc:56
ctf_dtdef_ref ctf_lookup_tree_type(ctf_container_ref ctfc, const tree type)
Definition ctfc.cc:908
enum ctf_dtu_d_union_enum ctf_dtu_d_union_selector(ctf_dtdef_ref ctftype)
Definition ctfc.cc:91
int ctf_add_enumerator(ctf_container_ref ctfc, ctf_dtdef_ref enum_dtd, const char *name, HOST_WIDE_INT value, dw_die_ref die)
Definition ctfc.cc:670
ctf_dvdef_ref ctf_dvd_lookup(const ctf_container_ref ctfc, dw_die_ref die)
Definition ctfc.cc:172
ctf_dtdef_ref ctf_add_decl_tag(ctf_container_ref, uint32_t, const char *, ctf_dtdef_ref, uint32_t)
Definition ctfc.cc:483
bool ctf_type_exists(ctf_container_ref, dw_die_ref, ctf_dtdef_ref *)
Definition ctfc.cc:926
ctf_dtdef_ref ctf_add_forward(ctf_container_ref, uint32_t, const char *, uint32_t, dw_die_ref)
Definition ctfc.cc:514
ctf_dvdef_ref ctf_add_variable(ctf_container_ref, const char *, ctf_dtdef_ref, dw_die_ref, unsigned int, dw_die_ref)
Definition ctfc.cc:760
struct ctf_dmdef ctf_dmdef_t
uint64_t ctf_id_t
Definition ctfc.h:49
struct ctf_itype ctf_itype_t
struct ctf_sliceinfo ctf_sliceinfo_t
void ctfc_delete_container(ctf_container_ref)
Definition ctfc.cc:1062
ctf_container_t * ctf_container_ref
Definition ctfc.h:372
void ctf_add_cuname(ctf_container_ref, const char *)
Definition ctfc.cc:335
size_t ctfc_get_num_vlen_bytes(ctf_container_ref)
Definition ctfc.cc:82
ctf_dtu_d_union_enum
Definition ctfc.h:231
@ CTF_DTU_D_TAG
Definition ctfc.h:237
@ CTF_DTU_D_ARGUMENTS
Definition ctfc.h:235
@ CTF_DTU_D_SLICE
Definition ctfc.h:236
@ CTF_DTU_D_MEMBERS
Definition ctfc.h:232
@ CTF_DTU_D_ENCODING
Definition ctfc.h:234
@ CTF_DTU_D_ARRAY
Definition ctfc.h:233
ctf_dvdef_t * ctf_dvdef_ref
Definition ctfc.h:57
struct ctf_strtable ctf_strtable_t
ctf_dtdef_ref ctf_add_slice(ctf_container_ref, uint32_t, ctf_dtdef_ref, uint32_t, uint32_t, dw_die_ref)
Definition ctfc.cc:552
unsigned int ctfc_get_num_ctf_types(ctf_container_ref)
Definition ctfc.cc:49
ctf_dtdef_ref ctf_add_reftype(ctf_container_ref, uint32_t, ctf_dtdef_ref, uint32_t, dw_die_ref)
Definition ctfc.cc:432
ctf_dtdef_ref ctf_add_integer(ctf_container_ref, uint32_t, const char *, const ctf_encoding_t *, dw_die_ref)
Definition ctfc.cc:591
ctf_dtdef_ref ctf_lookup_tree_type(ctf_container_ref, const tree)
Definition ctfc.cc:908
struct ctf_dvdef ctf_dvdef_t
Definition ctfc.h:56
void ctf_init(void)
Definition ctfc.cc:1110
ctf_container_ref ctf_get_tu_ctfc(void)
Definition ctfc.cc:33
void btf_early_finish(void)
Definition btfout.cc:1235
ctf_dtdef_ref ctf_add_array(ctf_container_ref, uint32_t, const ctf_arinfo_t *, dw_die_ref)
Definition ctfc.cc:612
bool(* funcs_traverse_callback)(ctf_dtdef_ref, void *)
Definition ctfc.h:485
struct ctf_encoding ctf_encoding_t
ctf_dtdef_ref ctf_add_type_tag(ctf_container_ref, uint32_t, const char *, ctf_dtdef_ref)
Definition ctfc.cc:452
ctf_dtdef_t * ctf_dtdef_ref
Definition ctfc.h:53
uint32_t btf_dtd_kind(ctf_dtdef_ref dtd)
Definition btfout.cc:154
enum ctf_dtu_d_union_enum ctf_dtu_d_union_selector(ctf_dtdef_ref)
Definition ctfc.cc:91
int ctf_add_enumerator(ctf_container_ref, ctf_dtdef_ref, const char *, HOST_WIDE_INT, dw_die_ref)
Definition ctfc.cc:670
ctf_dtdef_ref ctf_add_typedef(ctf_container_ref, uint32_t, const char *, ctf_dtdef_ref, dw_die_ref)
Definition ctfc.cc:530
struct ctf_string ctf_string_t
ctf_dtdef_ref ctf_add_pointer(ctf_container_ref, uint32_t, ctf_dtdef_ref, dw_die_ref)
Definition ctfc.cc:605
int ctfc_get_dvd_srcloc(ctf_dvdef_ref, ctf_srcloc_ref)
Definition ctfc.cc:960
ctf_dtdef_ref ctf_add_unknown(ctf_container_ref, uint32_t, const char *, const ctf_encoding_t *, dw_die_ref)
Definition ctfc.cc:598
void ctfc_delete_strtab(ctf_strtable_t *)
Definition ctfc.cc:1040
void btf_finalize(void)
Definition btfout.cc:1777
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
struct ctf_decl_tag ctf_decl_tag_t
const char * ctf_add_string(ctf_container_ref, const char *, uint32_t *, int)
Definition ctfc.cc:321
void btf_mark_type_used(tree)
Definition btfout.cc:1605
struct ctf_func_arg ctf_func_arg_t
void ctf_output(const char *filename)
Definition ctfout.cc:803
bool traverse_btf_func_types(funcs_traverse_callback, void *)
Definition btfout.cc:1813
ctf_srcloc_t * ctf_srcloc_ref
Definition ctfc.h:227
struct ctf_funcinfo ctf_funcinfo_t
unsigned int ctfc_get_num_ctf_vars(ctf_container_ref)
Definition ctfc.cc:56
void btf_finish(void)
Definition btfout.cc:1728
size_t ctfc_get_strtab_len(ctf_container_ref, int)
Definition ctfc.cc:73
ctf_dtdef_ref ctf_add_function(ctf_container_ref, uint32_t, const char *, const ctf_funcinfo_t *, dw_die_ref, bool, int)
Definition ctfc.cc:836
void init_ctf_strtable(ctf_strtable_t *)
Definition ctfc.cc:978
ctf_dtdef_ref ctf_add_enum(ctf_container_ref, uint32_t, const char *, HOST_WIDE_INT, bool, dw_die_ref)
Definition ctfc.cc:635
int ctfc_get_dtd_srcloc(ctf_dtdef_ref, ctf_srcloc_ref)
Definition ctfc.cc:947
struct ctf_srcloc ctf_srcloc_t
ctf_dtdef_ref ctf_add_sou(ctf_container_ref, uint32_t, const char *, uint32_t, unsigned HOST_WIDE_INT, dw_die_ref)
Definition ctfc.cc:865
int ctf_add_function_arg(ctf_container_ref, dw_die_ref, const char *, ctf_dtdef_ref)
Definition ctfc.cc:804
struct ctf_arinfo ctf_arinfo_t
struct ctf_dtdef ctf_dtdef_t
Definition ctfc.h:52
bool ctf_dvd_ignore_lookup(const ctf_container_ref ctfc, dw_die_ref die)
Definition ctfc.cc:206
struct ctf_container ctf_container_t
void ctf_finalize(void)
Definition ctfout.cc:837
int ctf_add_member_offset(ctf_container_ref, dw_die_ref, const char *, ctf_dtdef_ref, uint64_t)
Definition ctfc.cc:719
ctf_dtdef_ref ctf_dtd_lookup(const ctf_container_ref ctfc, dw_die_ref die)
Definition ctfc.cc:139
ctf_dtdef_ref ctf_add_float(ctf_container_ref, uint32_t, const char *, const ctf_encoding_t *, dw_die_ref)
Definition ctfc.cc:584
struct die_struct * dw_die_ref
Definition dwarf2out.h:25
unsigned int ctr_nelems
Definition ctfc.h:94
ctf_dtdef_ref ctr_contents
Definition ctfc.h:92
ctf_dtdef_ref ctr_index
Definition ctfc.h:93
vec< ctf_dtdef_ref, va_gc > * ctfc_tags
Definition ctfc.h:306
hash_table< ctfc_dtd_hasher > * ctfc_types
Definition ctfc.h:296
size_t ctfc_strlen
Definition ctfc.h:361
ctf_dtdef_t ** ctfc_types_list
Definition ctfc.h:344
unsigned char ctfc_flags
Definition ctfc.h:292
unsigned short ctfc_magic
Definition ctfc.h:290
hash_table< ctfc_dvd_hasher > * ctfc_vars
Definition ctfc.h:298
uint64_t ctfc_num_vlen_bytes
Definition ctfc.h:327
uint64_t ctfc_num_stypes
Definition ctfc.h:320
ctf_id_t ctfc_nextid
Definition ctfc.h:330
hash_table< ctfc_dvd_hasher > * ctfc_ignore_vars
Definition ctfc.h:300
uint64_t ctfc_num_types
Definition ctfc.h:319
uint64_t ctfc_vars_list_count
Definition ctfc.h:340
ctf_strtable_t ctfc_strtable
Definition ctfc.h:314
uint64_t ctfc_num_global_funcs
Definition ctfc.h:321
uint32_t ctfc_cuname_offset
Definition ctfc.h:293
size_t ctfc_aux_strlen
Definition ctfc.h:363
ctf_dvdef_t ** ctfc_vars_list
Definition ctfc.h:338
ctf_dvdef_t ** ctfc_gobjts_list
Definition ctfc.h:351
uint64_t ctfc_numbytes_asm
Definition ctfc.h:359
ctf_dtdef_t ** ctfc_gfuncs_list
Definition ctfc.h:348
hash_map< ctf_dtdef_ref, ctf_dtdef_ref > * ctfc_type_tags_map
Definition ctfc.h:311
ctf_strtable_t ctfc_aux_strtable
Definition ctfc.h:317
uint64_t ctfc_num_global_objts
Definition ctfc.h:322
unsigned char ctfc_version
Definition ctfc.h:291
uint32_t component_idx
Definition ctfc.h:167
ctf_dvdef_ref ref_var
Definition ctfc.h:168
HOST_WIDE_INT dmd_value
Definition ctfc.h:143
struct ctf_dmdef * dmd_next
Definition ctfc.h:144
uint32_t dmd_name_offset
Definition ctfc.h:141
const char * dmd_name
Definition ctfc.h:139
ctf_dtdef_ref dmd_type
Definition ctfc.h:140
uint64_t dmd_offset
Definition ctfc.h:142
BOOL_BITFIELD from_global_func
Definition ctfc.h:183
ctf_func_arg_t * dtu_argv
Definition ctfc.h:196
BOOL_BITFIELD dtd_enum_unsigned
Definition ctfc.h:185
ctf_sliceinfo_t dtu_slice
Definition ctfc.h:198
ctf_dtdef_ref ref_type
Definition ctfc.h:178
ctf_itype_t dtd_data
Definition ctfc.h:179
union ctf_dtdef::@145205230242124377222321355231110264357130277370 dtd_u
ctf_dmdef_t * dtu_members
Definition ctfc.h:190
uint32_t linkage
Definition ctfc.h:180
ctf_arinfo_t dtu_arr
Definition ctfc.h:192
dw_die_ref dtd_key
Definition ctfc.h:175
ctf_id_t dtd_type
Definition ctfc.h:177
const char * dtd_name
Definition ctfc.h:176
ctf_decl_tag_t dtu_tag
Definition ctfc.h:200
ctf_encoding_t dtu_enc
Definition ctfc.h:194
unsigned int dvd_visibility
Definition ctfc.h:213
uint32_t dvd_name_offset
Definition ctfc.h:212
const char * dvd_name
Definition ctfc.h:211
ctf_dtdef_ref dvd_type
Definition ctfc.h:214
ctf_id_t dvd_id
Definition ctfc.h:215
dw_die_ref dvd_key
Definition ctfc.h:210
unsigned int cte_offset
Definition ctfc.h:84
unsigned int cte_bits
Definition ctfc.h:85
unsigned int cte_format
Definition ctfc.h:83
const char * farg_name
Definition ctfc.h:154
struct ctf_func_arg * farg_next
Definition ctfc.h:156
uint32_t farg_name_offset
Definition ctfc.h:155
ctf_dtdef_ref farg_type
Definition ctfc.h:153
ctf_dtdef_ref ctc_return
Definition ctfc.h:101
unsigned int ctc_flags
Definition ctfc.h:103
unsigned int ctc_argc
Definition ctfc.h:102
uint32_t ctti_lsizehi
Definition ctfc.h:124
uint32_t ctti_info
Definition ctfc.h:119
uint32_t _type
Definition ctfc.h:122
uint32_t ctti_lsizelo
Definition ctfc.h:125
uint32_t ctti_name
Definition ctfc.h:118
union ctf_itype::@323375332301132044054343014213354223324057360375 _u
uint32_t _size
Definition ctfc.h:121
unsigned short cts_offset
Definition ctfc.h:109
unsigned short cts_bits
Definition ctfc.h:110
ctf_dtdef_ref cts_type
Definition ctfc.h:108
unsigned int ctsloc_line
Definition ctfc.h:223
unsigned int ctsloc_col
Definition ctfc.h:224
const char * ctsloc_file
Definition ctfc.h:222
struct ctf_string * cts_next
Definition ctfc.h:64
const char * cts_str
Definition ctfc.h:63
ctf_string_t * ctstab_head
Definition ctfc.h:71
int ctstab_num
Definition ctfc.h:73
size_t ctstab_len
Definition ctfc.h:74
ctf_string_t * ctstab_tail
Definition ctfc.h:72
const char * ctstab_estr
Definition ctfc.h:75
ctf_dtdef_ref compare_type
Definition ctfc.h:245
static bool equal(ctf_dtdef_ref, ctf_dtdef_ref)
Definition ctfc.h:258
static hashval_t hash(ctf_dtdef_ref)
Definition ctfc.h:252
ctf_dvdef_ref compare_type
Definition ctfc.h:265
static bool equal(ctf_dvdef_ref, ctf_dvdef_ref)
Definition ctfc.h:278
static hashval_t hash(ctf_dvdef_ref)
Definition ctfc.h:272
Definition hash-traits.h:321
#define BOOL_BITFIELD
Definition system.h:896
#define bool
Definition system.h:886