> 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