[Lldb-commits] [lldb] Improve performance of .debug_names lookups when DW_IDX_parent attributes are used (PR #91808)

Alexander Yermolovich via lldb-commits lldb-commits at lists.llvm.org
Wed May 22 17:36:27 PDT 2024


ayermolo wrote:

Using example above, with a fix by @dwblaikie 

I see:

```
 Hash: 0xE0CDC6A2
      String: 0x00000018 "InnerState"
      Entry @ 0x10b {
        Abbrev: 0x3
        Tag: DW_TAG_class_type
        DW_IDX_type_unit: 0x01
        DW_IDX_die_offset: 0x00000030
      }
```

Since clang no longer emits entry for:
```
0x00000057:       DW_TAG_structure_type
                    DW_AT_declaration (true)
                    DW_AT_signature (0xe742f49eeadc2244)
```


Is this the right behavior?
Current BOLT behavior is to skip that DIE and reference it's parent:

```
Hash: 0xE0CDC6A2
      String: 0x00000018 "InnerState"
      Entry @ 0x109 {
        Abbrev: 0x3
        Tag: DW_TAG_class_type
        DW_IDX_type_unit: 0x01
        DW_IDX_die_offset: 0x00000030
        DW_IDX_parent: Entry @ 0x147
      }
Entry @ 0x147 {
        Abbrev: 0x7
        Tag: DW_TAG_namespace
        DW_IDX_type_unit: 0x01
        DW_IDX_die_offset: 0x00000025
        DW_IDX_parent: Entry @ 0x126
      }
```

```
0x00000055:     DW_TAG_namespace
                  DW_AT_name  ("B")

0x00000057:       DW_TAG_structure_type
                    DW_AT_declaration (true)
                    DW_AT_signature (0xe742f49eeadc2244)

0x00000060:         DW_TAG_class_type
                      DW_AT_calling_convention  (DW_CC_pass_by_value)
                      DW_AT_name  ("InnerState")
                      DW_AT_byte_size (0x01)
                      DW_AT_decl_file ("/main.cpp")
                      DW_AT_decl_line (1)

```

https://github.com/llvm/llvm-project/pull/91808


More information about the lldb-commits mailing list