-
Notifications
You must be signed in to change notification settings - Fork 14.3k
Revert "[llvm][DebugInfo] Attach object-pointer to DISubprogram declarations (#122742)" #124853
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
…rations (llvm#122742)" This introduces a substantial (5-10%) regression in .debug_info size, so we're discussing alternatives in llvm#122742 and llvm#124790. This reverts commit 7c72941.
@llvm/pr-subscribers-debuginfo Author: David Blaikie (dwblaikie) ChangesThis introduces a substantial (5-10%) regression in .debug_info size, so This reverts commit 7c72941. Patch is 223.87 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/124853.diff 6 Files Affected:
diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
index d3450b8b0556fd..0a8a1ad38c959f 100644
--- a/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
+++ b/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
@@ -849,9 +849,7 @@ void DwarfUnit::constructTypeDIE(DIE &Buffer, const DIDerivedType *DTy) {
}
}
-DIE *DwarfUnit::constructSubprogramArguments(DIE &Buffer, DITypeRefArray Args) {
- // Args[0] is the return type.
- DIE *ObjectPointer = nullptr;
+void DwarfUnit::constructSubprogramArguments(DIE &Buffer, DITypeRefArray Args) {
for (unsigned i = 1, N = Args.size(); i < N; ++i) {
const DIType *Ty = Args[i];
if (!Ty) {
@@ -862,14 +860,8 @@ DIE *DwarfUnit::constructSubprogramArguments(DIE &Buffer, DITypeRefArray Args) {
addType(Arg, Ty);
if (Ty->isArtificial())
addFlag(Arg, dwarf::DW_AT_artificial);
- if (Ty->isObjectPointer()) {
- assert(!ObjectPointer && "Can't have more than one object pointer");
- ObjectPointer = &Arg;
- }
}
}
-
- return ObjectPointer;
}
void DwarfUnit::constructTypeDIE(DIE &Buffer, const DISubroutineType *CTy) {
@@ -1366,8 +1358,7 @@ void DwarfUnit::applySubprogramAttributes(const DISubprogram *SP, DIE &SPDie,
// Add arguments. Do not add arguments for subprogram definition. They will
// be handled while processing variables.
- if (auto *ObjectPointer = constructSubprogramArguments(SPDie, Args))
- addDIEEntry(SPDie, dwarf::DW_AT_object_pointer, *ObjectPointer);
+ constructSubprogramArguments(SPDie, Args);
}
addThrownTypes(SPDie, SP->getThrownTypes());
diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.h b/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.h
index 7a5295d826a483..163205378fb4b6 100644
--- a/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.h
+++ b/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.h
@@ -268,9 +268,7 @@ class DwarfUnit : public DIEUnit {
void constructContainingTypeDIEs();
/// Construct function argument DIEs.
- ///
- /// \returns DIE of the object pointer if one exists. Nullptr otherwise.
- DIE *constructSubprogramArguments(DIE &Buffer, DITypeRefArray Args);
+ void constructSubprogramArguments(DIE &Buffer, DITypeRefArray Args);
/// Create a DIE with the given Tag, add the DIE to its parent, and
/// call insertDIE if MD is not null.
diff --git a/llvm/test/DebugInfo/NVPTX/debug-info.ll b/llvm/test/DebugInfo/NVPTX/debug-info.ll
index 51fb692789e226..62b30a1f15aff1 100644
--- a/llvm/test/DebugInfo/NVPTX/debug-info.ll
+++ b/llvm/test/DebugInfo/NVPTX/debug-info.ll
@@ -98,2584 +98,2554 @@ if.end: ; preds = %if.then, %entry
; CHECK-DAG: .file {{[0-9]+}} "{{.*}}/usr/local/cuda/include{{/|\\\\}}vector_types.h"
; CHECK: .section .debug_loc
-; CHECK-NEXT: {
-; CHECK-NEXT:$L__debug_loc0:
-; CHECK-NEXT:.b64 $L__tmp8
-; CHECK-NEXT:.b64 $L__tmp10
-; CHECK-NEXT:.b8 5 // Loc expr size
-; CHECK-NEXT:.b8 0
-; CHECK-NEXT:.b8 144 // DW_OP_regx
-; CHECK-NEXT:.b8 177 // 2450993
-; CHECK-NEXT:.b8 204 //
-; CHECK-NEXT:.b8 149 //
-; CHECK-NEXT:.b8 1 //
-; CHECK-NEXT:.b64 0
-; CHECK-NEXT:.b64 0
-; CHECK-NEXT:$L__debug_loc1:
-; CHECK-NEXT:.b64 $L__tmp5
-; CHECK-NEXT:.b64 $L__func_end0
-; CHECK-NEXT:.b8 5 // Loc expr size
-; CHECK-NEXT:.b8 0
-; CHECK-NEXT:.b8 144 // DW_OP_regx
-; CHECK-NEXT:.b8 177 // 2454065
-; CHECK-NEXT:.b8 228 //
-; CHECK-NEXT:.b8 149 //
-; CHECK-NEXT:.b8 1 //
-; CHECK-NEXT:.b64 0
-; CHECK-NEXT:.b64 0
-; CHECK-NEXT: }
-; CHECK-NEXT: .section .debug_abbrev
-; CHECK-NEXT: {
-; CHECK-NEXT:.b8 1 // Abbreviation Code
-; CHECK-NEXT:.b8 17 // DW_TAG_compile_unit
-; CHECK-NEXT:.b8 1 // DW_CHILDREN_yes
-; CHECK-NEXT:.b8 37 // DW_AT_producer
-; CHECK-NEXT:.b8 8 // DW_FORM_string
-; CHECK-NEXT:.b8 19 // DW_AT_language
-; CHECK-NEXT:.b8 5 // DW_FORM_data2
-; CHECK-NEXT:.b8 3 // DW_AT_name
-; CHECK-NEXT:.b8 8 // DW_FORM_string
-; CHECK-NEXT:.b8 16 // DW_AT_stmt_list
-; CHECK-NEXT:.b8 6 // DW_FORM_data4
-; CHECK-NEXT:.b8 27 // DW_AT_comp_dir
-; CHECK-NEXT:.b8 8 // DW_FORM_string
-; CHECK-NEXT:.b8 0 // EOM(1)
-; CHECK-NEXT:.b8 0 // EOM(2)
-; CHECK-NEXT:.b8 2 // Abbreviation Code
-; CHECK-NEXT:.b8 19 // DW_TAG_structure_type
-; CHECK-NEXT:.b8 1 // DW_CHILDREN_yes
-; CHECK-NEXT:.b8 3 // DW_AT_name
-; CHECK-NEXT:.b8 8 // DW_FORM_string
-; CHECK-NEXT:.b8 11 // DW_AT_byte_size
-; CHECK-NEXT:.b8 11 // DW_FORM_data1
-; CHECK-NEXT:.b8 58 // DW_AT_decl_file
-; CHECK-NEXT:.b8 11 // DW_FORM_data1
-; CHECK-NEXT:.b8 59 // DW_AT_decl_line
-; CHECK-NEXT:.b8 11 // DW_FORM_data1
-; CHECK-NEXT:.b8 0 // EOM(1)
-; CHECK-NEXT:.b8 0 // EOM(2)
-; CHECK-NEXT:.b8 3 // Abbreviation Code
-; CHECK-NEXT:.b8 46 // DW_TAG_subprogram
-; CHECK-NEXT:.b8 0 // DW_CHILDREN_no
-; CHECK-NEXT:.b8 135 // DW_AT_MIPS_linkage_name
-; CHECK-NEXT:.b8 64
-; CHECK-NEXT:.b8 8 // DW_FORM_string
-; CHECK-NEXT:.b8 3 // DW_AT_name
-; CHECK-NEXT:.b8 8 // DW_FORM_string
-; CHECK-NEXT:.b8 58 // DW_AT_decl_file
-; CHECK-NEXT:.b8 11 // DW_FORM_data1
-; CHECK-NEXT:.b8 59 // DW_AT_decl_line
-; CHECK-NEXT:.b8 11 // DW_FORM_data1
-; CHECK-NEXT:.b8 73 // DW_AT_type
-; CHECK-NEXT:.b8 19 // DW_FORM_ref4
-; CHECK-NEXT:.b8 60 // DW_AT_declaration
-; CHECK-NEXT:.b8 12 // DW_FORM_flag
-; CHECK-NEXT:.b8 63 // DW_AT_external
-; CHECK-NEXT:.b8 12 // DW_FORM_flag
-; CHECK-NEXT:.b8 0 // EOM(1)
-; CHECK-NEXT:.b8 0 // EOM(2)
-; CHECK-NEXT:.b8 4 // Abbreviation Code
-; CHECK-NEXT:.b8 46 // DW_TAG_subprogram
-; CHECK-NEXT:.b8 1 // DW_CHILDREN_yes
-; CHECK-NEXT:.b8 135 // DW_AT_MIPS_linkage_name
-; CHECK-NEXT:.b8 64
-; CHECK-NEXT:.b8 8 // DW_FORM_string
-; CHECK-NEXT:.b8 3 // DW_AT_name
-; CHECK-NEXT:.b8 8 // DW_FORM_string
-; CHECK-NEXT:.b8 58 // DW_AT_decl_file
-; CHECK-NEXT:.b8 11 // DW_FORM_data1
-; CHECK-NEXT:.b8 59 // DW_AT_decl_line
-; CHECK-NEXT:.b8 11 // DW_FORM_data1
-; CHECK-NEXT:.b8 73 // DW_AT_type
-; CHECK-NEXT:.b8 19 // DW_FORM_ref4
-; CHECK-NEXT:.b8 60 // DW_AT_declaration
-; CHECK-NEXT:.b8 12 // DW_FORM_flag
-; CHECK-NEXT:.b8 100 // DW_AT_object_pointer
-; CHECK-NEXT:.b8 19 // DW_FORM_ref4
-; CHECK-NEXT:.b8 63 // DW_AT_external
-; CHECK-NEXT:.b8 12 // DW_FORM_flag
-; CHECK-NEXT:.b8 0 // EOM(1)
-; CHECK-NEXT:.b8 0 // EOM(2)
-; CHECK-NEXT:.b8 5 // Abbreviation Code
-; CHECK-NEXT:.b8 5 // DW_TAG_formal_parameter
-; CHECK-NEXT:.b8 0 // DW_CHILDREN_no
-; CHECK-NEXT:.b8 73 // DW_AT_type
-; CHECK-NEXT:.b8 19 // DW_FORM_ref4
-; CHECK-NEXT:.b8 52 // DW_AT_artificial
-; CHECK-NEXT:.b8 12 // DW_FORM_flag
-; CHECK-NEXT:.b8 0 // EOM(1)
-; CHECK-NEXT:.b8 0 // EOM(2)
-; CHECK-NEXT:.b8 6 // Abbreviation Code
-; CHECK-NEXT:.b8 46 // DW_TAG_subprogram
-; CHECK-NEXT:.b8 1 // DW_CHILDREN_yes
-; CHECK-NEXT:.b8 3 // DW_AT_name
-; CHECK-NEXT:.b8 8 // DW_FORM_string
-; CHECK-NEXT:.b8 58 // DW_AT_decl_file
-; CHECK-NEXT:.b8 11 // DW_FORM_data1
-; CHECK-NEXT:.b8 59 // DW_AT_decl_line
-; CHECK-NEXT:.b8 11 // DW_FORM_data1
-; CHECK-NEXT:.b8 60 // DW_AT_declaration
-; CHECK-NEXT:.b8 12 // DW_FORM_flag
-; CHECK-NEXT:.b8 100 // DW_AT_object_pointer
-; CHECK-NEXT:.b8 19 // DW_FORM_ref4
-; CHECK-NEXT:.b8 63 // DW_AT_external
-; CHECK-NEXT:.b8 12 // DW_FORM_flag
-; CHECK-NEXT:.b8 50 // DW_AT_accessibility
-; CHECK-NEXT:.b8 11 // DW_FORM_data1
-; CHECK-NEXT:.b8 0 // EOM(1)
-; CHECK-NEXT:.b8 0 // EOM(2)
-; CHECK-NEXT:.b8 7 // Abbreviation Code
-; CHECK-NEXT:.b8 5 // DW_TAG_formal_parameter
-; CHECK-NEXT:.b8 0 // DW_CHILDREN_no
-; CHECK-NEXT:.b8 73 // DW_AT_type
-; CHECK-NEXT:.b8 19 // DW_FORM_ref4
-; CHECK-NEXT:.b8 0 // EOM(1)
-; CHECK-NEXT:.b8 0 // EOM(2)
-; CHECK-NEXT:.b8 8 // Abbreviation Code
-; CHECK-NEXT:.b8 46 // DW_TAG_subprogram
-; CHECK-NEXT:.b8 1 // DW_CHILDREN_yes
-; CHECK-NEXT:.b8 135 // DW_AT_MIPS_linkage_name
-; CHECK-NEXT:.b8 64
-; CHECK-NEXT:.b8 8 // DW_FORM_string
-; CHECK-NEXT:.b8 3 // DW_AT_name
-; CHECK-NEXT:.b8 8 // DW_FORM_string
-; CHECK-NEXT:.b8 58 // DW_AT_decl_file
-; CHECK-NEXT:.b8 11 // DW_FORM_data1
-; CHECK-NEXT:.b8 59 // DW_AT_decl_line
-; CHECK-NEXT:.b8 11 // DW_FORM_data1
-; CHECK-NEXT:.b8 60 // DW_AT_declaration
-; CHECK-NEXT:.b8 12 // DW_FORM_flag
-; CHECK-NEXT:.b8 100 // DW_AT_object_pointer
-; CHECK-NEXT:.b8 19 // DW_FORM_ref4
-; CHECK-NEXT:.b8 63 // DW_AT_external
-; CHECK-NEXT:.b8 12 // DW_FORM_flag
-; CHECK-NEXT:.b8 50 // DW_AT_accessibility
-; CHECK-NEXT:.b8 11 // DW_FORM_data1
-; CHECK-NEXT:.b8 0 // EOM(1)
-; CHECK-NEXT:.b8 0 // EOM(2)
-; CHECK-NEXT:.b8 9 // Abbreviation Code
-; CHECK-NEXT:.b8 46 // DW_TAG_subprogram
-; CHECK-NEXT:.b8 1 // DW_CHILDREN_yes
-; CHECK-NEXT:.b8 135 // DW_AT_MIPS_linkage_name
-; CHECK-NEXT:.b8 64
-; CHECK-NEXT:.b8 8 // DW_FORM_string
-; CHECK-NEXT:.b8 3 // DW_AT_name
-; CHECK-NEXT:.b8 8 // DW_FORM_string
-; CHECK-NEXT:.b8 58 // DW_AT_decl_file
-; CHECK-NEXT:.b8 11 // DW_FORM_data1
-; CHECK-NEXT:.b8 59 // DW_AT_decl_line
-; CHECK-NEXT:.b8 11 // DW_FORM_data1
-; CHECK-NEXT:.b8 73 // DW_AT_type
-; CHECK-NEXT:.b8 19 // DW_FORM_ref4
-; CHECK-NEXT:.b8 60 // DW_AT_declaration
-; CHECK-NEXT:.b8 12 // DW_FORM_flag
-; CHECK-NEXT:.b8 100 // DW_AT_object_pointer
-; CHECK-NEXT:.b8 19 // DW_FORM_ref4
-; CHECK-NEXT:.b8 63 // DW_AT_external
-; CHECK-NEXT:.b8 12 // DW_FORM_flag
-; CHECK-NEXT:.b8 50 // DW_AT_accessibility
-; CHECK-NEXT:.b8 11 // DW_FORM_data1
-; CHECK-NEXT:.b8 0 // EOM(1)
-; CHECK-NEXT:.b8 0 // EOM(2)
-; CHECK-NEXT:.b8 10 // Abbreviation Code
-; CHECK-NEXT:.b8 36 // DW_TAG_base_type
-; CHECK-NEXT:.b8 0 // DW_CHILDREN_no
-; CHECK-NEXT:.b8 3 // DW_AT_name
-; CHECK-NEXT:.b8 8 // DW_FORM_string
-; CHECK-NEXT:.b8 62 // DW_AT_encoding
-; CHECK-NEXT:.b8 11 // DW_FORM_data1
-; CHECK-NEXT:.b8 11 // DW_AT_byte_size
-; CHECK-NEXT:.b8 11 // DW_FORM_data1
-; CHECK-NEXT:.b8 0 // EOM(1)
-; CHECK-NEXT:.b8 0 // EOM(2)
-; CHECK-NEXT:.b8 11 // Abbreviation Code
-; CHECK-NEXT:.b8 13 // DW_TAG_member
-; CHECK-NEXT:.b8 0 // DW_CHILDREN_no
-; CHECK-NEXT:.b8 3 // DW_AT_name
-; CHECK-NEXT:.b8 8 // DW_FORM_string
-; CHECK-NEXT:.b8 73 // DW_AT_type
-; CHECK-NEXT:.b8 19 // DW_FORM_ref4
-; CHECK-NEXT:.b8 58 // DW_AT_decl_file
-; CHECK-NEXT:.b8 11 // DW_FORM_data1
-; CHECK-NEXT:.b8 59 // DW_AT_decl_line
-; CHECK-NEXT:.b8 11 // DW_FORM_data1
-; CHECK-NEXT:.b8 56 // DW_AT_data_member_location
-; CHECK-NEXT:.b8 10 // DW_FORM_block1
-; CHECK-NEXT:.b8 0 // EOM(1)
-; CHECK-NEXT:.b8 0 // EOM(2)
-; CHECK-NEXT:.b8 12 // Abbreviation Code
-; CHECK-NEXT:.b8 15 // DW_TAG_pointer_type
-; CHECK-NEXT:.b8 0 // DW_CHILDREN_no
-; CHECK-NEXT:.b8 73 // DW_AT_type
-; CHECK-NEXT:.b8 19 // DW_FORM_ref4
-; CHECK-NEXT:.b8 0 // EOM(1)
-; CHECK-NEXT:.b8 0 // EOM(2)
-; CHECK-NEXT:.b8 13 // Abbreviation Code
-; CHECK-NEXT:.b8 38 // DW_TAG_const_type
-; CHECK-NEXT:.b8 0 // DW_CHILDREN_no
-; CHECK-NEXT:.b8 73 // DW_AT_type
-; CHECK-NEXT:.b8 19 // DW_FORM_ref4
-; CHECK-NEXT:.b8 0 // EOM(1)
-; CHECK-NEXT:.b8 0 // EOM(2)
-; CHECK-NEXT:.b8 14 // Abbreviation Code
-; CHECK-NEXT:.b8 16 // DW_TAG_reference_type
-; CHECK-NEXT:.b8 0 // DW_CHILDREN_no
-; CHECK-NEXT:.b8 73 // DW_AT_type
-; CHECK-NEXT:.b8 19 // DW_FORM_ref4
-; CHECK-NEXT:.b8 0 // EOM(1)
-; CHECK-NEXT:.b8 0 // EOM(2)
-; CHECK-NEXT:.b8 15 // Abbreviation Code
-; CHECK-NEXT:.b8 46 // DW_TAG_subprogram
-; CHECK-NEXT:.b8 0 // DW_CHILDREN_no
-; CHECK-NEXT:.b8 71 // DW_AT_specification
-; CHECK-NEXT:.b8 19 // DW_FORM_ref4
-; CHECK-NEXT:.b8 32 // DW_AT_inline
-; CHECK-NEXT:.b8 11 // DW_FORM_data1
-; CHECK-NEXT:.b8 0 // EOM(1)
-; CHECK-NEXT:.b8 0 // EOM(2)
-; CHECK-NEXT:.b8 16 // Abbreviation Code
-; CHECK-NEXT:.b8 19 // DW_TAG_structure_type
-; CHECK-NEXT:.b8 1 // DW_CHILDREN_yes
-; CHECK-NEXT:.b8 3 // DW_AT_name
-; CHECK-NEXT:.b8 8 // DW_FORM_string
-; CHECK-NEXT:.b8 11 // DW_AT_byte_size
-; CHECK-NEXT:.b8 11 // DW_FORM_data1
-; CHECK-NEXT:.b8 58 // DW_AT_decl_file
-; CHECK-NEXT:.b8 11 // DW_FORM_data1
-; CHECK-NEXT:.b8 59 // DW_AT_decl_line
-; CHECK-NEXT:.b8 5 // DW_FORM_data2
-; CHECK-NEXT:.b8 0 // EOM(1)
-; CHECK-NEXT:.b8 0 // EOM(2)
-; CHECK-NEXT:.b8 17 // Abbreviation Code
-; CHECK-NEXT:.b8 13 // DW_TAG_member
-; CHECK-NEXT:.b8 0 // DW_CHILDREN_no
-; CHECK-NEXT:.b8 3 // DW_AT_name
-; CHECK-NEXT:.b8 8 // DW_FORM_string
-; CHECK-NEXT:.b8 73 // DW_AT_type
-; CHECK-NEXT:.b8 19 // DW_FORM_ref4
-; CHECK-NEXT:.b8 58 // DW_AT_decl_file
-; CHECK-NEXT:.b8 11 // DW_FORM_data1
-; CHECK-NEXT:.b8 59 // DW_AT_decl_line
-; CHECK-NEXT:.b8 5 // DW_FORM_data2
-; CHECK-NEXT:.b8 56 // DW_AT_data_member_location
-; CHECK-NEXT:.b8 10 // DW_FORM_block1
-; CHECK-NEXT:.b8 0 // EOM(1)
-; CHECK-NEXT:.b8 0 /...
[truncated]
|
@llvm/pr-subscribers-backend-nvptx Author: David Blaikie (dwblaikie) ChangesThis introduces a substantial (5-10%) regression in .debug_info size, so This reverts commit 7c72941. Patch is 223.87 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/124853.diff 6 Files Affected:
diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
index d3450b8b0556fd..0a8a1ad38c959f 100644
--- a/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
+++ b/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
@@ -849,9 +849,7 @@ void DwarfUnit::constructTypeDIE(DIE &Buffer, const DIDerivedType *DTy) {
}
}
-DIE *DwarfUnit::constructSubprogramArguments(DIE &Buffer, DITypeRefArray Args) {
- // Args[0] is the return type.
- DIE *ObjectPointer = nullptr;
+void DwarfUnit::constructSubprogramArguments(DIE &Buffer, DITypeRefArray Args) {
for (unsigned i = 1, N = Args.size(); i < N; ++i) {
const DIType *Ty = Args[i];
if (!Ty) {
@@ -862,14 +860,8 @@ DIE *DwarfUnit::constructSubprogramArguments(DIE &Buffer, DITypeRefArray Args) {
addType(Arg, Ty);
if (Ty->isArtificial())
addFlag(Arg, dwarf::DW_AT_artificial);
- if (Ty->isObjectPointer()) {
- assert(!ObjectPointer && "Can't have more than one object pointer");
- ObjectPointer = &Arg;
- }
}
}
-
- return ObjectPointer;
}
void DwarfUnit::constructTypeDIE(DIE &Buffer, const DISubroutineType *CTy) {
@@ -1366,8 +1358,7 @@ void DwarfUnit::applySubprogramAttributes(const DISubprogram *SP, DIE &SPDie,
// Add arguments. Do not add arguments for subprogram definition. They will
// be handled while processing variables.
- if (auto *ObjectPointer = constructSubprogramArguments(SPDie, Args))
- addDIEEntry(SPDie, dwarf::DW_AT_object_pointer, *ObjectPointer);
+ constructSubprogramArguments(SPDie, Args);
}
addThrownTypes(SPDie, SP->getThrownTypes());
diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.h b/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.h
index 7a5295d826a483..163205378fb4b6 100644
--- a/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.h
+++ b/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.h
@@ -268,9 +268,7 @@ class DwarfUnit : public DIEUnit {
void constructContainingTypeDIEs();
/// Construct function argument DIEs.
- ///
- /// \returns DIE of the object pointer if one exists. Nullptr otherwise.
- DIE *constructSubprogramArguments(DIE &Buffer, DITypeRefArray Args);
+ void constructSubprogramArguments(DIE &Buffer, DITypeRefArray Args);
/// Create a DIE with the given Tag, add the DIE to its parent, and
/// call insertDIE if MD is not null.
diff --git a/llvm/test/DebugInfo/NVPTX/debug-info.ll b/llvm/test/DebugInfo/NVPTX/debug-info.ll
index 51fb692789e226..62b30a1f15aff1 100644
--- a/llvm/test/DebugInfo/NVPTX/debug-info.ll
+++ b/llvm/test/DebugInfo/NVPTX/debug-info.ll
@@ -98,2584 +98,2554 @@ if.end: ; preds = %if.then, %entry
; CHECK-DAG: .file {{[0-9]+}} "{{.*}}/usr/local/cuda/include{{/|\\\\}}vector_types.h"
; CHECK: .section .debug_loc
-; CHECK-NEXT: {
-; CHECK-NEXT:$L__debug_loc0:
-; CHECK-NEXT:.b64 $L__tmp8
-; CHECK-NEXT:.b64 $L__tmp10
-; CHECK-NEXT:.b8 5 // Loc expr size
-; CHECK-NEXT:.b8 0
-; CHECK-NEXT:.b8 144 // DW_OP_regx
-; CHECK-NEXT:.b8 177 // 2450993
-; CHECK-NEXT:.b8 204 //
-; CHECK-NEXT:.b8 149 //
-; CHECK-NEXT:.b8 1 //
-; CHECK-NEXT:.b64 0
-; CHECK-NEXT:.b64 0
-; CHECK-NEXT:$L__debug_loc1:
-; CHECK-NEXT:.b64 $L__tmp5
-; CHECK-NEXT:.b64 $L__func_end0
-; CHECK-NEXT:.b8 5 // Loc expr size
-; CHECK-NEXT:.b8 0
-; CHECK-NEXT:.b8 144 // DW_OP_regx
-; CHECK-NEXT:.b8 177 // 2454065
-; CHECK-NEXT:.b8 228 //
-; CHECK-NEXT:.b8 149 //
-; CHECK-NEXT:.b8 1 //
-; CHECK-NEXT:.b64 0
-; CHECK-NEXT:.b64 0
-; CHECK-NEXT: }
-; CHECK-NEXT: .section .debug_abbrev
-; CHECK-NEXT: {
-; CHECK-NEXT:.b8 1 // Abbreviation Code
-; CHECK-NEXT:.b8 17 // DW_TAG_compile_unit
-; CHECK-NEXT:.b8 1 // DW_CHILDREN_yes
-; CHECK-NEXT:.b8 37 // DW_AT_producer
-; CHECK-NEXT:.b8 8 // DW_FORM_string
-; CHECK-NEXT:.b8 19 // DW_AT_language
-; CHECK-NEXT:.b8 5 // DW_FORM_data2
-; CHECK-NEXT:.b8 3 // DW_AT_name
-; CHECK-NEXT:.b8 8 // DW_FORM_string
-; CHECK-NEXT:.b8 16 // DW_AT_stmt_list
-; CHECK-NEXT:.b8 6 // DW_FORM_data4
-; CHECK-NEXT:.b8 27 // DW_AT_comp_dir
-; CHECK-NEXT:.b8 8 // DW_FORM_string
-; CHECK-NEXT:.b8 0 // EOM(1)
-; CHECK-NEXT:.b8 0 // EOM(2)
-; CHECK-NEXT:.b8 2 // Abbreviation Code
-; CHECK-NEXT:.b8 19 // DW_TAG_structure_type
-; CHECK-NEXT:.b8 1 // DW_CHILDREN_yes
-; CHECK-NEXT:.b8 3 // DW_AT_name
-; CHECK-NEXT:.b8 8 // DW_FORM_string
-; CHECK-NEXT:.b8 11 // DW_AT_byte_size
-; CHECK-NEXT:.b8 11 // DW_FORM_data1
-; CHECK-NEXT:.b8 58 // DW_AT_decl_file
-; CHECK-NEXT:.b8 11 // DW_FORM_data1
-; CHECK-NEXT:.b8 59 // DW_AT_decl_line
-; CHECK-NEXT:.b8 11 // DW_FORM_data1
-; CHECK-NEXT:.b8 0 // EOM(1)
-; CHECK-NEXT:.b8 0 // EOM(2)
-; CHECK-NEXT:.b8 3 // Abbreviation Code
-; CHECK-NEXT:.b8 46 // DW_TAG_subprogram
-; CHECK-NEXT:.b8 0 // DW_CHILDREN_no
-; CHECK-NEXT:.b8 135 // DW_AT_MIPS_linkage_name
-; CHECK-NEXT:.b8 64
-; CHECK-NEXT:.b8 8 // DW_FORM_string
-; CHECK-NEXT:.b8 3 // DW_AT_name
-; CHECK-NEXT:.b8 8 // DW_FORM_string
-; CHECK-NEXT:.b8 58 // DW_AT_decl_file
-; CHECK-NEXT:.b8 11 // DW_FORM_data1
-; CHECK-NEXT:.b8 59 // DW_AT_decl_line
-; CHECK-NEXT:.b8 11 // DW_FORM_data1
-; CHECK-NEXT:.b8 73 // DW_AT_type
-; CHECK-NEXT:.b8 19 // DW_FORM_ref4
-; CHECK-NEXT:.b8 60 // DW_AT_declaration
-; CHECK-NEXT:.b8 12 // DW_FORM_flag
-; CHECK-NEXT:.b8 63 // DW_AT_external
-; CHECK-NEXT:.b8 12 // DW_FORM_flag
-; CHECK-NEXT:.b8 0 // EOM(1)
-; CHECK-NEXT:.b8 0 // EOM(2)
-; CHECK-NEXT:.b8 4 // Abbreviation Code
-; CHECK-NEXT:.b8 46 // DW_TAG_subprogram
-; CHECK-NEXT:.b8 1 // DW_CHILDREN_yes
-; CHECK-NEXT:.b8 135 // DW_AT_MIPS_linkage_name
-; CHECK-NEXT:.b8 64
-; CHECK-NEXT:.b8 8 // DW_FORM_string
-; CHECK-NEXT:.b8 3 // DW_AT_name
-; CHECK-NEXT:.b8 8 // DW_FORM_string
-; CHECK-NEXT:.b8 58 // DW_AT_decl_file
-; CHECK-NEXT:.b8 11 // DW_FORM_data1
-; CHECK-NEXT:.b8 59 // DW_AT_decl_line
-; CHECK-NEXT:.b8 11 // DW_FORM_data1
-; CHECK-NEXT:.b8 73 // DW_AT_type
-; CHECK-NEXT:.b8 19 // DW_FORM_ref4
-; CHECK-NEXT:.b8 60 // DW_AT_declaration
-; CHECK-NEXT:.b8 12 // DW_FORM_flag
-; CHECK-NEXT:.b8 100 // DW_AT_object_pointer
-; CHECK-NEXT:.b8 19 // DW_FORM_ref4
-; CHECK-NEXT:.b8 63 // DW_AT_external
-; CHECK-NEXT:.b8 12 // DW_FORM_flag
-; CHECK-NEXT:.b8 0 // EOM(1)
-; CHECK-NEXT:.b8 0 // EOM(2)
-; CHECK-NEXT:.b8 5 // Abbreviation Code
-; CHECK-NEXT:.b8 5 // DW_TAG_formal_parameter
-; CHECK-NEXT:.b8 0 // DW_CHILDREN_no
-; CHECK-NEXT:.b8 73 // DW_AT_type
-; CHECK-NEXT:.b8 19 // DW_FORM_ref4
-; CHECK-NEXT:.b8 52 // DW_AT_artificial
-; CHECK-NEXT:.b8 12 // DW_FORM_flag
-; CHECK-NEXT:.b8 0 // EOM(1)
-; CHECK-NEXT:.b8 0 // EOM(2)
-; CHECK-NEXT:.b8 6 // Abbreviation Code
-; CHECK-NEXT:.b8 46 // DW_TAG_subprogram
-; CHECK-NEXT:.b8 1 // DW_CHILDREN_yes
-; CHECK-NEXT:.b8 3 // DW_AT_name
-; CHECK-NEXT:.b8 8 // DW_FORM_string
-; CHECK-NEXT:.b8 58 // DW_AT_decl_file
-; CHECK-NEXT:.b8 11 // DW_FORM_data1
-; CHECK-NEXT:.b8 59 // DW_AT_decl_line
-; CHECK-NEXT:.b8 11 // DW_FORM_data1
-; CHECK-NEXT:.b8 60 // DW_AT_declaration
-; CHECK-NEXT:.b8 12 // DW_FORM_flag
-; CHECK-NEXT:.b8 100 // DW_AT_object_pointer
-; CHECK-NEXT:.b8 19 // DW_FORM_ref4
-; CHECK-NEXT:.b8 63 // DW_AT_external
-; CHECK-NEXT:.b8 12 // DW_FORM_flag
-; CHECK-NEXT:.b8 50 // DW_AT_accessibility
-; CHECK-NEXT:.b8 11 // DW_FORM_data1
-; CHECK-NEXT:.b8 0 // EOM(1)
-; CHECK-NEXT:.b8 0 // EOM(2)
-; CHECK-NEXT:.b8 7 // Abbreviation Code
-; CHECK-NEXT:.b8 5 // DW_TAG_formal_parameter
-; CHECK-NEXT:.b8 0 // DW_CHILDREN_no
-; CHECK-NEXT:.b8 73 // DW_AT_type
-; CHECK-NEXT:.b8 19 // DW_FORM_ref4
-; CHECK-NEXT:.b8 0 // EOM(1)
-; CHECK-NEXT:.b8 0 // EOM(2)
-; CHECK-NEXT:.b8 8 // Abbreviation Code
-; CHECK-NEXT:.b8 46 // DW_TAG_subprogram
-; CHECK-NEXT:.b8 1 // DW_CHILDREN_yes
-; CHECK-NEXT:.b8 135 // DW_AT_MIPS_linkage_name
-; CHECK-NEXT:.b8 64
-; CHECK-NEXT:.b8 8 // DW_FORM_string
-; CHECK-NEXT:.b8 3 // DW_AT_name
-; CHECK-NEXT:.b8 8 // DW_FORM_string
-; CHECK-NEXT:.b8 58 // DW_AT_decl_file
-; CHECK-NEXT:.b8 11 // DW_FORM_data1
-; CHECK-NEXT:.b8 59 // DW_AT_decl_line
-; CHECK-NEXT:.b8 11 // DW_FORM_data1
-; CHECK-NEXT:.b8 60 // DW_AT_declaration
-; CHECK-NEXT:.b8 12 // DW_FORM_flag
-; CHECK-NEXT:.b8 100 // DW_AT_object_pointer
-; CHECK-NEXT:.b8 19 // DW_FORM_ref4
-; CHECK-NEXT:.b8 63 // DW_AT_external
-; CHECK-NEXT:.b8 12 // DW_FORM_flag
-; CHECK-NEXT:.b8 50 // DW_AT_accessibility
-; CHECK-NEXT:.b8 11 // DW_FORM_data1
-; CHECK-NEXT:.b8 0 // EOM(1)
-; CHECK-NEXT:.b8 0 // EOM(2)
-; CHECK-NEXT:.b8 9 // Abbreviation Code
-; CHECK-NEXT:.b8 46 // DW_TAG_subprogram
-; CHECK-NEXT:.b8 1 // DW_CHILDREN_yes
-; CHECK-NEXT:.b8 135 // DW_AT_MIPS_linkage_name
-; CHECK-NEXT:.b8 64
-; CHECK-NEXT:.b8 8 // DW_FORM_string
-; CHECK-NEXT:.b8 3 // DW_AT_name
-; CHECK-NEXT:.b8 8 // DW_FORM_string
-; CHECK-NEXT:.b8 58 // DW_AT_decl_file
-; CHECK-NEXT:.b8 11 // DW_FORM_data1
-; CHECK-NEXT:.b8 59 // DW_AT_decl_line
-; CHECK-NEXT:.b8 11 // DW_FORM_data1
-; CHECK-NEXT:.b8 73 // DW_AT_type
-; CHECK-NEXT:.b8 19 // DW_FORM_ref4
-; CHECK-NEXT:.b8 60 // DW_AT_declaration
-; CHECK-NEXT:.b8 12 // DW_FORM_flag
-; CHECK-NEXT:.b8 100 // DW_AT_object_pointer
-; CHECK-NEXT:.b8 19 // DW_FORM_ref4
-; CHECK-NEXT:.b8 63 // DW_AT_external
-; CHECK-NEXT:.b8 12 // DW_FORM_flag
-; CHECK-NEXT:.b8 50 // DW_AT_accessibility
-; CHECK-NEXT:.b8 11 // DW_FORM_data1
-; CHECK-NEXT:.b8 0 // EOM(1)
-; CHECK-NEXT:.b8 0 // EOM(2)
-; CHECK-NEXT:.b8 10 // Abbreviation Code
-; CHECK-NEXT:.b8 36 // DW_TAG_base_type
-; CHECK-NEXT:.b8 0 // DW_CHILDREN_no
-; CHECK-NEXT:.b8 3 // DW_AT_name
-; CHECK-NEXT:.b8 8 // DW_FORM_string
-; CHECK-NEXT:.b8 62 // DW_AT_encoding
-; CHECK-NEXT:.b8 11 // DW_FORM_data1
-; CHECK-NEXT:.b8 11 // DW_AT_byte_size
-; CHECK-NEXT:.b8 11 // DW_FORM_data1
-; CHECK-NEXT:.b8 0 // EOM(1)
-; CHECK-NEXT:.b8 0 // EOM(2)
-; CHECK-NEXT:.b8 11 // Abbreviation Code
-; CHECK-NEXT:.b8 13 // DW_TAG_member
-; CHECK-NEXT:.b8 0 // DW_CHILDREN_no
-; CHECK-NEXT:.b8 3 // DW_AT_name
-; CHECK-NEXT:.b8 8 // DW_FORM_string
-; CHECK-NEXT:.b8 73 // DW_AT_type
-; CHECK-NEXT:.b8 19 // DW_FORM_ref4
-; CHECK-NEXT:.b8 58 // DW_AT_decl_file
-; CHECK-NEXT:.b8 11 // DW_FORM_data1
-; CHECK-NEXT:.b8 59 // DW_AT_decl_line
-; CHECK-NEXT:.b8 11 // DW_FORM_data1
-; CHECK-NEXT:.b8 56 // DW_AT_data_member_location
-; CHECK-NEXT:.b8 10 // DW_FORM_block1
-; CHECK-NEXT:.b8 0 // EOM(1)
-; CHECK-NEXT:.b8 0 // EOM(2)
-; CHECK-NEXT:.b8 12 // Abbreviation Code
-; CHECK-NEXT:.b8 15 // DW_TAG_pointer_type
-; CHECK-NEXT:.b8 0 // DW_CHILDREN_no
-; CHECK-NEXT:.b8 73 // DW_AT_type
-; CHECK-NEXT:.b8 19 // DW_FORM_ref4
-; CHECK-NEXT:.b8 0 // EOM(1)
-; CHECK-NEXT:.b8 0 // EOM(2)
-; CHECK-NEXT:.b8 13 // Abbreviation Code
-; CHECK-NEXT:.b8 38 // DW_TAG_const_type
-; CHECK-NEXT:.b8 0 // DW_CHILDREN_no
-; CHECK-NEXT:.b8 73 // DW_AT_type
-; CHECK-NEXT:.b8 19 // DW_FORM_ref4
-; CHECK-NEXT:.b8 0 // EOM(1)
-; CHECK-NEXT:.b8 0 // EOM(2)
-; CHECK-NEXT:.b8 14 // Abbreviation Code
-; CHECK-NEXT:.b8 16 // DW_TAG_reference_type
-; CHECK-NEXT:.b8 0 // DW_CHILDREN_no
-; CHECK-NEXT:.b8 73 // DW_AT_type
-; CHECK-NEXT:.b8 19 // DW_FORM_ref4
-; CHECK-NEXT:.b8 0 // EOM(1)
-; CHECK-NEXT:.b8 0 // EOM(2)
-; CHECK-NEXT:.b8 15 // Abbreviation Code
-; CHECK-NEXT:.b8 46 // DW_TAG_subprogram
-; CHECK-NEXT:.b8 0 // DW_CHILDREN_no
-; CHECK-NEXT:.b8 71 // DW_AT_specification
-; CHECK-NEXT:.b8 19 // DW_FORM_ref4
-; CHECK-NEXT:.b8 32 // DW_AT_inline
-; CHECK-NEXT:.b8 11 // DW_FORM_data1
-; CHECK-NEXT:.b8 0 // EOM(1)
-; CHECK-NEXT:.b8 0 // EOM(2)
-; CHECK-NEXT:.b8 16 // Abbreviation Code
-; CHECK-NEXT:.b8 19 // DW_TAG_structure_type
-; CHECK-NEXT:.b8 1 // DW_CHILDREN_yes
-; CHECK-NEXT:.b8 3 // DW_AT_name
-; CHECK-NEXT:.b8 8 // DW_FORM_string
-; CHECK-NEXT:.b8 11 // DW_AT_byte_size
-; CHECK-NEXT:.b8 11 // DW_FORM_data1
-; CHECK-NEXT:.b8 58 // DW_AT_decl_file
-; CHECK-NEXT:.b8 11 // DW_FORM_data1
-; CHECK-NEXT:.b8 59 // DW_AT_decl_line
-; CHECK-NEXT:.b8 5 // DW_FORM_data2
-; CHECK-NEXT:.b8 0 // EOM(1)
-; CHECK-NEXT:.b8 0 // EOM(2)
-; CHECK-NEXT:.b8 17 // Abbreviation Code
-; CHECK-NEXT:.b8 13 // DW_TAG_member
-; CHECK-NEXT:.b8 0 // DW_CHILDREN_no
-; CHECK-NEXT:.b8 3 // DW_AT_name
-; CHECK-NEXT:.b8 8 // DW_FORM_string
-; CHECK-NEXT:.b8 73 // DW_AT_type
-; CHECK-NEXT:.b8 19 // DW_FORM_ref4
-; CHECK-NEXT:.b8 58 // DW_AT_decl_file
-; CHECK-NEXT:.b8 11 // DW_FORM_data1
-; CHECK-NEXT:.b8 59 // DW_AT_decl_line
-; CHECK-NEXT:.b8 5 // DW_FORM_data2
-; CHECK-NEXT:.b8 56 // DW_AT_data_member_location
-; CHECK-NEXT:.b8 10 // DW_FORM_block1
-; CHECK-NEXT:.b8 0 // EOM(1)
-; CHECK-NEXT:.b8 0 /...
[truncated]
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thank you for preparing the revert! lgtm
This introduces a substantial (5-10%) regression in .debug_info size, so
we're discussing alternatives in #122742 and #124790.
This reverts commit 7c72941.