Skip to content

Commit dd9f92c

Browse files
Revert "[DebugInfo][DWARF] Emit DW_AT_abstract_origin for concrete/inlined DW_TAG_lexical_blocks" (#137237)
Reverts #136205 Breaks buildbots, probably something about needing to restrict the test to running on a specific target or the like - I haven't looked closely. Co-authored-by: Vladislav Dzhidzhoev <[email protected]>
1 parent f261f14 commit dd9f92c

File tree

6 files changed

+8
-48
lines changed

6 files changed

+8
-48
lines changed

llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -782,8 +782,6 @@ DIE *DwarfCompileUnit::constructLexicalScopeDIE(LexicalScope *Scope) {
782782
assert(!LexicalBlockDIEs.count(DS) &&
783783
"Concrete out-of-line DIE for this scope exists!");
784784
LexicalBlockDIEs[DS] = ScopeDIE;
785-
} else {
786-
InlinedLocalScopeDIEs[DS].push_back(ScopeDIE);
787785
}
788786

789787
attachRangesOrLowHighPC(*ScopeDIE, Scope->getRanges());
@@ -1493,19 +1491,6 @@ void DwarfCompileUnit::finishEntityDefinition(const DbgEntity *Entity) {
14931491
getDwarfDebug().addAccelName(*this, CUNode->getNameTableKind(), Name, *Die);
14941492
}
14951493

1496-
void DwarfCompileUnit::attachLexicalScopesAbstractOrigins() {
1497-
auto AttachAO = [&](const DILocalScope *LS, DIE *ScopeDIE) {
1498-
if (auto *AbsLSDie = getAbstractScopeDIEs().lookup(LS))
1499-
addDIEEntry(*ScopeDIE, dwarf::DW_AT_abstract_origin, *AbsLSDie);
1500-
};
1501-
1502-
for (auto [LScope, ScopeDIE] : LexicalBlockDIEs)
1503-
AttachAO(LScope, ScopeDIE);
1504-
for (auto &[LScope, ScopeDIEs] : InlinedLocalScopeDIEs)
1505-
for (auto *ScopeDIE : ScopeDIEs)
1506-
AttachAO(LScope, ScopeDIE);
1507-
}
1508-
15091494
DbgEntity *DwarfCompileUnit::getExistingAbstractEntity(const DINode *Node) {
15101495
auto &AbstractEntities = getAbstractEntities();
15111496
auto I = AbstractEntities.find(Node);

llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -82,10 +82,6 @@ class DwarfCompileUnit final : public DwarfUnit {
8282
// List of abstract local scopes (either DISubprogram or DILexicalBlock).
8383
DenseMap<const DILocalScope *, DIE *> AbstractLocalScopeDIEs;
8484

85-
// List of inlined lexical block scopes that belong to subprograms within this
86-
// CU.
87-
DenseMap<const DILocalScope *, SmallVector<DIE *, 2>> InlinedLocalScopeDIEs;
88-
8985
DenseMap<const DINode *, std::unique_ptr<DbgEntity>> AbstractEntities;
9086

9187
/// DWO ID for correlating skeleton and split units.
@@ -303,7 +299,6 @@ class DwarfCompileUnit final : public DwarfUnit {
303299

304300
void finishSubprogramDefinition(const DISubprogram *SP);
305301
void finishEntityDefinition(const DbgEntity *Entity);
306-
void attachLexicalScopesAbstractOrigins();
307302

308303
/// Find abstract variable associated with Var.
309304
using InlinedEntity = DbgValueHistoryMap::InlinedEntity;

llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1262,7 +1262,6 @@ void DwarfDebug::finalizeModuleInfo() {
12621262
auto &TheCU = *P.second;
12631263
if (TheCU.getCUNode()->isDebugDirectivesOnly())
12641264
continue;
1265-
TheCU.attachLexicalScopesAbstractOrigins();
12661265
// Emit DW_AT_containing_type attribute to connect types with their
12671266
// vtable holding type.
12681267
TheCU.constructContainingTypeDIEs();

llvm/test/DebugInfo/Generic/inline-scopes.ll

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -20,29 +20,16 @@
2020
; }
2121

2222
; Ensure that lexical_blocks within inlined_subroutines are preserved/emitted.
23-
; CHECK: DW_TAG_subprogram
24-
; CHECK-NEXT: DW_AT_linkage_name ("_Z2f1v")
25-
; CHECK: [[ADDR1:0x[0-9a-f]+]]: DW_TAG_lexical_block
26-
; CHECK: DW_TAG_subprogram
27-
; CHECK-NEXT: DW_AT_linkage_name ("_Z2f2v")
28-
; CHECK: [[ADDR2:0x[0-9a-f]+]]: DW_TAG_lexical_block
2923
; CHECK: DW_TAG_inlined_subroutine
3024
; CHECK-NOT: DW_TAG
3125
; CHECK-NOT: NULL
32-
; CHECK: DW_TAG_lexical_block
33-
; CHECK-NOT: {{DW_TAG|NULL}}
34-
; CHECK: DW_AT_abstract_origin ([[ADDR1]]
26+
; CHECK: DW_TAG_lexical_block
3527
; CHECK-NOT: DW_TAG
3628
; CHECK-NOT: NULL
3729
; CHECK: DW_TAG_variable
3830
; Ensure that file changes don't interfere with creating inlined subroutines.
3931
; (see the line directive inside 'f2' in thesource)
4032
; CHECK: DW_TAG_inlined_subroutine
41-
; CHECK-NOT: {{DW_TAG|NULL}}
42-
; CHECK: DW_TAG_lexical_block
43-
; CHECK-NOT: {{DW_TAG|NULL}}
44-
; CHECK: DW_AT_abstract_origin ([[ADDR2]]
45-
; CHECK-NOT: {{DW_TAG|NULL}}
4633
; CHECK: DW_TAG_variable
4734
; CHECK-NOT: DW_TAG
4835
; CHECK: DW_AT_abstract_origin

llvm/test/DebugInfo/X86/lexical-block-file-inline.ll

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,9 @@
2828
; CHECK: DW_TAG_subprogram
2929
; CHECK-NOT: {{DW_TAG|NULL}}
3030
; CHECK: DW_AT_abstract_origin {{.*}} {[[Offset_bar:0x[0-9abcdef]+]]}
31-
; CHECK-NOT: {{DW_TAG|NULL}}
31+
; CHECK-NOT: {{DW_TAG|NULL}}
3232
; CHECK: DW_TAG_lexical_block
33-
; CHECK-NOT: {{DW_TAG|NULL}}
34-
; CHECK: DW_AT_abstract_origin {{.*}}[[Offset_lb:0x[0-9a-f]+]]
35-
; CHECK-NOT: {{DW_TAG|NULL}}
33+
; CHECK-NOT: {{DW_TAG|NULL}}
3634
; CHECK: DW_TAG_variable
3735

3836
;; Abstract "bar" function
@@ -42,7 +40,7 @@
4240
; CHECK-NOT: {{DW_TAG|NULL}}
4341
; CHECK: DW_AT_inline
4442
; CHECK-NOT: {{DW_TAG|NULL}}
45-
; CHECK: [[Offset_lb]]: DW_TAG_lexical_block
43+
; CHECK: DW_TAG_lexical_block
4644
; CHECK-NOT: {{DW_TAG|NULL}}
4745
; CHECK: DW_TAG_variable
4846
; CHECK-NOT: {{DW_TAG|NULL}}
@@ -58,10 +56,8 @@
5856
; CHECK-NEXT: DW_AT_abstract_origin {{.*}} {[[Offset_bar]]}
5957
; CHECK-NOT: {{DW_TAG|NULL}}
6058
; CHECK: DW_TAG_lexical_block
61-
; CHECK-NOT: {{DW_TAG|NULL}}
62-
; CHECK: DW_AT_abstract_origin {{.*}}[[Offset_lb]]
63-
; CHECK-NOT: {{DW_TAG|NULL}}
64-
; CHECK: DW_TAG_variable
59+
; CHECK-NOT: {{DW_TAG|NULL}}
60+
; CHECK: DW_TAG_variable
6561

6662
; Function Attrs: alwaysinline nounwind
6763
define i32 @_Z3barv() #0 !dbg !4 {

llvm/test/DebugInfo/X86/missing-abstract-variable.ll

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
; CHECK-NOT: DW_TAG
3838
; CHECK: DW_AT_name ("b")
3939
; CHECK-NOT: {{DW_TAG|NULL}}
40-
; CHECK: [[LB_DECL:.*]]: DW_TAG_lexical_block
40+
; CHECK: DW_TAG_lexical_block
4141
; CHECK-NOT: {{DW_TAG|NULL}}
4242
; CHECK: DW_TAG_variable
4343
; CHECK-NOT: DW_TAG
@@ -82,9 +82,7 @@
8282

8383
; CHECK-NOT: {{DW_TAG|NULL}}
8484
; CHECK: DW_TAG_lexical_block
85-
; CHECK-NOT: {{DW_TAG|NULL}}
86-
; CHECK: DW_AT_abstract_origin {{.*}}[[LB_DECL]]
87-
; CHECK-NOT: {{DW_TAG|NULL}}
85+
; CHECK-NOT: {{DW_TAG|NULL}}
8886
; CHECK: DW_TAG_variable
8987
; CHECK-NOT: DW_TAG
9088
; CHECK: DW_AT_abstract_origin {{.*}} "s"

0 commit comments

Comments
 (0)