diff options
author | Eric Christopher <echristo@gmail.com> | 2013-09-03 20:00:20 +0000 |
---|---|---|
committer | Eric Christopher <echristo@gmail.com> | 2013-09-03 20:00:20 +0000 |
commit | e020fa7c9cf784e2b2a748c342daa15e81ccdf3f (patch) | |
tree | ca57a18869ab9a8313213ae8db474ae1c1178471 /llvm/lib/CodeGen/AsmPrinter/DIEHash.cpp | |
parent | 7deccf0f06bc6461981cb3a23f1f6f6c145ca93e (diff) | |
download | bcm5719-llvm-e020fa7c9cf784e2b2a748c342daa15e81ccdf3f.tar.gz bcm5719-llvm-e020fa7c9cf784e2b2a748c342daa15e81ccdf3f.zip |
Add the rest of the stock attributes to the attribute table.
This won't affect the kinds of hashes we test for as we actually
do hashing based on form and attribute. Change the fission-hash
testcase one last time to handle DW_AT_comp_dir.
llvm-svn: 189840
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. |