From 2b1d45b227bdbb1f59934905a5204d16ea0d378b Mon Sep 17 00:00:00 2001 From: Jeremy Morse Date: Wed, 21 Dec 2022 16:42:34 +0000 Subject: [PATCH] [NFC] Add --check-globals to an autogen test cmdline In c6d7e80ec4c17 this test was converted from hand written to autogenerated, during which the relevant metadata CHECKs were dropped. In D85172 the intention of the CHECK lines is to ensure that for two dbg.declares with different inlining scopes, attached to the same alloca, two sets of dbg.values will be generated with the same set of inlining scopes. Without metadata checks, a single DILocation can match the !dbg CHECKs. --- llvm/test/Transforms/SROA/dbg-inline.ll | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/llvm/test/Transforms/SROA/dbg-inline.ll b/llvm/test/Transforms/SROA/dbg-inline.ll index 58086f1..336ebb4 100644 --- a/llvm/test/Transforms/SROA/dbg-inline.ll +++ b/llvm/test/Transforms/SROA/dbg-inline.ll @@ -1,4 +1,4 @@ -; NOTE: Assertions have been autogenerated by utils/update_test_checks.py +; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --check-globals ; Test that SROA can deal with allocas that have more than one ; dbg.declare hanging off of it. @@ -70,6 +70,35 @@ attributes #2 = { argmemonly nounwind willreturn } !24 = distinct !DILocation(line: 10, column: 10, scope: !8) !25 = !DILocation(line: 6, column: 12, scope: !22, inlinedAt: !24) !26 = !DILocation(line: 10, column: 3, scope: !8) +;. +; CHECK: attributes #[[ATTR0:[0-9]+]] = { noinline ssp uwtable } +; CHECK: attributes #[[ATTR1:[0-9]+]] = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +; CHECK: attributes #[[ATTR2:[0-9]+]] = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } +;. +; CHECK: [[META0:![0-9]+]] = distinct !DICompileUnit(language: DW_LANG_C_plus_plus_14, file: !1, producer: "clang version 12.0.0 (git@github.com:llvm/llvm-project 5110fd0343c2d06c8ae538741fbef13ece5e68de)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, nameTableKind: None, sysroot: "/") +; CHECK: [[META1:![0-9]+]] = !DIFile(filename: "/tmp/inlinesplit.cpp", directory: "/Volumes/Data/llvm-project") +; CHECK: [[META2:![0-9]+]] = !{} +; CHECK: [[META3:![0-9]+]] = !{i32 7, !"Dwarf Version", i32 4} +; CHECK: [[META4:![0-9]+]] = !{i32 2, !"Debug Info Version", i32 3} +; CHECK: [[META5:![0-9]+]] = !{i32 1, !"wchar_size", i32 4} +; CHECK: [[META6:![0-9]+]] = !{i32 8, !"PIC Level", i32 2} +; CHECK: [[META7:![0-9]+]] = distinct !DISubprogram(name: "g", linkageName: "_Z1g4pair", scope: !8, file: !8, line: 9, type: !9, scopeLine: 9, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !2) +; CHECK: [[META8:![0-9]+]] = !DIFile(filename: "/tmp/inlinesplit.cpp", directory: "") +; CHECK: [[META9:![0-9]+]] = !DISubroutineType(types: !10) +; CHECK: [[META10:![0-9]+]] = !{!11, !12} +; CHECK: [[META11:![0-9]+]] = !DIBasicType(name: "long long unsigned int", size: 64, encoding: DW_ATE_unsigned) +; CHECK: [[META12:![0-9]+]] = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "pair", file: !8, line: 1, size: 128, flags: DIFlagTypePassByValue, elements: !13, identifier: "_ZTS4pair") +; CHECK: [[META13:![0-9]+]] = !{!14, !15} +; CHECK: [[META14:![0-9]+]] = !DIDerivedType(tag: DW_TAG_member, name: "a", scope: !12, file: !8, line: 1, baseType: !11, size: 64) +; CHECK: [[META15:![0-9]+]] = !DIDerivedType(tag: DW_TAG_member, name: "b", scope: !12, file: !8, line: 1, baseType: !11, size: 64, offset: 64) +; CHECK: [[META16]] = !DILocalVariable(name: "p", arg: 1, scope: !7, file: !8, line: 9, type: !12) +; CHECK: [[DBG17]] = !DILocation(line: 0, scope: !7) +; CHECK: [[META18]] = !DILocalVariable(name: "p", arg: 1, scope: !19, file: !8, line: 5, type: !12) +; CHECK: [[META19:![0-9]+]] = distinct !DISubprogram(name: "f", linkageName: "_ZL1f4pair", scope: !8, file: !8, line: 5, type: !9, scopeLine: 5, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !0, retainedNodes: !2) +; CHECK: [[DBG20]] = !DILocation(line: 0, scope: !19, inlinedAt: !21) +; CHECK: [[META21:![0-9]+]] = distinct !DILocation(line: 10, column: 10, scope: !7) +; CHECK: [[DBG22]] = !DILocation(line: 10, column: 3, scope: !7) +;. ;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line: ; CHECK-MODIFY-CFG: {{.*}} ; CHECK-PRESERVE-CFG: {{.*}} -- 2.7.4