Clarification regarding various classes DIE's attribute value class
Jan Hubicka
hubicka@ucw.cz
Wed Oct 11 16:07:22 GMT 2023
> Hello,
> I am working on a project to produce the LTO object file from the compiler
> directly. So far, we have
> correctly outputted .symtab along with various .debug sections. The only
> thing remaining is to
> correctly output attribute values and their corresponding values in the
> .debug_info section. This is done by the output_die function in
> dwarf2out.cc based on the value's class. However, the same
> function is used in dwarf2out_finish as well as dwarf2out_early_finish, so
> I suspect that not every value class is being used in dwarfout_early_finish
> (mainly I am interested in -flto mode). As there is little documentation on
> the same, I experimented by commenting out the various cases of value class
> in output die. I found that the classes such as dw_val_class_addr,
> dw_val_class_high_pc, and dw_val_class_vms_delta aren't being used during
> the early_finish of LTO mode. I might be wrong, as my observation is based
> on commenting out and testing a few pieces of code that might need to be
> completed. So, can anyone please tell out of these 30 classes that are
> relevant to dwarf2out_early_finish in LTO mode or at least point out some
> documentation if it exists?
You can probably do gcc_assert (!in_lto_p && flag_lto && !flag_fat_lto_objects)
on parts of output_die which you think are unused and then do make check
and if it passes also make bootstrap. That should probably catch all
relevant cases.
Honza
> enum dw_val_class
> {
> dw_val_class_none,
> dw_val_class_addr,
> dw_val_class_offset,
> dw_val_class_loc,
> dw_val_class_loc_list,
> dw_val_class_range_list,
> dw_val_class_const,
> dw_val_class_unsigned_const,
> dw_val_class_const_double,
> dw_val_class_wide_int,
> dw_val_class_vec,
> dw_val_class_flag,
> dw_val_class_die_ref,
> dw_val_class_fde_ref,
> dw_val_class_lbl_id,
> dw_val_class_lineptr,
> dw_val_class_str,
> dw_val_class_macptr,
> dw_val_class_loclistsptr,
> dw_val_class_file,
> dw_val_class_data8,
> dw_val_class_decl_ref,
> dw_val_class_vms_delta,
> dw_val_class_high_pc,
> dw_val_class_discr_value,
> dw_val_class_discr_list,
> dw_val_class_const_implicit,
> dw_val_class_unsigned_const_implicit,
> dw_val_class_file_implicit,
> dw_val_class_view_list,
> dw_val_class_symview
> };
>
> --
> Rishi
More information about the Gcc
mailing list