diff options
Diffstat (limited to 'test/Transforms/SampleProfile')
-rw-r--r-- | test/Transforms/SampleProfile/Inputs/import.prof | 4 | ||||
-rw-r--r-- | test/Transforms/SampleProfile/Inputs/indirect-call.afdo | bin | 0 -> 1744 bytes | |||
-rw-r--r-- | test/Transforms/SampleProfile/Inputs/indirect-call.prof | 13 | ||||
-rw-r--r-- | test/Transforms/SampleProfile/branch.ll | 5 | ||||
-rw-r--r-- | test/Transforms/SampleProfile/calls.ll | 16 | ||||
-rw-r--r-- | test/Transforms/SampleProfile/cov-zero-samples.ll | 8 | ||||
-rw-r--r-- | test/Transforms/SampleProfile/discriminator.ll | 4 | ||||
-rw-r--r-- | test/Transforms/SampleProfile/early-inline.ll | 4 | ||||
-rw-r--r-- | test/Transforms/SampleProfile/fnptr.ll | 8 | ||||
-rw-r--r-- | test/Transforms/SampleProfile/import.ll | 31 | ||||
-rw-r--r-- | test/Transforms/SampleProfile/indirect-call-gcc.ll | 26 | ||||
-rw-r--r-- | test/Transforms/SampleProfile/indirect-call.ll | 82 | ||||
-rw-r--r-- | test/Transforms/SampleProfile/inline-coverage.ll | 4 | ||||
-rw-r--r-- | test/Transforms/SampleProfile/inline.ll | 8 | ||||
-rw-r--r-- | test/Transforms/SampleProfile/propagate.ll | 10 | ||||
-rw-r--r-- | test/Transforms/SampleProfile/remarks.ll | 14 |
16 files changed, 198 insertions, 39 deletions
diff --git a/test/Transforms/SampleProfile/Inputs/import.prof b/test/Transforms/SampleProfile/Inputs/import.prof new file mode 100644 index 0000000000000..efadc0c5c9c6d --- /dev/null +++ b/test/Transforms/SampleProfile/Inputs/import.prof @@ -0,0 +1,4 @@ +main:10000:0 + 3: foo:1000 + 3: bar:200 + 4: baz:10 diff --git a/test/Transforms/SampleProfile/Inputs/indirect-call.afdo b/test/Transforms/SampleProfile/Inputs/indirect-call.afdo Binary files differnew file mode 100644 index 0000000000000..2d5b345e960e7 --- /dev/null +++ b/test/Transforms/SampleProfile/Inputs/indirect-call.afdo diff --git a/test/Transforms/SampleProfile/Inputs/indirect-call.prof b/test/Transforms/SampleProfile/Inputs/indirect-call.prof new file mode 100644 index 0000000000000..428d4cedef5a8 --- /dev/null +++ b/test/Transforms/SampleProfile/Inputs/indirect-call.prof @@ -0,0 +1,13 @@ +test:63067:0 + 4: 3345 _Z3barv:1398 _Z3foov:2059 +test_inline:3000:0 + 5: foo_inline1:3000 + 1: 3000 + 5: foo_inline2:4000 + 1: 4000 +test_noinline:3000:0 + 5: foo_noinline:3000 + 1: 3000 +test_direct:3000:0 + 5: foo_direct:3000 + 1: 3000 diff --git a/test/Transforms/SampleProfile/branch.ll b/test/Transforms/SampleProfile/branch.ll index 2ef01a76b0f08..5a5160e6343aa 100644 --- a/test/Transforms/SampleProfile/branch.ll +++ b/test/Transforms/SampleProfile/branch.ll @@ -87,7 +87,9 @@ for.cond: ; preds = %for.inc, %if.then.2 %6 = load i32, i32* %u, align 4, !dbg !46 %7 = load i32, i32* %limit, align 4, !dbg !48 %cmp5 = icmp slt i32 %6, %7, !dbg !49 - br i1 %cmp5, label %for.body, label %for.end, !dbg !50 + br i1 %cmp5, label %for.body, label %for.end, !dbg !50, !prof !80 +; CHECK: edge for.cond -> for.body probability is 0x73333333 / 0x80000000 = 90.00% +; CHECK: edge for.cond -> for.end probability is 0x0ccccccd / 0x80000000 = 10.00% for.body: ; preds = %for.cond call void @llvm.dbg.declare(metadata double* %x, metadata !51, metadata !17), !dbg !53 @@ -237,3 +239,4 @@ attributes #4 = { nounwind readonly } !77 = !DILocation(line: 20, column: 4, scope: !6) !78 = !DILocation(line: 21, column: 4, scope: !6) !79 = !DILocation(line: 22, column: 2, scope: !6) +!80 = !{!"branch_weights", i32 90, i32 10} diff --git a/test/Transforms/SampleProfile/calls.ll b/test/Transforms/SampleProfile/calls.ll index 45909ddf3e547..3539c771627a9 100644 --- a/test/Transforms/SampleProfile/calls.ll +++ b/test/Transforms/SampleProfile/calls.ll @@ -48,8 +48,8 @@ while.cond: ; preds = %if.end, %entry store i32 %inc, i32* %i, align 4, !dbg !14 %cmp = icmp slt i32 %0, 400000000, !dbg !14 br i1 %cmp, label %while.body, label %while.end, !dbg !14 -; CHECK: edge while.cond -> while.body probability is 0x7d9eb367 / 0x80000000 = 98.14% [HOT edge] -; CHECK: edge while.cond -> while.end probability is 0x02614c99 / 0x80000000 = 1.86% +; CHECK: edge while.cond -> while.body probability is 0x77f2798d / 0x80000000 = 93.71% [HOT edge] +; CHECK: edge while.cond -> while.end probability is 0x080d8673 / 0x80000000 = 6.29% while.body: ; preds = %while.cond %1 = load i32, i32* %i, align 4, !dbg !16 @@ -59,8 +59,8 @@ while.body: ; preds = %while.cond ; both branches out of while.body had the same weight. In reality, ; the edge while.body->if.then is taken most of the time. ; -; CHECK: edge while.body -> if.else probability is 0x00059704 / 0x80000000 = 0.02% -; CHECK: edge while.body -> if.then probability is 0x7ffa68fc / 0x80000000 = 99.98% [HOT edge] +; CHECK: edge while.body -> if.else probability is 0x0005b1e0 / 0x80000000 = 0.02% +; CHECK: edge while.body -> if.then probability is 0x7ffa4e20 / 0x80000000 = 99.98% [HOT edge] if.then: ; preds = %while.body @@ -103,14 +103,14 @@ declare i32 @printf(i8*, ...) #2 !12 = !DILocation(line: 8, scope: !7) !13 = !DILocation(line: 9, scope: !7) !14 = !DILocation(line: 9, scope: !15) -!15 = !DILexicalBlockFile(discriminator: 1, file: !1, scope: !7) +!15 = !DILexicalBlockFile(discriminator: 2, file: !1, scope: !7) !16 = !DILocation(line: 10, scope: !17) !17 = distinct !DILexicalBlock(line: 10, column: 0, file: !1, scope: !7) !18 = !DILocation(line: 10, scope: !19) -!19 = !DILexicalBlockFile(discriminator: 1, file: !1, scope: !17) +!19 = !DILexicalBlockFile(discriminator: 2, file: !1, scope: !17) !20 = !DILocation(line: 10, scope: !21) -!21 = !DILexicalBlockFile(discriminator: 2, file: !1, scope: !17) +!21 = !DILexicalBlockFile(discriminator: 4, file: !1, scope: !17) !22 = !DILocation(line: 10, scope: !23) -!23 = !DILexicalBlockFile(discriminator: 3, file: !1, scope: !17) +!23 = !DILexicalBlockFile(discriminator: 6, file: !1, scope: !17) !24 = !DILocation(line: 11, scope: !7) !25 = !DILocation(line: 12, scope: !7) diff --git a/test/Transforms/SampleProfile/cov-zero-samples.ll b/test/Transforms/SampleProfile/cov-zero-samples.ll index 7ccaa3e7d756b..5239d74fdc6e7 100644 --- a/test/Transforms/SampleProfile/cov-zero-samples.ll +++ b/test/Transforms/SampleProfile/cov-zero-samples.ll @@ -106,7 +106,7 @@ attributes #0 = { nounwind readnone } !13 = !{!14, !14} !14 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed) !15 = !DILocation(line: 5, column: 27, scope: !16) -!16 = !DILexicalBlockFile(scope: !11, file: !3, discriminator: 3) +!16 = !DILexicalBlockFile(scope: !11, file: !3, discriminator: 6) !17 = distinct !DISubprogram(name: "main", scope: !3, file: !3, line: 7, type: !18, isLocal: false, isDefinition: true, scopeLine: 7, flags: DIFlagPrototyped, isOptimized: false, unit: !2, variables: !4) !18 = !DISubroutineType(types: !19) !19 = !{!14} @@ -118,7 +118,7 @@ attributes #0 = { nounwind readnone } !25 = !DILocation(line: 9, column: 18, scope: !24) !26 = !DILocation(line: 9, column: 8, scope: !24) !27 = !DILocation(line: 9, column: 25, scope: !28) -!28 = !DILexicalBlockFile(scope: !29, file: !3, discriminator: 1) +!28 = !DILexicalBlockFile(scope: !29, file: !3, discriminator: 2) !29 = distinct !DILexicalBlock(scope: !24, file: !3, line: 9, column: 3) !30 = !DILocation(line: 9, column: 29, scope: !28) !31 = !DILocation(line: 9, column: 27, scope: !28) @@ -130,7 +130,7 @@ attributes #0 = { nounwind readnone } !37 = !DILocation(line: 10, column: 11, scope: !34) !38 = !DILocation(line: 10, column: 9, scope: !35) !39 = !DILocation(line: 10, column: 36, scope: !40) -!40 = !DILexicalBlockFile(scope: !34, file: !3, discriminator: 1) +!40 = !DILexicalBlockFile(scope: !34, file: !3, discriminator: 2) !41 = !DILocation(line: 10, column: 23, scope: !40) !42 = !DILocation(line: 10, column: 20, scope: !40) !43 = !DILocation(line: 10, column: 16, scope: !40) @@ -139,7 +139,7 @@ attributes #0 = { nounwind readnone } !46 = !DILocation(line: 11, column: 9, scope: !35) !47 = !DILocation(line: 12, column: 3, scope: !35) !48 = !DILocation(line: 9, column: 33, scope: !49) -!49 = !DILexicalBlockFile(scope: !29, file: !3, discriminator: 2) +!49 = !DILexicalBlockFile(scope: !29, file: !3, discriminator: 4) !50 = !DILocation(line: 9, column: 3, scope: !49) !51 = !DILocation(line: 13, column: 25, scope: !17) !52 = !DILocation(line: 13, column: 3, scope: !17) diff --git a/test/Transforms/SampleProfile/discriminator.ll b/test/Transforms/SampleProfile/discriminator.ll index d0b96a9ea16e6..85f6cbe8fb4af 100644 --- a/test/Transforms/SampleProfile/discriminator.ll +++ b/test/Transforms/SampleProfile/discriminator.ll @@ -79,12 +79,12 @@ while.end: ; preds = %while.cond !10 = !DILocation(line: 2, scope: !4) !11 = !DILocation(line: 3, scope: !4) !12 = !DILocation(line: 3, scope: !13) -!13 = !DILexicalBlockFile(discriminator: 1, file: !1, scope: !4) +!13 = !DILexicalBlockFile(discriminator: 2, file: !1, scope: !4) !14 = !DILocation(line: 4, scope: !15) !15 = distinct !DILexicalBlock(line: 4, column: 0, file: !1, scope: !16) !16 = distinct !DILexicalBlock(line: 3, column: 0, file: !1, scope: !4) !17 = !DILocation(line: 4, scope: !18) -!18 = !DILexicalBlockFile(discriminator: 1, file: !1, scope: !15) +!18 = !DILexicalBlockFile(discriminator: 2, file: !1, scope: !15) !19 = !DILocation(line: 5, scope: !16) !20 = !DILocation(line: 6, scope: !16) !21 = !DILocation(line: 7, scope: !4) diff --git a/test/Transforms/SampleProfile/early-inline.ll b/test/Transforms/SampleProfile/early-inline.ll index 780ff4751f40a..51e7d243c187d 100644 --- a/test/Transforms/SampleProfile/early-inline.ll +++ b/test/Transforms/SampleProfile/early-inline.ll @@ -41,8 +41,8 @@ declare i32 @__gxx_personality_v0(...) !1 = !DIFile(filename: "a", directory: "b/") !3 = !{i32 2, !"Dwarf Version", i32 4} !4 = !{i32 2, !"Debug Info Version", i32 3} -!6 = distinct !DISubprogram(linkageName: "_Z3foov", scope: !1, line: 5, scopeLine: 5, unit: !0) +!6 = distinct !DISubprogram(linkageName: "_Z3foov", scope: !1, file: !1, line: 5, scopeLine: 5, unit: !0) !9 = !DILocation(line: 6, column: 3, scope: !6) !10 = !DILocation(line: 8, column: 5, scope: !11) !11 = distinct !DILexicalBlock(scope: !6, file: !1, line: 7, column: 7) -!12 = distinct !DISubprogram(linkageName: "_ZL3barv", scope: !1, line: 20, scopeLine: 20, unit: !0) +!12 = distinct !DISubprogram(linkageName: "_ZL3barv", scope: !1, file: !1, line: 20, scopeLine: 20, unit: !0) diff --git a/test/Transforms/SampleProfile/fnptr.ll b/test/Transforms/SampleProfile/fnptr.ll index 0c671a7882f6a..1b01d0c0c8572 100644 --- a/test/Transforms/SampleProfile/fnptr.ll +++ b/test/Transforms/SampleProfile/fnptr.ll @@ -8,10 +8,10 @@ ; RUN: opt < %s -passes=sample-profile -sample-profile-file=%S/Inputs/fnptr.prof | opt -analyze -branch-prob | FileCheck %s ; RUN: opt < %s -passes=sample-profile -sample-profile-file=%S/Inputs/fnptr.binprof | opt -analyze -branch-prob | FileCheck %s -; CHECK: edge for.body3 -> if.then probability is 0x19f584f3 / 0x80000000 = 20.28% -; CHECK: edge for.body3 -> if.else probability is 0x660a7b0d / 0x80000000 = 79.72% -; CHECK: edge for.inc -> for.inc12 probability is 0x000f92fb / 0x80000000 = 0.05% -; CHECK: edge for.inc -> for.body3 probability is 0x7ff06d05 / 0x80000000 = 99.95% +; CHECK: edge for.body3 -> if.then probability is 0x1a56a56a / 0x80000000 = 20.58% +; CHECK: edge for.body3 -> if.else probability is 0x65a95a96 / 0x80000000 = 79.42% +; CHECK: edge for.inc -> for.inc12 probability is 0x000fbd1c / 0x80000000 = 0.05% +; CHECK: edge for.inc -> for.body3 probability is 0x7ff042e4 / 0x80000000 = 99.95% ; CHECK: edge for.inc12 -> for.end14 probability is 0x04000000 / 0x80000000 = 3.12% ; CHECK: edge for.inc12 -> for.cond1.preheader probability is 0x7c000000 / 0x80000000 = 96.88% diff --git a/test/Transforms/SampleProfile/import.ll b/test/Transforms/SampleProfile/import.ll new file mode 100644 index 0000000000000..1ee45fb4fd3ef --- /dev/null +++ b/test/Transforms/SampleProfile/import.ll @@ -0,0 +1,31 @@ +; RUN: opt < %s -sample-profile -sample-profile-file=%S/Inputs/import.prof -S | FileCheck %s + +; Tests whether the functions in the inline stack are added to the +; function_entry_count metadata. + +declare void @foo() + +define void @main() !dbg !7 { + call void @foo(), !dbg !18 + ret void +} + +; GUIDs of foo and bar should be included in the metadata to make sure hot +; inline stacks are imported. +; CHECK: !{!"function_entry_count", i64 1, i64 6699318081062747564, i64 -2012135647395072713} + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!8, !9} +!llvm.ident = !{!10} + +!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, producer: "clang version 3.5 ", isOptimized: false, emissionKind: NoDebug, file: !1, enums: !2, retainedTypes: !2, globals: !2, imports: !2) +!1 = !DIFile(filename: "calls.cc", directory: ".") +!2 = !{} +!6 = !DISubroutineType(types: !2) +!7 = distinct !DISubprogram(name: "main", line: 7, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: false, unit: !0, scopeLine: 7, file: !1, scope: !1, type: !6, variables: !2) +!8 = !{i32 2, !"Dwarf Version", i32 4} +!9 = !{i32 1, !"Debug Info Version", i32 3} +!10 = !{!"clang version 3.5 "} +!15 = !DILexicalBlockFile(discriminator: 1, file: !1, scope: !7) +!17 = distinct !DILexicalBlock(line: 10, column: 0, file: !1, scope: !7) +!18 = !DILocation(line: 10, scope: !17) diff --git a/test/Transforms/SampleProfile/indirect-call-gcc.ll b/test/Transforms/SampleProfile/indirect-call-gcc.ll new file mode 100644 index 0000000000000..678c7931250eb --- /dev/null +++ b/test/Transforms/SampleProfile/indirect-call-gcc.ll @@ -0,0 +1,26 @@ +; RUN: opt < %s -sample-profile -sample-profile-file=%S/Inputs/indirect-call.afdo -S | FileCheck %s + +; Checks if indirect call targets are read correctly when reading from gcc +; format profile. +; It is expected to fail on certain architectures as gcc profile reader does +; not work. +; XFAIL: powerpc64-, s390x, mips-, mips64-, sparc + +define void @test(void ()*) !dbg !3 { + %2 = alloca void ()* + store void ()* %0, void ()** %2 + %3 = load void ()*, void ()** %2 + ; CHECK: call {{.*}}, !prof ![[PROF:[0-9]+]] + call void %3(), !dbg !4 + ret void +} + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2} + +!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1) +!1 = !DIFile(filename: "test.cc", directory: "/") +!2 = !{i32 2, !"Debug Info Version", i32 3} +!3 = distinct !DISubprogram(name: "test", scope: !1, file: !1, line: 1, unit: !0) +!4 = !DILocation(line: 5, scope: !3) +; CHECK: ![[PROF]] = !{!"VP", i32 0, i64 3457, i64 9191153033785521275, i64 2059, i64 -1069303473483922844, i64 1398} diff --git a/test/Transforms/SampleProfile/indirect-call.ll b/test/Transforms/SampleProfile/indirect-call.ll new file mode 100644 index 0000000000000..5a4913d6358f5 --- /dev/null +++ b/test/Transforms/SampleProfile/indirect-call.ll @@ -0,0 +1,82 @@ +; RUN: opt < %s -sample-profile -sample-profile-file=%S/Inputs/indirect-call.prof -S | FileCheck %s + +; CHECK-LABEL: @test +define void @test(void ()*) !dbg !3 { + %2 = alloca void ()* + store void ()* %0, void ()** %2 + %3 = load void ()*, void ()** %2 + ; CHECK: call {{.*}}, !prof ![[PROF:[0-9]+]] + call void %3(), !dbg !4 + ret void +} + +; CHECK-LABEL: @test_inline +; If the indirect call is promoted and inlined in profile, we should promote and inline it. +define void @test_inline(i64* (i32*)*, i32* %x) !dbg !3 { + %2 = alloca i64* (i32*)* + store i64* (i32*)* %0, i64* (i32*)** %2 + %3 = load i64* (i32*)*, i64* (i32*)** %2 +; CHECK: icmp {{.*}} @foo_inline2 +; CHECK: if.true.direct_targ: +; CHECK-NOT: call +; CHECK: if.false.orig_indirect: +; CHECK: icmp {{.*}} @foo_inline1 +; CHECK: if.true.direct_targ1: +; CHECK-NOT: call +; CHECK: if.false.orig_indirect2: +; CHECK: call + call i64* %3(i32* %x), !dbg !5 + ret void +} + +; CHECK-LABEL: @test_noinline +; If the indirect call target is not available, we should not promote it. +define void @test_noinline(void ()*) !dbg !3 { + %2 = alloca void ()* + store void ()* %0, void ()** %2 + %3 = load void ()*, void ()** %2 +; CHECK-NOT: icmp +; CHECK: call + call void %3(), !dbg !5 + ret void +} + +@x = global i32 0, align 4 + +define i32* @foo_inline1(i32* %x) !dbg !3 { + ret i32* %x +} + +define i32* @foo_inline2(i32* %x) !dbg !3 { + ret i32* %x +} + +define i32 @foo_noinline(i32 %x) !dbg !3 { + ret i32 %x +} + +define void @foo_direct() !dbg !3 { + ret void +} + +; CHECK-LABEL: @test_direct +; We should not promote a direct call. +define void @test_direct() !dbg !3 { +; CHECK-NOT: icmp +; CHECK: call + call void @foo_alias(), !dbg !5 + ret void +} + +@foo_alias = alias void (), void ()* @foo_direct + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!2} + +!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1) +!1 = !DIFile(filename: "test.cc", directory: "/") +!2 = !{i32 2, !"Debug Info Version", i32 3} +!3 = distinct !DISubprogram(name: "test", scope: !1, file: !1, line: 1, unit: !0) +!4 = !DILocation(line: 5, scope: !3) +!5 = !DILocation(line: 6, scope: !3) +; CHECK: ![[PROF]] = !{!"VP", i32 0, i64 3457, i64 9191153033785521275, i64 2059, i64 -1069303473483922844, i64 1398} diff --git a/test/Transforms/SampleProfile/inline-coverage.ll b/test/Transforms/SampleProfile/inline-coverage.ll index c88e7f865fa2f..080876a464716 100644 --- a/test/Transforms/SampleProfile/inline-coverage.ll +++ b/test/Transforms/SampleProfile/inline-coverage.ll @@ -16,7 +16,7 @@ ; 11 return sum > 0 ? 0 : 1; ; 12 } ; -; CHECK: remark: coverage.cc:10:12: inlined hot callee '_Z3fool' with 172746 samples into 'main' +; CHECK: remark: coverage.cc:10:12: inlined hot callee '_Z3fool' into 'main' ; CHECK: remark: coverage.cc:9:21: Applied 23478 samples from profile (offset: 2.1) ; CHECK: remark: coverage.cc:10:16: Applied 23478 samples from profile (offset: 3) ; CHECK: remark: coverage.cc:4:10: Applied 31878 samples from profile (offset: 1) @@ -120,7 +120,7 @@ for.end: ; preds = %for.cond !27 = !DILocation(line: 9, column: 12, scope: !26) !28 = !DILocation(line: 9, column: 8, scope: !26) !29 = !DILocation(line: 9, column: 19, scope: !30) -!30 = !DILexicalBlockFile(scope: !31, file: !1, discriminator: 1) +!30 = !DILexicalBlockFile(scope: !31, file: !1, discriminator: 2) !31 = distinct !DILexicalBlock(scope: !26, file: !1, line: 9, column: 3) !32 = !DILocation(line: 9, column: 21, scope: !30) !33 = !DILocation(line: 9, column: 3, scope: !30) diff --git a/test/Transforms/SampleProfile/inline.ll b/test/Transforms/SampleProfile/inline.ll index ed353834137bd..3ed8988968f68 100644 --- a/test/Transforms/SampleProfile/inline.ll +++ b/test/Transforms/SampleProfile/inline.ll @@ -96,14 +96,14 @@ declare i32 @printf(i8*, ...) #2 !12 = !DILocation(line: 8, scope: !7) !13 = !DILocation(line: 9, scope: !7) !14 = !DILocation(line: 9, scope: !15) -!15 = !DILexicalBlockFile(discriminator: 1, file: !1, scope: !7) +!15 = !DILexicalBlockFile(discriminator: 2, file: !1, scope: !7) !16 = !DILocation(line: 10, scope: !17) !17 = distinct !DILexicalBlock(line: 10, column: 0, file: !1, scope: !7) !18 = !DILocation(line: 10, scope: !19) -!19 = !DILexicalBlockFile(discriminator: 1, file: !1, scope: !17) +!19 = !DILexicalBlockFile(discriminator: 2, file: !1, scope: !17) !20 = !DILocation(line: 10, scope: !21) -!21 = !DILexicalBlockFile(discriminator: 2, file: !1, scope: !17) +!21 = !DILexicalBlockFile(discriminator: 4, file: !1, scope: !17) !22 = !DILocation(line: 10, scope: !23) -!23 = !DILexicalBlockFile(discriminator: 3, file: !1, scope: !17) +!23 = !DILexicalBlockFile(discriminator: 6, file: !1, scope: !17) !24 = !DILocation(line: 11, scope: !7) !25 = !DILocation(line: 12, scope: !7) diff --git a/test/Transforms/SampleProfile/propagate.ll b/test/Transforms/SampleProfile/propagate.ll index 45e3b8003ffc1..5a4922bde9358 100644 --- a/test/Transforms/SampleProfile/propagate.ll +++ b/test/Transforms/SampleProfile/propagate.ll @@ -244,7 +244,7 @@ attributes #3 = { "disable-tail-calls"="false" "less-precise-fpmad"="false" "no- !31 = !DILocation(line: 7, column: 15, scope: !29) !32 = !DILocation(line: 7, column: 10, scope: !29) !33 = !DILocation(line: 7, column: 22, scope: !34) -!34 = !DILexicalBlockFile(scope: !35, file: !1, discriminator: 1) +!34 = !DILexicalBlockFile(scope: !35, file: !1, discriminator: 2) !35 = distinct !DILexicalBlock(scope: !29, file: !1, line: 7, column: 5) !36 = !DILocation(line: 7, column: 26, scope: !34) !37 = !DILocation(line: 7, column: 24, scope: !34) @@ -275,7 +275,7 @@ attributes #3 = { "disable-tail-calls"="false" "less-precise-fpmad"="false" "no- !62 = !DILocation(line: 14, column: 24, scope: !59) !63 = !DILocation(line: 14, column: 14, scope: !59) !64 = !DILocation(line: 14, column: 31, scope: !65) -!65 = !DILexicalBlockFile(scope: !66, file: !1, discriminator: 1) +!65 = !DILexicalBlockFile(scope: !66, file: !1, discriminator: 2) !66 = distinct !DILexicalBlock(scope: !59, file: !1, line: 14, column: 9) !67 = !DILocation(line: 14, column: 33, scope: !65) !68 = !DILocation(line: 14, column: 9, scope: !65) @@ -285,11 +285,11 @@ attributes #3 = { "disable-tail-calls"="false" "less-precise-fpmad"="false" "no- !72 = !DILocation(line: 16, column: 13, scope: !70) !73 = !DILocation(line: 17, column: 9, scope: !70) !74 = !DILocation(line: 14, column: 41, scope: !75) -!75 = !DILexicalBlockFile(scope: !66, file: !1, discriminator: 2) +!75 = !DILexicalBlockFile(scope: !66, file: !1, discriminator: 4) !76 = !DILocation(line: 14, column: 9, scope: !75) !77 = !DILocation(line: 19, column: 5, scope: !41) !78 = !DILocation(line: 7, column: 30, scope: !79) -!79 = !DILexicalBlockFile(scope: !35, file: !1, discriminator: 2) +!79 = !DILexicalBlockFile(scope: !35, file: !1, discriminator: 4) !80 = !DILocation(line: 7, column: 5, scope: !79) !81 = !DILocation(line: 21, column: 10, scope: !6) !82 = !DILocation(line: 21, column: 14, scope: !6) @@ -313,5 +313,5 @@ attributes #3 = { "disable-tail-calls"="false" "less-precise-fpmad"="false" "no- !100 = !DILocation(line: 28, column: 57, scope: !86) !101 = !DILocation(line: 28, column: 47, scope: !86) !102 = !DILocation(line: 28, column: 3, scope: !103) -!103 = !DILexicalBlockFile(scope: !86, file: !1, discriminator: 1) +!103 = !DILexicalBlockFile(scope: !86, file: !1, discriminator: 2) !104 = !DILocation(line: 29, column: 3, scope: !86) diff --git a/test/Transforms/SampleProfile/remarks.ll b/test/Transforms/SampleProfile/remarks.ll index 908e4f8b10b4c..dfb075ee00eaf 100644 --- a/test/Transforms/SampleProfile/remarks.ll +++ b/test/Transforms/SampleProfile/remarks.ll @@ -19,7 +19,7 @@ ; We are expecting foo() to be inlined in main() (almost all the cycles are ; spent inside foo). -; CHECK: remark: remarks.cc:13:21: inlined hot callee '_Z3foov' with 623868 samples into 'main' +; CHECK: remark: remarks.cc:13:21: inlined hot callee '_Z3foov' into 'main' ; The back edge for the loop is the hottest edge in the loop subgraph. ; CHECK: remark: remarks.cc:6:9: most popular destination for conditional branches at remarks.cc:5:3 @@ -33,11 +33,11 @@ entry: %sum = alloca i64, align 8 %i = alloca i32, align 4 %0 = bitcast i64* %sum to i8*, !dbg !19 - call void @llvm.lifetime.start(i64 8, i8* %0) #4, !dbg !19 + call void @llvm.lifetime.start.p0i8(i64 8, i8* %0) #4, !dbg !19 call void @llvm.dbg.declare(metadata i64* %sum, metadata !9, metadata !20), !dbg !21 store i64 0, i64* %sum, align 8, !dbg !21, !tbaa !22 %1 = bitcast i32* %i to i8*, !dbg !26 - call void @llvm.lifetime.start(i64 4, i8* %1) #4, !dbg !26 + call void @llvm.lifetime.start.p0i8(i64 4, i8* %1) #4, !dbg !26 call void @llvm.dbg.declare(metadata i32* %i, metadata !10, metadata !20), !dbg !27 store i32 0, i32* %i, align 4, !dbg !27, !tbaa !28 br label %for.cond, !dbg !26 @@ -49,7 +49,7 @@ for.cond: ; preds = %for.inc, %entry for.cond.cleanup: ; preds = %for.cond %3 = bitcast i32* %i to i8*, !dbg !36 - call void @llvm.lifetime.end(i64 4, i8* %3) #4, !dbg !36 + call void @llvm.lifetime.end.p0i8(i64 4, i8* %3) #4, !dbg !36 br label %for.end for.body: ; preds = %for.cond @@ -88,12 +88,12 @@ for.inc: ; preds = %if.end for.end: ; preds = %for.cond.cleanup %10 = load i64, i64* %sum, align 8, !dbg !53, !tbaa !22 %11 = bitcast i64* %sum to i8*, !dbg !54 - call void @llvm.lifetime.end(i64 8, i8* %11) #4, !dbg !54 + call void @llvm.lifetime.end.p0i8(i64 8, i8* %11) #4, !dbg !54 ret i64 %10, !dbg !55 } ; Function Attrs: nounwind argmemonly -declare void @llvm.lifetime.start(i64, i8* nocapture) #1 +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #1 ; Function Attrs: nounwind readnone declare void @llvm.dbg.declare(metadata, metadata, metadata) #2 @@ -102,7 +102,7 @@ declare void @llvm.dbg.declare(metadata, metadata, metadata) #2 declare i32 @rand() #3 ; Function Attrs: nounwind argmemonly -declare void @llvm.lifetime.end(i64, i8* nocapture) #1 +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #1 ; Function Attrs: nounwind uwtable define i32 @main() #0 !dbg !13 { |