mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-19 02:25:01 +00:00
AsmPrinter: Remove DIEHash::AttrEntry, NFC
Remove "the most boring struct ever" (thanks to review by Eric). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238366 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -122,7 +122,7 @@ void DIEHash::collectAttributes(const DIE &Die, DIEAttrs &Attrs) {
|
|||||||
|
|
||||||
#define COLLECT_ATTR(NAME) \
|
#define COLLECT_ATTR(NAME) \
|
||||||
case dwarf::NAME: \
|
case dwarf::NAME: \
|
||||||
Attrs.NAME.Val = Values[i]; \
|
Attrs.NAME = Values[i]; \
|
||||||
break
|
break
|
||||||
|
|
||||||
for (size_t i = 0, e = Values.size(); i != e; ++i) {
|
for (size_t i = 0, e = Values.size(); i != e; ++i) {
|
||||||
@@ -283,8 +283,7 @@ void DIEHash::hashLocList(const DIELocList &LocList) {
|
|||||||
|
|
||||||
// Hash an individual attribute \param Attr based on the type of attribute and
|
// Hash an individual attribute \param Attr based on the type of attribute and
|
||||||
// the form.
|
// the form.
|
||||||
void DIEHash::hashAttribute(AttrEntry Attr, dwarf::Tag Tag) {
|
void DIEHash::hashAttribute(DIEValue Value, dwarf::Tag Tag) {
|
||||||
const DIEValue &Value = Attr.Val;
|
|
||||||
dwarf::Attribute Attribute = Value.getAttribute();
|
dwarf::Attribute Attribute = Value.getAttribute();
|
||||||
|
|
||||||
// Other attribute values use the letter 'A' as the marker, and the value
|
// Other attribute values use the letter 'A' as the marker, and the value
|
||||||
@@ -368,7 +367,7 @@ void DIEHash::hashAttribute(AttrEntry Attr, dwarf::Tag Tag) {
|
|||||||
void DIEHash::hashAttributes(const DIEAttrs &Attrs, dwarf::Tag Tag) {
|
void DIEHash::hashAttributes(const DIEAttrs &Attrs, dwarf::Tag Tag) {
|
||||||
#define ADD_ATTR(ATTR) \
|
#define ADD_ATTR(ATTR) \
|
||||||
{ \
|
{ \
|
||||||
if (ATTR.Val) \
|
if (ATTR) \
|
||||||
hashAttribute(ATTR, Tag); \
|
hashAttribute(ATTR, Tag); \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -26,65 +26,57 @@ class CompileUnit;
|
|||||||
/// \brief An object containing the capability of hashing and adding hash
|
/// \brief An object containing the capability of hashing and adding hash
|
||||||
/// attributes onto a DIE.
|
/// attributes onto a DIE.
|
||||||
class DIEHash {
|
class DIEHash {
|
||||||
|
|
||||||
// The entry for a particular attribute.
|
|
||||||
//
|
|
||||||
// FIXME: Remove this struct, it's pretty boring now.
|
|
||||||
struct AttrEntry {
|
|
||||||
DIEValue Val;
|
|
||||||
};
|
|
||||||
|
|
||||||
// Collection of all attributes used in hashing a particular DIE.
|
// Collection of all attributes used in hashing a particular DIE.
|
||||||
struct DIEAttrs {
|
struct DIEAttrs {
|
||||||
AttrEntry DW_AT_name;
|
DIEValue DW_AT_name;
|
||||||
AttrEntry DW_AT_accessibility;
|
DIEValue DW_AT_accessibility;
|
||||||
AttrEntry DW_AT_address_class;
|
DIEValue DW_AT_address_class;
|
||||||
AttrEntry DW_AT_allocated;
|
DIEValue DW_AT_allocated;
|
||||||
AttrEntry DW_AT_artificial;
|
DIEValue DW_AT_artificial;
|
||||||
AttrEntry DW_AT_associated;
|
DIEValue DW_AT_associated;
|
||||||
AttrEntry DW_AT_binary_scale;
|
DIEValue DW_AT_binary_scale;
|
||||||
AttrEntry DW_AT_bit_offset;
|
DIEValue DW_AT_bit_offset;
|
||||||
AttrEntry DW_AT_bit_size;
|
DIEValue DW_AT_bit_size;
|
||||||
AttrEntry DW_AT_bit_stride;
|
DIEValue DW_AT_bit_stride;
|
||||||
AttrEntry DW_AT_byte_size;
|
DIEValue DW_AT_byte_size;
|
||||||
AttrEntry DW_AT_byte_stride;
|
DIEValue DW_AT_byte_stride;
|
||||||
AttrEntry DW_AT_const_expr;
|
DIEValue DW_AT_const_expr;
|
||||||
AttrEntry DW_AT_const_value;
|
DIEValue DW_AT_const_value;
|
||||||
AttrEntry DW_AT_containing_type;
|
DIEValue DW_AT_containing_type;
|
||||||
AttrEntry DW_AT_count;
|
DIEValue DW_AT_count;
|
||||||
AttrEntry DW_AT_data_bit_offset;
|
DIEValue DW_AT_data_bit_offset;
|
||||||
AttrEntry DW_AT_data_location;
|
DIEValue DW_AT_data_location;
|
||||||
AttrEntry DW_AT_data_member_location;
|
DIEValue DW_AT_data_member_location;
|
||||||
AttrEntry DW_AT_decimal_scale;
|
DIEValue DW_AT_decimal_scale;
|
||||||
AttrEntry DW_AT_decimal_sign;
|
DIEValue DW_AT_decimal_sign;
|
||||||
AttrEntry DW_AT_default_value;
|
DIEValue DW_AT_default_value;
|
||||||
AttrEntry DW_AT_digit_count;
|
DIEValue DW_AT_digit_count;
|
||||||
AttrEntry DW_AT_discr;
|
DIEValue DW_AT_discr;
|
||||||
AttrEntry DW_AT_discr_list;
|
DIEValue DW_AT_discr_list;
|
||||||
AttrEntry DW_AT_discr_value;
|
DIEValue DW_AT_discr_value;
|
||||||
AttrEntry DW_AT_encoding;
|
DIEValue DW_AT_encoding;
|
||||||
AttrEntry DW_AT_enum_class;
|
DIEValue DW_AT_enum_class;
|
||||||
AttrEntry DW_AT_endianity;
|
DIEValue DW_AT_endianity;
|
||||||
AttrEntry DW_AT_explicit;
|
DIEValue DW_AT_explicit;
|
||||||
AttrEntry DW_AT_is_optional;
|
DIEValue DW_AT_is_optional;
|
||||||
AttrEntry DW_AT_location;
|
DIEValue DW_AT_location;
|
||||||
AttrEntry DW_AT_lower_bound;
|
DIEValue DW_AT_lower_bound;
|
||||||
AttrEntry DW_AT_mutable;
|
DIEValue DW_AT_mutable;
|
||||||
AttrEntry DW_AT_ordering;
|
DIEValue DW_AT_ordering;
|
||||||
AttrEntry DW_AT_picture_string;
|
DIEValue DW_AT_picture_string;
|
||||||
AttrEntry DW_AT_prototyped;
|
DIEValue DW_AT_prototyped;
|
||||||
AttrEntry DW_AT_small;
|
DIEValue DW_AT_small;
|
||||||
AttrEntry DW_AT_segment;
|
DIEValue DW_AT_segment;
|
||||||
AttrEntry DW_AT_string_length;
|
DIEValue DW_AT_string_length;
|
||||||
AttrEntry DW_AT_threads_scaled;
|
DIEValue DW_AT_threads_scaled;
|
||||||
AttrEntry DW_AT_upper_bound;
|
DIEValue DW_AT_upper_bound;
|
||||||
AttrEntry DW_AT_use_location;
|
DIEValue DW_AT_use_location;
|
||||||
AttrEntry DW_AT_use_UTF8;
|
DIEValue DW_AT_use_UTF8;
|
||||||
AttrEntry DW_AT_variable_parameter;
|
DIEValue DW_AT_variable_parameter;
|
||||||
AttrEntry DW_AT_virtuality;
|
DIEValue DW_AT_virtuality;
|
||||||
AttrEntry DW_AT_visibility;
|
DIEValue DW_AT_visibility;
|
||||||
AttrEntry DW_AT_vtable_elem_location;
|
DIEValue DW_AT_vtable_elem_location;
|
||||||
AttrEntry DW_AT_type;
|
DIEValue DW_AT_type;
|
||||||
|
|
||||||
// Insert any additional ones here...
|
// Insert any additional ones here...
|
||||||
};
|
};
|
||||||
@@ -142,7 +134,7 @@ private:
|
|||||||
void hashLocList(const DIELocList &LocList);
|
void hashLocList(const DIELocList &LocList);
|
||||||
|
|
||||||
/// \brief Hashes an individual attribute.
|
/// \brief Hashes an individual attribute.
|
||||||
void hashAttribute(AttrEntry Attr, dwarf::Tag Tag);
|
void hashAttribute(DIEValue Value, dwarf::Tag Tag);
|
||||||
|
|
||||||
/// \brief Hashes an attribute that refers to another DIE.
|
/// \brief Hashes an attribute that refers to another DIE.
|
||||||
void hashDIEEntry(dwarf::Attribute Attribute, dwarf::Tag Tag,
|
void hashDIEEntry(dwarf::Attribute Attribute, dwarf::Tag Tag,
|
||||||
|
Reference in New Issue
Block a user