diff options
Diffstat (limited to 'llvm/lib/CodeGen/AsmPrinter/DIEHash.cpp')
-rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/DIEHash.cpp | 196 |
1 files changed, 191 insertions, 5 deletions
diff --git a/llvm/lib/CodeGen/AsmPrinter/DIEHash.cpp b/llvm/lib/CodeGen/AsmPrinter/DIEHash.cpp index 40db1b2eb0c..1581c9682da 100644 --- a/llvm/lib/CodeGen/AsmPrinter/DIEHash.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/DIEHash.cpp @@ -119,8 +119,146 @@ void DIEHash::collectAttributes(DIE *Die, DIEAttrs &Attrs) { case dwarf::DW_AT_name: COLLECT_ATTR(DW_AT_name); break; - case dwarf::DW_AT_language: - COLLECT_ATTR(DW_AT_language); + case dwarf::DW_AT_accessibility: + COLLECT_ATTR(DW_AT_accessibility) + break; + case dwarf::DW_AT_address_class: + COLLECT_ATTR(DW_AT_address_class) + break; + case dwarf::DW_AT_allocated: + COLLECT_ATTR(DW_AT_allocated) + break; + case dwarf::DW_AT_artificial: + COLLECT_ATTR(DW_AT_artificial) + break; + case dwarf::DW_AT_associated: + COLLECT_ATTR(DW_AT_associated) + break; + case dwarf::DW_AT_binary_scale: + COLLECT_ATTR(DW_AT_binary_scale) + break; + case dwarf::DW_AT_bit_offset: + COLLECT_ATTR(DW_AT_bit_offset) + break; + case dwarf::DW_AT_bit_size: + COLLECT_ATTR(DW_AT_bit_size) + break; + case dwarf::DW_AT_bit_stride: + COLLECT_ATTR(DW_AT_bit_stride) + break; + case dwarf::DW_AT_byte_size: + COLLECT_ATTR(DW_AT_byte_size) + break; + case dwarf::DW_AT_byte_stride: + COLLECT_ATTR(DW_AT_byte_stride) + break; + case dwarf::DW_AT_const_expr: + COLLECT_ATTR(DW_AT_const_expr) + break; + case dwarf::DW_AT_const_value: + COLLECT_ATTR(DW_AT_const_value) + break; + case dwarf::DW_AT_containing_type: + COLLECT_ATTR(DW_AT_containing_type) + break; + case dwarf::DW_AT_count: + COLLECT_ATTR(DW_AT_count) + break; + case dwarf::DW_AT_data_bit_offset: + COLLECT_ATTR(DW_AT_data_bit_offset) + break; + case dwarf::DW_AT_data_location: + COLLECT_ATTR(DW_AT_data_location) + break; + case dwarf::DW_AT_data_member_location: + COLLECT_ATTR(DW_AT_data_member_location) + break; + case dwarf::DW_AT_decimal_scale: + COLLECT_ATTR(DW_AT_decimal_scale) + break; + case dwarf::DW_AT_decimal_sign: + COLLECT_ATTR(DW_AT_decimal_sign) + break; + case dwarf::DW_AT_default_value: + COLLECT_ATTR(DW_AT_default_value) + break; + case dwarf::DW_AT_digit_count: + COLLECT_ATTR(DW_AT_digit_count) + break; + case dwarf::DW_AT_discr: + COLLECT_ATTR(DW_AT_discr) + break; + case dwarf::DW_AT_discr_list: + COLLECT_ATTR(DW_AT_discr_list) + break; + case dwarf::DW_AT_discr_value: + COLLECT_ATTR(DW_AT_discr_value) + break; + case dwarf::DW_AT_encoding: + COLLECT_ATTR(DW_AT_encoding) + break; + case dwarf::DW_AT_enum_class: + COLLECT_ATTR(DW_AT_enum_class) + break; + case dwarf::DW_AT_endianity: + COLLECT_ATTR(DW_AT_endianity) + break; + case dwarf::DW_AT_explicit: + COLLECT_ATTR(DW_AT_explicit) + break; + case dwarf::DW_AT_is_optional: + COLLECT_ATTR(DW_AT_is_optional) + break; + case dwarf::DW_AT_location: + COLLECT_ATTR(DW_AT_location) + break; + case dwarf::DW_AT_lower_bound: + COLLECT_ATTR(DW_AT_lower_bound) + break; + case dwarf::DW_AT_mutable: + COLLECT_ATTR(DW_AT_mutable) + break; + case dwarf::DW_AT_ordering: + COLLECT_ATTR(DW_AT_ordering) + break; + case dwarf::DW_AT_picture_string: + COLLECT_ATTR(DW_AT_picture_string) + break; + case dwarf::DW_AT_prototyped: + COLLECT_ATTR(DW_AT_prototyped) + break; + case dwarf::DW_AT_small: + COLLECT_ATTR(DW_AT_small) + break; + case dwarf::DW_AT_segment: + COLLECT_ATTR(DW_AT_segment) + break; + case dwarf::DW_AT_string_length: + COLLECT_ATTR(DW_AT_string_length) + break; + case dwarf::DW_AT_threads_scaled: + COLLECT_ATTR(DW_AT_threads_scaled) + break; + case dwarf::DW_AT_upper_bound: + COLLECT_ATTR(DW_AT_upper_bound) + break; + case dwarf::DW_AT_use_location: + COLLECT_ATTR(DW_AT_use_location) + break; + case dwarf::DW_AT_use_UTF8: + COLLECT_ATTR(DW_AT_use_UTF8) + break; + case dwarf::DW_AT_variable_parameter: + COLLECT_ATTR(DW_AT_variable_parameter) + break; + case dwarf::DW_AT_virtuality: + COLLECT_ATTR(DW_AT_virtuality) + break; + case dwarf::DW_AT_visibility: + COLLECT_ATTR(DW_AT_visibility) + break; + case dwarf::DW_AT_vtable_elem_location: + COLLECT_ATTR(DW_AT_vtable_elem_location) break; default: break; @@ -145,7 +283,8 @@ void DIEHash::hashAttribute(AttrEntry Attr) { // TODO: Add support for additional forms. switch (Desc->getForm()) { - // TODO: We'll want to add DW_FORM_string here if we start emitting them again. + // TODO: We'll want to add DW_FORM_string here if we start emitting them + // again. case dwarf::DW_FORM_strp: addString(cast<DIEString>(Value)->getString()); break; @@ -168,9 +307,56 @@ void DIEHash::hashAttributes(const DIEAttrs &Attrs) { hashAttribute(ATTR); \ } - // FIXME: Add the rest. ADD_ATTR(Attrs.DW_AT_name); - ADD_ATTR(Attrs.DW_AT_language); + ADD_ATTR(Attrs.DW_AT_accessibility); + ADD_ATTR(Attrs.DW_AT_address_class); + ADD_ATTR(Attrs.DW_AT_allocated); + ADD_ATTR(Attrs.DW_AT_artificial); + ADD_ATTR(Attrs.DW_AT_associated); + ADD_ATTR(Attrs.DW_AT_binary_scale); + ADD_ATTR(Attrs.DW_AT_bit_offset); + ADD_ATTR(Attrs.DW_AT_bit_size); + ADD_ATTR(Attrs.DW_AT_bit_stride); + ADD_ATTR(Attrs.DW_AT_byte_size); + ADD_ATTR(Attrs.DW_AT_byte_stride); + ADD_ATTR(Attrs.DW_AT_const_expr); + ADD_ATTR(Attrs.DW_AT_const_value); + ADD_ATTR(Attrs.DW_AT_containing_type); + ADD_ATTR(Attrs.DW_AT_count); + ADD_ATTR(Attrs.DW_AT_data_bit_offset); + ADD_ATTR(Attrs.DW_AT_data_location); + ADD_ATTR(Attrs.DW_AT_data_member_location); + ADD_ATTR(Attrs.DW_AT_decimal_scale); + ADD_ATTR(Attrs.DW_AT_decimal_sign); + ADD_ATTR(Attrs.DW_AT_default_value); + ADD_ATTR(Attrs.DW_AT_digit_count); + ADD_ATTR(Attrs.DW_AT_discr); + ADD_ATTR(Attrs.DW_AT_discr_list); + ADD_ATTR(Attrs.DW_AT_discr_value); + ADD_ATTR(Attrs.DW_AT_encoding); + ADD_ATTR(Attrs.DW_AT_enum_class); + ADD_ATTR(Attrs.DW_AT_endianity); + ADD_ATTR(Attrs.DW_AT_explicit); + ADD_ATTR(Attrs.DW_AT_is_optional); + ADD_ATTR(Attrs.DW_AT_location); + ADD_ATTR(Attrs.DW_AT_lower_bound); + ADD_ATTR(Attrs.DW_AT_mutable); + ADD_ATTR(Attrs.DW_AT_ordering); + ADD_ATTR(Attrs.DW_AT_picture_string); + ADD_ATTR(Attrs.DW_AT_prototyped); + ADD_ATTR(Attrs.DW_AT_small); + ADD_ATTR(Attrs.DW_AT_segment); + ADD_ATTR(Attrs.DW_AT_string_length); + ADD_ATTR(Attrs.DW_AT_threads_scaled); + ADD_ATTR(Attrs.DW_AT_upper_bound); + ADD_ATTR(Attrs.DW_AT_use_location); + ADD_ATTR(Attrs.DW_AT_use_UTF8); + ADD_ATTR(Attrs.DW_AT_variable_parameter); + ADD_ATTR(Attrs.DW_AT_virtuality); + ADD_ATTR(Attrs.DW_AT_visibility); + ADD_ATTR(Attrs.DW_AT_vtable_elem_location); + + // FIXME: Add the extended attributes. } // Add all of the attributes for \param Die to the hash. |