[PATCH] D73003: [llvm-dwarfdump][Statistics] Distinguish parameters with same name or w/o a name
Kristina Bessonova via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Jan 28 10:58:46 PST 2020
This revision was automatically updated to reflect the committed changes.
Closed by commit rG5499e2f455ca: [llvm-dwarfdump][Statistics] Distinguish parameters with same name or w/o a name (authored by krisb).
Changed prior to commit:
https://reviews.llvm.org/D73003?vs=238995&id=240944#toc
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D73003/new/
https://reviews.llvm.org/D73003
Files:
llvm/test/tools/llvm-dwarfdump/X86/statistics.ll
llvm/tools/llvm-dwarfdump/Statistics.cpp
Index: llvm/tools/llvm-dwarfdump/Statistics.cpp
===================================================================
--- llvm/tools/llvm-dwarfdump/Statistics.cpp
+++ llvm/tools/llvm-dwarfdump/Statistics.cpp
@@ -436,11 +436,14 @@
// Traverse children.
unsigned LexicalBlockIndex = 0;
+ unsigned FormalParameterIndex = 0;
DWARFDie Child = Die.getFirstChild();
while (Child) {
std::string ChildVarPrefix = VarPrefix;
if (Child.getTag() == dwarf::DW_TAG_lexical_block)
ChildVarPrefix += toHex(LexicalBlockIndex++) + '.';
+ if (Child.getTag() == dwarf::DW_TAG_formal_parameter)
+ ChildVarPrefix += 'p' + toHex(FormalParameterIndex++) + '.';
collectStatsRecursive(Child, FnPrefix, ChildVarPrefix, BytesInScope,
InlineDepth, FnStatMap, GlobalStats, LocStats);
Index: llvm/test/tools/llvm-dwarfdump/X86/statistics.ll
===================================================================
--- llvm/test/tools/llvm-dwarfdump/X86/statistics.ll
+++ llvm/test/tools/llvm-dwarfdump/X86/statistics.ll
@@ -20,6 +20,8 @@
; int squared = square(i);
; return squared*i;
; }
+;
+; int boo(int, int) {}
; Following variables/arguments/members should be counted:
; - GlobalConst,
@@ -27,16 +29,17 @@
; - s, s.constant,
; - square::i,
; - cube::i, cube::squared
+; - boo::1, boo::2
; Skipped entities:
; - declaration of test::a,
; - non-constant member S:fn,
; - arguments of S:fn.
-; CHECK: "unique source variables":7
+; CHECK: "unique source variables":9
; +1 extra inline i.
-; CHECK: "source variables":8
+; CHECK: "source variables":10
; -1 square::i
-; CHECK: "variables with location":7
+; CHECK: "variables with location":9
; CHECK: "scope bytes total":[[BYTES:[0-9]+]]
; Because of the dbg.value in the middle of the function, the pc range coverage
; must be below 100%.
@@ -99,6 +102,18 @@
ret i32 %mul, !dbg !44
}
+; Function Attrs: noinline optnone uwtable
+define dso_local i32 @_Z3booii(i32 %0, i32 %1) !dbg !52 {
+entry:
+ %.addr = alloca i32, align 4
+ %.addr1 = alloca i32, align 4
+ store i32 %0, i32* %.addr, align 4
+ call void @llvm.dbg.declare(metadata i32* %.addr, metadata !55, metadata !DIExpression()), !dbg !56
+ store i32 %1, i32* %.addr1, align 4
+ call void @llvm.dbg.declare(metadata i32* %.addr1, metadata !57, metadata !DIExpression()), !dbg !58
+ ret i32 0, !dbg !58
+}
+
attributes #0 = { alwaysinline nounwind ssp uwtable }
attributes #1 = { nounwind readnone speculatable }
attributes #2 = { noinline nounwind optnone ssp uwtable }
@@ -159,3 +174,10 @@
!49 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !2, entity: !50, file: !3, line: 2)
!50 = !DIGlobalVariable(name: "a", linkageName: "_ZN4test1aE", scope: !51, file: !3, line: 2, type: !8, isLocal: false, isDefinition: false)
!51 = !DINamespace(name: "test", scope: !2)
+!52 = distinct !DISubprogram(name: "boo", linkageName: "_Z3booii", scope: !3, file: !3, line: 10, type: !53, scopeLine: 3, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !4)
+!53 = !DISubroutineType(types: !54)
+!54 = !{!8, !8, !8}
+!55 = !DILocalVariable(arg: 1, scope: !52, file: !3, line: 10, type: !8)
+!56 = !DILocation(line: 10, column: 12, scope: !52)
+!57 = !DILocalVariable(arg: 2, scope: !52, file: !3, line: 10, type: !8)
+!58 = !DILocation(line: 10, column: 17, scope: !52)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D73003.240944.patch
Type: text/x-patch
Size: 3420 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200128/d95fca69/attachment.bin>
More information about the llvm-commits
mailing list