Index: llvm/include/llvm/IR/ProfileSummary.h =================================================================== --- llvm/include/llvm/IR/ProfileSummary.h +++ llvm/include/llvm/IR/ProfileSummary.h @@ -64,11 +64,12 @@ ProfileSummary(Kind K, SummaryEntryVector DetailedSummary, uint64_t TotalCount, uint64_t MaxCount, uint64_t MaxInternalCount, uint64_t MaxFunctionCount, - uint32_t NumCounts, uint32_t NumFunctions) + uint32_t NumCounts, uint32_t NumFunctions, + bool Partial = false) : PSK(K), DetailedSummary(std::move(DetailedSummary)), TotalCount(TotalCount), MaxCount(MaxCount), MaxInternalCount(MaxInternalCount), MaxFunctionCount(MaxFunctionCount), - NumCounts(NumCounts), NumFunctions(NumFunctions) {} + NumCounts(NumCounts), NumFunctions(NumFunctions), Partial(Partial) {} Kind getKind() const { return PSK; } /// Return summary information as metadata. Index: llvm/lib/IR/ProfileSummary.cpp =================================================================== --- llvm/lib/IR/ProfileSummary.cpp +++ llvm/lib/IR/ProfileSummary.cpp @@ -68,14 +68,15 @@ Metadata *ProfileSummary::getMD(LLVMContext &Context) { const char *KindStr[3] = {"InstrProf", "CSInstrProf", "SampleProfile"}; Metadata *Components[] = { - getKeyValMD(Context, "ProfileFormat", KindStr[PSK]), - getKeyValMD(Context, "TotalCount", getTotalCount()), - getKeyValMD(Context, "MaxCount", getMaxCount()), - getKeyValMD(Context, "MaxInternalCount", getMaxInternalCount()), - getKeyValMD(Context, "MaxFunctionCount", getMaxFunctionCount()), - getKeyValMD(Context, "NumCounts", getNumCounts()), - getKeyValMD(Context, "NumFunctions", getNumFunctions()), - getDetailedSummaryMD(Context), + getKeyValMD(Context, "ProfileFormat", KindStr[PSK]), + getKeyValMD(Context, "TotalCount", getTotalCount()), + getKeyValMD(Context, "MaxCount", getMaxCount()), + getKeyValMD(Context, "MaxInternalCount", getMaxInternalCount()), + getKeyValMD(Context, "MaxFunctionCount", getMaxFunctionCount()), + getKeyValMD(Context, "NumCounts", getNumCounts()), + getKeyValMD(Context, "NumFunctions", getNumFunctions()), + getKeyValMD(Context, "IsPartialProfile", isPartialProfile()), + getDetailedSummaryMD(Context), }; return MDTuple::get(Context, Components); } @@ -141,7 +142,7 @@ ProfileSummary *ProfileSummary::getFromMD(Metadata *MD) { MDTuple *Tuple = dyn_cast_or_null(MD); - if (!Tuple || Tuple->getNumOperands() != 8) + if (!Tuple || Tuple->getNumOperands() != 9) return nullptr; auto &FormatMD = Tuple->getOperand(0); @@ -159,7 +160,7 @@ return nullptr; uint64_t NumCounts, TotalCount, NumFunctions, MaxFunctionCount, MaxCount, - MaxInternalCount; + MaxInternalCount, IsPartialProfile; if (!getVal(dyn_cast(Tuple->getOperand(1)), "TotalCount", TotalCount)) return nullptr; @@ -176,11 +177,14 @@ if (!getVal(dyn_cast(Tuple->getOperand(6)), "NumFunctions", NumFunctions)) return nullptr; + if (!getVal(dyn_cast(Tuple->getOperand(7)), "IsPartialProfile", + IsPartialProfile)) + return nullptr; SummaryEntryVector Summary; - if (!getSummaryFromMD(dyn_cast(Tuple->getOperand(7)), Summary)) + if (!getSummaryFromMD(dyn_cast(Tuple->getOperand(8)), Summary)) return nullptr; return new ProfileSummary(SummaryKind, std::move(Summary), TotalCount, MaxCount, MaxInternalCount, MaxFunctionCount, - NumCounts, NumFunctions); + NumCounts, NumFunctions, IsPartialProfile); } Index: llvm/test/Analysis/ProfileSummary/basic.ll =================================================================== --- llvm/test/Analysis/ProfileSummary/basic.ll +++ llvm/test/Analysis/ProfileSummary/basic.ll @@ -3,7 +3,7 @@ ; RUN: opt < %s -disable-output -profile-summary-cold-count=0 -passes=print-profile-summary -S 2>&1 | FileCheck %s -check-prefixes=OVERRIDE-COLD ; RUN: opt < %s -disable-output -profile-summary-cold-count=200 -profile-summary-hot-count=1000 -passes=print-profile-summary -S 2>&1 | FileCheck %s -check-prefixes=OVERRIDE-BOTH -define void @f1() !prof !20 { +define void @f1() !prof !21 { ; CHECK-LABEL: f1 :hot ; OVERRIDE-HOT-LABEL: f1 ; OVERRIDE-COLD-LABEL: f1 :hot @@ -12,7 +12,7 @@ ret void } -define void @f2() !prof !21 { +define void @f2() !prof !22 { ; CHECK-LABEL: f2 :cold ; OVERRIDE-HOT-LABEL: f2 :cold ; OVERRIDE-COLD-LABEL: f2 @@ -21,7 +21,7 @@ ret void } -define void @f3() !prof !22 { +define void @f3() !prof !23 { ; CHECK-LABEL: f3 ; OVERRIDE-HOT-LABEL: f3 ; OVERRIDE-COLD-LABEL: f3 @@ -31,12 +31,12 @@ } !llvm.module.flags = !{!1} -!20 = !{!"function_entry_count", i64 400} -!21 = !{!"function_entry_count", i64 1} -!22 = !{!"function_entry_count", i64 100} +!21 = !{!"function_entry_count", i64 400} +!22 = !{!"function_entry_count", i64 1} +!23 = !{!"function_entry_count", i64 100} !1 = !{i32 1, !"ProfileSummary", !2} -!2 = !{!3, !4, !5, !6, !7, !8, !9, !10} +!2 = !{!3, !4, !5, !6, !7, !8, !9, !10, !11} !3 = !{!"ProfileFormat", !"InstrProf"} !4 = !{!"TotalCount", i64 10000} !5 = !{!"MaxCount", i64 10} @@ -44,8 +44,9 @@ !7 = !{!"MaxFunctionCount", i64 1000} !8 = !{!"NumCounts", i64 3} !9 = !{!"NumFunctions", i64 3} -!10 = !{!"DetailedSummary", !11} -!11 = !{!12, !13, !14} -!12 = !{i32 10000, i64 100, i32 1} -!13 = !{i32 999000, i64 100, i32 1} -!14 = !{i32 999999, i64 1, i32 2} +!10 = !{!"IsPartialProfile", i64 0} +!11 = !{!"DetailedSummary", !12} +!12 = !{!13, !14, !15} +!13 = !{i32 10000, i64 100, i32 1} +!14 = !{i32 999000, i64 100, i32 1} +!15 = !{i32 999999, i64 1, i32 2} Index: llvm/test/Bitcode/thinlto-function-summary-callgraph-profile-summary.ll =================================================================== --- llvm/test/Bitcode/thinlto-function-summary-callgraph-profile-summary.ll +++ llvm/test/Bitcode/thinlto-function-summary-callgraph-profile-summary.ll @@ -47,9 +47,9 @@ ; CHECK-LABEL: +; CHECK-NEXT: ; op4=hot1 op6=cold op8=hot2 op10=hot4 op12=none1 op14=hot3 op16=none2 op18=none3 op20=123 -; CHECK-NEXT: +; CHECK-NEXT: ; CHECK-NEXT: ; CHECK: +; CHECK-NEXT: ; op4=none1 op6=hot1 op8=cold1 op10=none2 op12=hot2 op14=cold2 op16=none3 op18=hot3 op20=cold3 op22=123 -; CHECK-NEXT: +; CHECK-NEXT: ; CHECK-NEXT: ; CHECK: 256, change. ; CHECK-DARWIN: {{b|bl}} _bzero ; CHECK-LINUX: {{b|bl}} memset -define void @fct5(i8* %ptr) !prof !14 { +define void @fct5(i8* %ptr) !prof !15 { entry: %tmp = tail call i64 @llvm.objectsize.i64(i8* %ptr, i1 false) %call = tail call i8* @__memset_chk(i8* %ptr, i32 0, i64 257, i64 %tmp) @@ -65,7 +65,7 @@ ; Size = unknown, change. ; CHECK-DARWIN: {{b|bl}} _bzero ; CHECK-LINUX: {{b|bl}} memset -define void @fct6(i8* %ptr, i32 %unknown) !prof !14 { +define void @fct6(i8* %ptr, i32 %unknown) !prof !15 { entry: %conv = sext i32 %unknown to i64 %tmp = tail call i64 @llvm.objectsize.i64(i8* %ptr, i1 false) @@ -80,7 +80,7 @@ ; memset with something that is not a zero, no change. ; CHECK-DARWIN: {{b|bl}} _memset ; CHECK-LINUX: {{b|bl}} memset -define void @fct7(i8* %ptr) !prof !14 { +define void @fct7(i8* %ptr) !prof !15 { entry: %tmp = tail call i64 @llvm.objectsize.i64(i8* %ptr, i1 false) %call = tail call i8* @__memset_chk(i8* %ptr, i32 1, i64 256, i64 %tmp) @@ -91,7 +91,7 @@ ; memset with something that is not a zero, no change. ; CHECK-DARWIN: {{b|bl}} _memset ; CHECK-LINUX: {{b|bl}} memset -define void @fct8(i8* %ptr) !prof !14 { +define void @fct8(i8* %ptr) !prof !15 { entry: %tmp = tail call i64 @llvm.objectsize.i64(i8* %ptr, i1 false) %call = tail call i8* @__memset_chk(i8* %ptr, i32 1, i64 257, i64 %tmp) @@ -102,7 +102,7 @@ ; memset with something that is not a zero, no change. ; CHECK-DARWIN: {{b|bl}} _memset ; CHECK-LINUX: {{b|bl}} memset -define void @fct9(i8* %ptr, i32 %unknown) !prof !14 { +define void @fct9(i8* %ptr, i32 %unknown) !prof !15 { entry: %conv = sext i32 %unknown to i64 %tmp = tail call i64 @llvm.objectsize.i64(i8* %ptr, i1 false) @@ -112,7 +112,7 @@ !llvm.module.flags = !{!0} !0 = !{i32 1, !"ProfileSummary", !1} -!1 = !{!2, !3, !4, !5, !6, !7, !8, !9} +!1 = !{!2, !3, !4, !5, !6, !7, !8, !9, !10} !2 = !{!"ProfileFormat", !"InstrProf"} !3 = !{!"TotalCount", i64 10000} !4 = !{!"MaxCount", i64 10} @@ -120,9 +120,10 @@ !6 = !{!"MaxFunctionCount", i64 1000} !7 = !{!"NumCounts", i64 3} !8 = !{!"NumFunctions", i64 3} -!9 = !{!"DetailedSummary", !10} -!10 = !{!11, !12, !13} -!11 = !{i32 10000, i64 100, i32 1} -!12 = !{i32 999000, i64 100, i32 1} -!13 = !{i32 999999, i64 1, i32 2} -!14 = !{!"function_entry_count", i64 0} +!9 = !{!"IsPartialProfile", i64 0} +!10 = !{!"DetailedSummary", !11} +!11 = !{!12, !13, !14} +!12 = !{i32 10000, i64 100, i32 1} +!13 = !{i32 999000, i64 100, i32 1} +!14 = !{i32 999999, i64 1, i32 2} +!15 = !{!"function_entry_count", i64 0} Index: llvm/test/CodeGen/AArch64/max-jump-table.ll =================================================================== --- llvm/test/CodeGen/AArch64/max-jump-table.ll +++ llvm/test/CodeGen/AArch64/max-jump-table.ll @@ -262,7 +262,7 @@ return: ret i32 %b } -define i32 @jt1_pgso(i32 %a, i32 %b) !prof !14 { +define i32 @jt1_pgso(i32 %a, i32 %b) !prof !15 { entry: switch i32 %a, label %return [ i32 1, label %bb1 @@ -322,7 +322,7 @@ !llvm.module.flags = !{!0} !0 = !{i32 1, !"ProfileSummary", !1} -!1 = !{!2, !3, !4, !5, !6, !7, !8, !9} +!1 = !{!2, !3, !4, !5, !6, !7, !8, !9, !10} !2 = !{!"ProfileFormat", !"InstrProf"} !3 = !{!"TotalCount", i64 10000} !4 = !{!"MaxCount", i64 10} @@ -330,9 +330,10 @@ !6 = !{!"MaxFunctionCount", i64 1000} !7 = !{!"NumCounts", i64 3} !8 = !{!"NumFunctions", i64 3} -!9 = !{!"DetailedSummary", !10} -!10 = !{!11, !12, !13} -!11 = !{i32 10000, i64 100, i32 1} -!12 = !{i32 999000, i64 100, i32 1} -!13 = !{i32 999999, i64 1, i32 2} -!14 = !{!"function_entry_count", i64 0} +!9 = !{!"IsPartialProfile", i64 0} +!10 = !{!"DetailedSummary", !11} +!11 = !{!12, !13, !14} +!12 = !{i32 10000, i64 100, i32 1} +!13 = !{i32 999000, i64 100, i32 1} +!14 = !{i32 999999, i64 1, i32 2} +!15 = !{!"function_entry_count", i64 0} Index: llvm/test/CodeGen/ARM/constantpool-align.ll =================================================================== --- llvm/test/CodeGen/ARM/constantpool-align.ll +++ llvm/test/CodeGen/ARM/constantpool-align.ll @@ -21,14 +21,14 @@ ; CHECK-LABEL: f_pgso: ; CHECK: vld1.64 {{.*}}, [r1] ; CHECK: .p2align 3 -define void @f_pgso(<4 x i32>* %p) !prof !14 { +define void @f_pgso(<4 x i32>* %p) !prof !15 { store <4 x i32> , <4 x i32>* %p, align 4 ret void } !llvm.module.flags = !{!0} !0 = !{i32 1, !"ProfileSummary", !1} -!1 = !{!2, !3, !4, !5, !6, !7, !8, !9} +!1 = !{!2, !3, !4, !5, !6, !7, !8, !9, !10} !2 = !{!"ProfileFormat", !"InstrProf"} !3 = !{!"TotalCount", i64 10000} !4 = !{!"MaxCount", i64 10} @@ -36,9 +36,10 @@ !6 = !{!"MaxFunctionCount", i64 1000} !7 = !{!"NumCounts", i64 3} !8 = !{!"NumFunctions", i64 3} -!9 = !{!"DetailedSummary", !10} -!10 = !{!11, !12, !13} -!11 = !{i32 10000, i64 100, i32 1} -!12 = !{i32 999000, i64 100, i32 1} -!13 = !{i32 999999, i64 1, i32 2} -!14 = !{!"function_entry_count", i64 0} +!9 = !{!"IsPartialProfile", i64 0} +!10 = !{!"DetailedSummary", !11} +!11 = !{!12, !13, !14} +!12 = !{i32 10000, i64 100, i32 1} +!13 = !{i32 999000, i64 100, i32 1} +!14 = !{i32 999999, i64 1, i32 2} +!15 = !{!"function_entry_count", i64 0} Index: llvm/test/CodeGen/RISCV/tail-calls.ll =================================================================== --- llvm/test/CodeGen/RISCV/tail-calls.ll +++ llvm/test/CodeGen/RISCV/tail-calls.ll @@ -25,7 +25,7 @@ ; Perform tail call optimization for external symbol. @dest_pgso = global [2 x i8] zeroinitializer -define void @caller_extern_pgso(i8* %src) !prof !14 { +define void @caller_extern_pgso(i8* %src) !prof !15 { entry: ; CHECK: caller_extern_pgso ; CHECK-NOT: call memcpy @@ -214,7 +214,7 @@ !llvm.module.flags = !{!0} !0 = !{i32 1, !"ProfileSummary", !1} -!1 = !{!2, !3, !4, !5, !6, !7, !8, !9} +!1 = !{!2, !3, !4, !5, !6, !7, !8, !9, !10} !2 = !{!"ProfileFormat", !"InstrProf"} !3 = !{!"TotalCount", i64 10000} !4 = !{!"MaxCount", i64 10} @@ -222,9 +222,10 @@ !6 = !{!"MaxFunctionCount", i64 1000} !7 = !{!"NumCounts", i64 3} !8 = !{!"NumFunctions", i64 3} -!9 = !{!"DetailedSummary", !10} -!10 = !{!11, !12, !13} -!11 = !{i32 10000, i64 100, i32 1} -!12 = !{i32 999000, i64 100, i32 1} -!13 = !{i32 999999, i64 1, i32 2} -!14 = !{!"function_entry_count", i64 0} +!9 = !{!"IsPartialProfile", i64 0} +!10 = !{!"DetailedSummary", !11} +!11 = !{!12, !13, !14} +!12 = !{i32 10000, i64 100, i32 1} +!13 = !{i32 999000, i64 100, i32 1} +!14 = !{i32 999999, i64 1, i32 2} +!15 = !{!"function_entry_count", i64 0} Index: llvm/test/CodeGen/X86/atom-pad-short-functions.ll =================================================================== --- llvm/test/CodeGen/X86/atom-pad-short-functions.ll +++ llvm/test/CodeGen/X86/atom-pad-short-functions.ll @@ -29,7 +29,7 @@ ret i32 %a } -define i32 @test_pgso(i32 %a) nounwind !prof !14 { +define i32 @test_pgso(i32 %a) nounwind !prof !15 { ; CHECK: test_pgso ; CHECK: movl ; CHECK-NEXT: ret @@ -110,7 +110,7 @@ !llvm.module.flags = !{!0} !0 = !{i32 1, !"ProfileSummary", !1} -!1 = !{!2, !3, !4, !5, !6, !7, !8, !9} +!1 = !{!2, !3, !4, !5, !6, !7, !8, !9, !10} !2 = !{!"ProfileFormat", !"InstrProf"} !3 = !{!"TotalCount", i64 10000} !4 = !{!"MaxCount", i64 10} @@ -118,9 +118,10 @@ !6 = !{!"MaxFunctionCount", i64 1000} !7 = !{!"NumCounts", i64 3} !8 = !{!"NumFunctions", i64 3} -!9 = !{!"DetailedSummary", !10} -!10 = !{!11, !12, !13} -!11 = !{i32 10000, i64 100, i32 1} -!12 = !{i32 999000, i64 100, i32 1} -!13 = !{i32 999999, i64 1, i32 2} -!14 = !{!"function_entry_count", i64 0} +!9 = !{!"IsPartialProfile", i64 0} +!10 = !{!"DetailedSummary", !11} +!11 = !{!12, !13, !14} +!12 = !{i32 10000, i64 100, i32 1} +!13 = !{i32 999000, i64 100, i32 1} +!14 = !{i32 999999, i64 1, i32 2} +!15 = !{!"function_entry_count", i64 0} Index: llvm/test/CodeGen/X86/avx-cvt.ll =================================================================== --- llvm/test/CodeGen/X86/avx-cvt.ll +++ llvm/test/CodeGen/X86/avx-cvt.ll @@ -190,7 +190,7 @@ ret float %res } -define float @floor_f32_load_pgso(float* %aptr) !prof !14 { +define float @floor_f32_load_pgso(float* %aptr) !prof !15 { ; CHECK-LABEL: floor_f32_load_pgso: ; CHECK: # %bb.0: ; CHECK-NEXT: vroundss $9, (%rdi), %xmm0, %xmm0 @@ -210,7 +210,7 @@ ret double %res } -define double @nearbyint_f64_load_pgso(double* %aptr) !prof !14 { +define double @nearbyint_f64_load_pgso(double* %aptr) !prof !15 { ; CHECK-LABEL: nearbyint_f64_load_pgso: ; CHECK: # %bb.0: ; CHECK-NEXT: vroundsd $12, (%rdi), %xmm0, %xmm0 @@ -222,7 +222,7 @@ !llvm.module.flags = !{!0} !0 = !{i32 1, !"ProfileSummary", !1} -!1 = !{!2, !3, !4, !5, !6, !7, !8, !9} +!1 = !{!2, !3, !4, !5, !6, !7, !8, !9, !10} !2 = !{!"ProfileFormat", !"InstrProf"} !3 = !{!"TotalCount", i64 10000} !4 = !{!"MaxCount", i64 10} @@ -230,9 +230,10 @@ !6 = !{!"MaxFunctionCount", i64 1000} !7 = !{!"NumCounts", i64 3} !8 = !{!"NumFunctions", i64 3} -!9 = !{!"DetailedSummary", !10} -!10 = !{!11, !12, !13} -!11 = !{i32 10000, i64 100, i32 1} -!12 = !{i32 999000, i64 100, i32 1} -!13 = !{i32 999999, i64 1, i32 2} -!14 = !{!"function_entry_count", i64 0} +!9 = !{!"IsPartialProfile", i64 0} +!10 = !{!"DetailedSummary", !11} +!11 = !{!12, !13, !14} +!12 = !{i32 10000, i64 100, i32 1} +!13 = !{i32 999000, i64 100, i32 1} +!14 = !{i32 999999, i64 1, i32 2} +!15 = !{!"function_entry_count", i64 0} Index: llvm/test/CodeGen/X86/avx512-mask-op.ll =================================================================== --- llvm/test/CodeGen/X86/avx512-mask-op.ll +++ llvm/test/CodeGen/X86/avx512-mask-op.ll @@ -1945,7 +1945,7 @@ ret <32 x i16> %ret } -define <32 x i16> @test_build_vec_v32i1_pgso(<32 x i16> %x) !prof !14 { +define <32 x i16> @test_build_vec_v32i1_pgso(<32 x i16> %x) !prof !15 { ; KNL-LABEL: test_build_vec_v32i1_pgso: ; KNL: ## %bb.0: ; KNL-NEXT: vandps {{.*}}(%rip), %ymm0, %ymm1 @@ -5698,7 +5698,7 @@ !llvm.module.flags = !{!0} !0 = !{i32 1, !"ProfileSummary", !1} -!1 = !{!2, !3, !4, !5, !6, !7, !8, !9} +!1 = !{!2, !3, !4, !5, !6, !7, !8, !9, !10} !2 = !{!"ProfileFormat", !"InstrProf"} !3 = !{!"TotalCount", i64 10000} !4 = !{!"MaxCount", i64 10} @@ -5706,9 +5706,10 @@ !6 = !{!"MaxFunctionCount", i64 1000} !7 = !{!"NumCounts", i64 3} !8 = !{!"NumFunctions", i64 3} -!9 = !{!"DetailedSummary", !10} -!10 = !{!11, !12, !13} -!11 = !{i32 10000, i64 100, i32 1} -!12 = !{i32 999000, i64 100, i32 1} -!13 = !{i32 999999, i64 1, i32 2} -!14 = !{!"function_entry_count", i64 0} +!9 = !{!"IsPartialProfile", i64 0} +!10 = !{!"DetailedSummary", !11} +!11 = !{!12, !13, !14} +!12 = !{i32 10000, i64 100, i32 1} +!13 = !{i32 999000, i64 100, i32 1} +!14 = !{i32 999999, i64 1, i32 2} +!15 = !{!"function_entry_count", i64 0} Index: llvm/test/CodeGen/X86/bypass-slow-division-tune.ll =================================================================== --- llvm/test/CodeGen/X86/bypass-slow-division-tune.ll +++ llvm/test/CodeGen/X86/bypass-slow-division-tune.ll @@ -138,7 +138,7 @@ ret i64 %div } -define i64 @div64_pgso(i64 %a, i64 %b) !prof !15 { +define i64 @div64_pgso(i64 %a, i64 %b) !prof !16 { ; CHECK-LABEL: div64_pgso: ; CHECK: # %bb.0: ; CHECK-NEXT: movq %rdi, %rax @@ -246,7 +246,7 @@ ret i32 %div } -define i32 @div32_pgso(i32 %a, i32 %b) !prof !15 { +define i32 @div32_pgso(i32 %a, i32 %b) !prof !16 { ; CHECK-LABEL: div32_pgso: ; CHECK: # %bb.0: ; CHECK-NEXT: movl %edi, %eax @@ -284,7 +284,7 @@ !llvm.module.flags = !{!1} !1 = !{i32 1, !"ProfileSummary", !2} -!2 = !{!3, !4, !5, !6, !7, !8, !9, !10} +!2 = !{!3, !4, !5, !6, !7, !8, !9, !10, !11} !3 = !{!"ProfileFormat", !"InstrProf"} !4 = !{!"TotalCount", i64 10000} !5 = !{!"MaxCount", i64 1000} @@ -292,9 +292,10 @@ !7 = !{!"MaxFunctionCount", i64 1000} !8 = !{!"NumCounts", i64 3} !9 = !{!"NumFunctions", i64 3} -!10 = !{!"DetailedSummary", !11} -!11 = !{!12, !13, !14} -!12 = !{i32 10000, i64 1000, i32 1} -!13 = !{i32 999000, i64 1000, i32 3} -!14 = !{i32 999999, i64 5, i32 3} -!15 = !{!"function_entry_count", i64 0} +!10 = !{!"IsPartialProfile", i64 0} +!11 = !{!"DetailedSummary", !12} +!12 = !{!13, !14, !15} +!13 = !{i32 10000, i64 1000, i32 1} +!14 = !{i32 999000, i64 1000, i32 3} +!15 = !{i32 999999, i64 5, i32 3} +!16 = !{!"function_entry_count", i64 0} Index: llvm/test/CodeGen/X86/cmov-into-branch.ll =================================================================== --- llvm/test/CodeGen/X86/cmov-into-branch.ll +++ llvm/test/CodeGen/X86/cmov-into-branch.ll @@ -88,7 +88,7 @@ ; CHECK-NEXT: cmovnel %edi, %eax ; CHECK-NEXT: retq %cmp = icmp ne i32 %a, 0 - %sel = select i1 %cmp, i32 %a, i32 %b, !prof !15 + %sel = select i1 %cmp, i32 %a, i32 %b, !prof !16 ret i32 %sel } @@ -104,7 +104,7 @@ ; CHECK-NEXT: .LBB6_2: # %select.end ; CHECK-NEXT: retq %cmp = icmp ne i32 %a, 0 - %sel = select i1 %cmp, i32 %a, i32 %b, !prof !16 + %sel = select i1 %cmp, i32 %a, i32 %b, !prof !17 ret i32 %sel } @@ -124,7 +124,7 @@ ; CHECK-NEXT: movl %esi, %eax ; CHECK-NEXT: retq %cmp = icmp ne i32 %a, 0 - %sel = select i1 %cmp, i32 %a, i32 %b, !prof !17 + %sel = select i1 %cmp, i32 %a, i32 %b, !prof !18 ret i32 %sel } @@ -137,7 +137,7 @@ ; CHECK-NEXT: cmovnel %edi, %eax ; CHECK-NEXT: retq %cmp = icmp ne i32 %a, 0 - %sel = select i1 %cmp, i32 %a, i32 %b, !prof !18 + %sel = select i1 %cmp, i32 %a, i32 %b, !prof !19 ret i32 %sel } @@ -149,11 +149,11 @@ ; CHECK-NEXT: cmovnel %edi, %eax ; CHECK-NEXT: retq %cmp = icmp ne i32 %a, 0 - %sel = select i1 %cmp, i32 %a, i32 %b, !prof !16 + %sel = select i1 %cmp, i32 %a, i32 %b, !prof !17 ret i32 %sel } -define i32 @weighted_select_pgso(i32 %a, i32 %b) !prof !14 { +define i32 @weighted_select_pgso(i32 %a, i32 %b) !prof !15 { ; CHECK-LABEL: weighted_select_pgso: ; CHECK: # %bb.0: ; CHECK-NEXT: movl %esi, %eax @@ -161,12 +161,12 @@ ; CHECK-NEXT: cmovnel %edi, %eax ; CHECK-NEXT: retq %cmp = icmp ne i32 %a, 0 - %sel = select i1 %cmp, i32 %a, i32 %b, !prof !16 + %sel = select i1 %cmp, i32 %a, i32 %b, !prof !17 ret i32 %sel } ; If two selects in a row are predictable, turn them into branches. -define i32 @weighted_selects(i32 %a, i32 %b) !prof !19 { +define i32 @weighted_selects(i32 %a, i32 %b) !prof !20 { ; CHECK-LABEL: weighted_selects: ; CHECK: # %bb.0: ; CHECK-NEXT: movl %esi, %eax @@ -183,15 +183,15 @@ ; CHECK-NEXT: .LBB11_4: # %select.end1 ; CHECK-NEXT: retq %cmp = icmp ne i32 %a, 0 - %sel = select i1 %cmp, i32 %a, i32 %b, !prof !16 + %sel = select i1 %cmp, i32 %a, i32 %b, !prof !17 %cmp1 = icmp ne i32 %sel, 0 - %sel1 = select i1 %cmp1, i32 %b, i32 %a, !prof !16 + %sel1 = select i1 %cmp1, i32 %b, i32 %a, !prof !17 ret i32 %sel1 } !llvm.module.flags = !{!0} !0 = !{i32 1, !"ProfileSummary", !1} -!1 = !{!2, !3, !4, !5, !6, !7, !8, !9} +!1 = !{!2, !3, !4, !5, !6, !7, !8, !9, !10} !2 = !{!"ProfileFormat", !"InstrProf"} !3 = !{!"TotalCount", i64 10000} !4 = !{!"MaxCount", i64 10} @@ -199,14 +199,15 @@ !6 = !{!"MaxFunctionCount", i64 1000} !7 = !{!"NumCounts", i64 3} !8 = !{!"NumFunctions", i64 3} -!9 = !{!"DetailedSummary", !10} -!10 = !{!11, !12, !13} -!11 = !{i32 10000, i64 100, i32 1} -!12 = !{i32 999000, i64 100, i32 1} -!13 = !{i32 999999, i64 1, i32 2} -!14 = !{!"function_entry_count", i64 0} -!15 = !{!"branch_weights", i32 1, i32 99} -!16 = !{!"branch_weights", i32 1, i32 100} -!17 = !{!"branch_weights", i32 100, i32 1} -!18 = !{!"branch_weights", i32 0, i32 0} -!19 = !{!"function_entry_count", i64 100} +!9 = !{!"IsPartialProfile", i64 0} +!10 = !{!"DetailedSummary", !11} +!11 = !{!12, !13, !14} +!12 = !{i32 10000, i64 100, i32 1} +!13 = !{i32 999000, i64 100, i32 1} +!14 = !{i32 999999, i64 1, i32 2} +!15 = !{!"function_entry_count", i64 0} +!16 = !{!"branch_weights", i32 1, i32 99} +!17 = !{!"branch_weights", i32 1, i32 100} +!18 = !{!"branch_weights", i32 100, i32 1} +!19 = !{!"branch_weights", i32 0, i32 0} +!20 = !{!"function_entry_count", i64 100} Index: llvm/test/CodeGen/X86/conditional-tailcall-pgso.ll =================================================================== --- llvm/test/CodeGen/X86/conditional-tailcall-pgso.ll +++ llvm/test/CodeGen/X86/conditional-tailcall-pgso.ll @@ -6,7 +6,7 @@ declare void @foo() declare void @bar() -define void @f(i32 %x, i32 %y) !prof !14 { +define void @f(i32 %x, i32 %y) !prof !15 { ; CHECK32-LABEL: f: ; CHECK32: # %bb.0: # %entry ; CHECK32-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04] @@ -53,7 +53,7 @@ ; Check that the asm doesn't just look good, but uses the correct encoding. } -define void @f_non_leaf(i32 %x, i32 %y) !prof !14 { +define void @f_non_leaf(i32 %x, i32 %y) !prof !15 { ; CHECK32-LABEL: f_non_leaf: ; CHECK32: # %bb.0: # %entry ; CHECK32-NEXT: pushl %ebx # encoding: [0x53] @@ -144,7 +144,7 @@ } declare x86_thiscallcc zeroext i1 @baz(i8*, i32) -define x86_thiscallcc zeroext i1 @BlockPlacementTest(i8* %this, i32 %x) !prof !14 { +define x86_thiscallcc zeroext i1 @BlockPlacementTest(i8* %this, i32 %x) !prof !15 { ; CHECK32-LABEL: BlockPlacementTest: ; CHECK32: # %bb.0: # %entry ; CHECK32-NEXT: movl {{[0-9]+}}(%esp), %edx # encoding: [0x8b,0x54,0x24,0x04] @@ -226,7 +226,7 @@ !llvm.module.flags = !{!0} !0 = !{i32 1, !"ProfileSummary", !1} -!1 = !{!2, !3, !4, !5, !6, !7, !8, !9} +!1 = !{!2, !3, !4, !5, !6, !7, !8, !9, !10} !2 = !{!"ProfileFormat", !"InstrProf"} !3 = !{!"TotalCount", i64 10000} !4 = !{!"MaxCount", i64 10} @@ -234,9 +234,10 @@ !6 = !{!"MaxFunctionCount", i64 1000} !7 = !{!"NumCounts", i64 3} !8 = !{!"NumFunctions", i64 3} -!9 = !{!"DetailedSummary", !10} -!10 = !{!11, !12, !13} -!11 = !{i32 10000, i64 100, i32 1} -!12 = !{i32 999000, i64 100, i32 1} -!13 = !{i32 999999, i64 1, i32 2} -!14 = !{!"function_entry_count", i64 0} +!9 = !{!"IsPartialProfile", i64 0} +!10 = !{!"DetailedSummary", !11} +!11 = !{!12, !13, !14} +!12 = !{i32 10000, i64 100, i32 1} +!13 = !{i32 999000, i64 100, i32 1} +!14 = !{i32 999999, i64 1, i32 2} +!15 = !{!"function_entry_count", i64 0} Index: llvm/test/CodeGen/X86/fixup-lea.ll =================================================================== --- llvm/test/CodeGen/X86/fixup-lea.ll +++ llvm/test/CodeGen/X86/fixup-lea.ll @@ -108,7 +108,7 @@ ret void } -define void @foo_pgso(i32 inreg %dns) !prof !14 { +define void @foo_pgso(i32 inreg %dns) !prof !15 { ; SLOW-LABEL: foo_pgso: ; SLOW: # %bb.0: # %entry ; SLOW-NEXT: xorl %ecx, %ecx @@ -148,7 +148,7 @@ ret void } -define void @bar_pgso(i32 inreg %dns) !prof !14 { +define void @bar_pgso(i32 inreg %dns) !prof !15 { ; SLOW-LABEL: bar_pgso: ; SLOW: # %bb.0: # %entry ; SLOW-NEXT: xorl %ecx, %ecx @@ -268,7 +268,7 @@ !llvm.module.flags = !{!0} !0 = !{i32 1, !"ProfileSummary", !1} -!1 = !{!2, !3, !4, !5, !6, !7, !8, !9} +!1 = !{!2, !3, !4, !5, !6, !7, !8, !9, !10} !2 = !{!"ProfileFormat", !"InstrProf"} !3 = !{!"TotalCount", i64 10000} !4 = !{!"MaxCount", i64 10} @@ -276,9 +276,10 @@ !6 = !{!"MaxFunctionCount", i64 1000} !7 = !{!"NumCounts", i64 3} !8 = !{!"NumFunctions", i64 3} -!9 = !{!"DetailedSummary", !10} -!10 = !{!11, !12, !13} -!11 = !{i32 10000, i64 100, i32 1} -!12 = !{i32 999000, i64 100, i32 1} -!13 = !{i32 999999, i64 1, i32 2} -!14 = !{!"function_entry_count", i64 0} +!9 = !{!"IsPartialProfile", i64 0} +!10 = !{!"DetailedSummary", !11} +!11 = !{!12, !13, !14} +!12 = !{i32 10000, i64 100, i32 1} +!13 = !{i32 999000, i64 100, i32 1} +!14 = !{i32 999999, i64 1, i32 2} +!15 = !{!"function_entry_count", i64 0} Index: llvm/test/CodeGen/X86/fold-load-unops.ll =================================================================== --- llvm/test/CodeGen/X86/fold-load-unops.ll +++ llvm/test/CodeGen/X86/fold-load-unops.ll @@ -113,7 +113,7 @@ ret <4 x float> %res } -define float @rcpss_pgso(float* %a) !prof !14 { +define float @rcpss_pgso(float* %a) !prof !15 { ; SSE-LABEL: rcpss_pgso: ; SSE: # %bb.0: ; SSE-NEXT: rcpss (%rdi), %xmm0 @@ -130,7 +130,7 @@ ret float %ext } -define <4 x float> @rcpss_full_pgso(<4 x float>* %a) !prof !14 { +define <4 x float> @rcpss_full_pgso(<4 x float>* %a) !prof !15 { ; SSE-LABEL: rcpss_full_pgso: ; SSE: # %bb.0: ; SSE-NEXT: rcpss (%rdi), %xmm0 @@ -177,7 +177,7 @@ ret <4 x float> %res } -define float @rsqrtss_pgso(float* %a) !prof !14 { +define float @rsqrtss_pgso(float* %a) !prof !15 { ; SSE-LABEL: rsqrtss_pgso: ; SSE: # %bb.0: ; SSE-NEXT: rsqrtss (%rdi), %xmm0 @@ -194,7 +194,7 @@ ret float %ext } -define <4 x float> @rsqrtss_full_pgso(<4 x float>* %a) !prof !14 { +define <4 x float> @rsqrtss_full_pgso(<4 x float>* %a) !prof !15 { ; SSE-LABEL: rsqrtss_full_pgso: ; SSE: # %bb.0: ; SSE-NEXT: rsqrtss (%rdi), %xmm0 @@ -260,7 +260,7 @@ ret <4 x float> %res } -define float @sqrtss_pgso(float* %a) !prof !14 { +define float @sqrtss_pgso(float* %a) !prof !15 { ; SSE-LABEL: sqrtss_pgso: ; SSE: # %bb.0: ; SSE-NEXT: sqrtss (%rdi), %xmm0 @@ -277,7 +277,7 @@ ret float %ext } -define <4 x float> @sqrtss_full_pgso(<4 x float>* %a) !prof !14 { +define <4 x float> @sqrtss_full_pgso(<4 x float>* %a) !prof !15 { ; SSE-LABEL: sqrtss_full_pgso: ; SSE: # %bb.0: ; SSE-NEXT: movaps (%rdi), %xmm0 @@ -294,7 +294,7 @@ ret <4 x float> %res } -define <4 x float> @sqrtss_full_pgso_volatile(<4 x float>* %a) !prof !14 { +define <4 x float> @sqrtss_full_pgso_volatile(<4 x float>* %a) !prof !15 { ; SSE-LABEL: sqrtss_full_pgso_volatile: ; SSE: # %bb.0: ; SSE-NEXT: movaps (%rdi), %xmm0 @@ -362,7 +362,7 @@ ret <2 x double> %res } -define double @sqrtsd_pgso(double* %a) !prof !14 { +define double @sqrtsd_pgso(double* %a) !prof !15 { ; SSE-LABEL: sqrtsd_pgso: ; SSE: # %bb.0: ; SSE-NEXT: sqrtsd (%rdi), %xmm0 @@ -379,7 +379,7 @@ ret double %ext } -define <2 x double> @sqrtsd_full_pgso(<2 x double>* %a) !prof !14 { +define <2 x double> @sqrtsd_full_pgso(<2 x double>* %a) !prof !15 { ; SSE-LABEL: sqrtsd_full_pgso: ; SSE: # %bb.0: ; SSE-NEXT: movapd (%rdi), %xmm0 @@ -396,7 +396,7 @@ ret <2 x double> %res } -define <2 x double> @sqrtsd_full_pgso_volatile(<2 x double>* %a) !prof !14 { +define <2 x double> @sqrtsd_full_pgso_volatile(<2 x double>* %a) !prof !15 { ; SSE-LABEL: sqrtsd_full_pgso_volatile: ; SSE: # %bb.0: ; SSE-NEXT: movapd (%rdi), %xmm0 @@ -420,7 +420,7 @@ !llvm.module.flags = !{!0} !0 = !{i32 1, !"ProfileSummary", !1} -!1 = !{!2, !3, !4, !5, !6, !7, !8, !9} +!1 = !{!2, !3, !4, !5, !6, !7, !8, !9, !10} !2 = !{!"ProfileFormat", !"InstrProf"} !3 = !{!"TotalCount", i64 10000} !4 = !{!"MaxCount", i64 10} @@ -428,9 +428,10 @@ !6 = !{!"MaxFunctionCount", i64 1000} !7 = !{!"NumCounts", i64 3} !8 = !{!"NumFunctions", i64 3} -!9 = !{!"DetailedSummary", !10} -!10 = !{!11, !12, !13} -!11 = !{i32 10000, i64 100, i32 1} -!12 = !{i32 999000, i64 100, i32 1} -!13 = !{i32 999999, i64 1, i32 2} -!14 = !{!"function_entry_count", i64 0} +!9 = !{!"IsPartialProfile", i64 0} +!10 = !{!"DetailedSummary", !11} +!11 = !{!12, !13, !14} +!12 = !{i32 10000, i64 100, i32 1} +!13 = !{i32 999000, i64 100, i32 1} +!14 = !{i32 999999, i64 1, i32 2} +!15 = !{!"function_entry_count", i64 0} Index: llvm/test/CodeGen/X86/fshl.ll =================================================================== --- llvm/test/CodeGen/X86/fshl.ll +++ llvm/test/CodeGen/X86/fshl.ll @@ -196,7 +196,7 @@ ret i32 %tmp } -define i32 @var_shift_i32_pgso(i32 %x, i32 %y, i32 %z) nounwind !prof !14 { +define i32 @var_shift_i32_pgso(i32 %x, i32 %y, i32 %z) nounwind !prof !15 { ; X86-LABEL: var_shift_i32_pgso: ; X86: # %bb.0: ; X86-NEXT: movb {{[0-9]+}}(%esp), %cl @@ -606,7 +606,7 @@ !llvm.module.flags = !{!0} !0 = !{i32 1, !"ProfileSummary", !1} -!1 = !{!2, !3, !4, !5, !6, !7, !8, !9} +!1 = !{!2, !3, !4, !5, !6, !7, !8, !9, !10} !2 = !{!"ProfileFormat", !"InstrProf"} !3 = !{!"TotalCount", i64 10000} !4 = !{!"MaxCount", i64 10} @@ -614,9 +614,10 @@ !6 = !{!"MaxFunctionCount", i64 1000} !7 = !{!"NumCounts", i64 3} !8 = !{!"NumFunctions", i64 3} -!9 = !{!"DetailedSummary", !10} -!10 = !{!11, !12, !13} -!11 = !{i32 10000, i64 100, i32 1} -!12 = !{i32 999000, i64 100, i32 1} -!13 = !{i32 999999, i64 1, i32 2} -!14 = !{!"function_entry_count", i64 0} +!9 = !{!"IsPartialProfile", i64 0} +!10 = !{!"DetailedSummary", !11} +!11 = !{!12, !13, !14} +!12 = !{i32 10000, i64 100, i32 1} +!13 = !{i32 999000, i64 100, i32 1} +!14 = !{i32 999999, i64 1, i32 2} +!15 = !{!"function_entry_count", i64 0} Index: llvm/test/CodeGen/X86/fshr.ll =================================================================== --- llvm/test/CodeGen/X86/fshr.ll +++ llvm/test/CodeGen/X86/fshr.ll @@ -195,7 +195,7 @@ ret i32 %tmp } -define i32 @var_shift_i32_pgso(i32 %x, i32 %y, i32 %z) nounwind !prof !14 { +define i32 @var_shift_i32_pgso(i32 %x, i32 %y, i32 %z) nounwind !prof !15 { ; X86-LABEL: var_shift_i32_pgso: ; X86: # %bb.0: ; X86-NEXT: movb {{[0-9]+}}(%esp), %cl @@ -601,7 +601,7 @@ !llvm.module.flags = !{!0} !0 = !{i32 1, !"ProfileSummary", !1} -!1 = !{!2, !3, !4, !5, !6, !7, !8, !9} +!1 = !{!2, !3, !4, !5, !6, !7, !8, !9, !10} !2 = !{!"ProfileFormat", !"InstrProf"} !3 = !{!"TotalCount", i64 10000} !4 = !{!"MaxCount", i64 10} @@ -609,9 +609,10 @@ !6 = !{!"MaxFunctionCount", i64 1000} !7 = !{!"NumCounts", i64 3} !8 = !{!"NumFunctions", i64 3} -!9 = !{!"DetailedSummary", !10} -!10 = !{!11, !12, !13} -!11 = !{i32 10000, i64 100, i32 1} -!12 = !{i32 999000, i64 100, i32 1} -!13 = !{i32 999999, i64 1, i32 2} -!14 = !{!"function_entry_count", i64 0} +!9 = !{!"IsPartialProfile", i64 0} +!10 = !{!"DetailedSummary", !11} +!11 = !{!12, !13, !14} +!12 = !{i32 10000, i64 100, i32 1} +!13 = !{i32 999000, i64 100, i32 1} +!14 = !{i32 999999, i64 1, i32 2} +!15 = !{!"function_entry_count", i64 0} Index: llvm/test/CodeGen/X86/haddsub.ll =================================================================== --- llvm/test/CodeGen/X86/haddsub.ll +++ llvm/test/CodeGen/X86/haddsub.ll @@ -1983,7 +1983,7 @@ ret float %x230 } -define float @hadd32_4_pgso(<4 x float> %x225) !prof !14 { +define float @hadd32_4_pgso(<4 x float> %x225) !prof !15 { ; SSE3-LABEL: hadd32_4_pgso: ; SSE3: # %bb.0: ; SSE3-NEXT: movaps %xmm0, %xmm1 @@ -2007,7 +2007,7 @@ ret float %x230 } -define float @hadd32_8_pgso(<8 x float> %x225) !prof !14 { +define float @hadd32_8_pgso(<8 x float> %x225) !prof !15 { ; SSE3-LABEL: hadd32_8_pgso: ; SSE3: # %bb.0: ; SSE3-NEXT: movaps %xmm0, %xmm1 @@ -2032,7 +2032,7 @@ ret float %x230 } -define float @hadd32_16_pgso(<16 x float> %x225) !prof !14 { +define float @hadd32_16_pgso(<16 x float> %x225) !prof !15 { ; SSE3-LABEL: hadd32_16_pgso: ; SSE3: # %bb.0: ; SSE3-NEXT: movaps %xmm0, %xmm1 @@ -2192,7 +2192,7 @@ !llvm.module.flags = !{!0} !0 = !{i32 1, !"ProfileSummary", !1} -!1 = !{!2, !3, !4, !5, !6, !7, !8, !9} +!1 = !{!2, !3, !4, !5, !6, !7, !8, !9, !10} !2 = !{!"ProfileFormat", !"InstrProf"} !3 = !{!"TotalCount", i64 10000} !4 = !{!"MaxCount", i64 10} @@ -2200,9 +2200,10 @@ !6 = !{!"MaxFunctionCount", i64 1000} !7 = !{!"NumCounts", i64 3} !8 = !{!"NumFunctions", i64 3} -!9 = !{!"DetailedSummary", !10} -!10 = !{!11, !12, !13} -!11 = !{i32 10000, i64 100, i32 1} -!12 = !{i32 999000, i64 100, i32 1} -!13 = !{i32 999999, i64 1, i32 2} -!14 = !{!"function_entry_count", i64 0} +!9 = !{!"IsPartialProfile", i64 0} +!10 = !{!"DetailedSummary", !11} +!11 = !{!12, !13, !14} +!12 = !{i32 10000, i64 100, i32 1} +!13 = !{i32 999000, i64 100, i32 1} +!14 = !{i32 999999, i64 1, i32 2} +!15 = !{!"function_entry_count", i64 0} Index: llvm/test/CodeGen/X86/immediate_merging.ll =================================================================== --- llvm/test/CodeGen/X86/immediate_merging.ll +++ llvm/test/CodeGen/X86/immediate_merging.ll @@ -75,7 +75,7 @@ ; Test PGSO to make sure immediates with multiple users don't get pulled in to ; instructions. -define i32 @foo_pgso() !prof !14 { +define i32 @foo_pgso() !prof !15 { ; X86-LABEL: foo_pgso: ; X86: # %bb.0: # %entry ; X86-NEXT: movl $1234, %eax # imm = 0x4D2 @@ -190,7 +190,7 @@ ; memset gets lowered in DAG. Constant merging should hoist all the ; immediates used to store to the individual memory locations. Make ; sure we don't directly store the immediates. -define void @foomemset_pgso() !prof !14 { +define void @foomemset_pgso() !prof !15 { ; X86-LABEL: foomemset_pgso: ; X86: # %bb.0: # %entry ; X86-NEXT: movl $555819297, %eax # imm = 0x21212121 @@ -216,7 +216,7 @@ !llvm.module.flags = !{!0} !0 = !{i32 1, !"ProfileSummary", !1} -!1 = !{!2, !3, !4, !5, !6, !7, !8, !9} +!1 = !{!2, !3, !4, !5, !6, !7, !8, !9, !10} !2 = !{!"ProfileFormat", !"InstrProf"} !3 = !{!"TotalCount", i64 10000} !4 = !{!"MaxCount", i64 10} @@ -224,9 +224,10 @@ !6 = !{!"MaxFunctionCount", i64 1000} !7 = !{!"NumCounts", i64 3} !8 = !{!"NumFunctions", i64 3} -!9 = !{!"DetailedSummary", !10} -!10 = !{!11, !12, !13} -!11 = !{i32 10000, i64 100, i32 1} -!12 = !{i32 999000, i64 100, i32 1} -!13 = !{i32 999999, i64 1, i32 2} -!14 = !{!"function_entry_count", i64 0} +!9 = !{!"IsPartialProfile", i64 0} +!10 = !{!"DetailedSummary", !11} +!11 = !{!12, !13, !14} +!12 = !{i32 10000, i64 100, i32 1} +!13 = !{i32 999000, i64 100, i32 1} +!14 = !{i32 999999, i64 1, i32 2} +!15 = !{!"function_entry_count", i64 0} Index: llvm/test/CodeGen/X86/immediate_merging64.ll =================================================================== --- llvm/test/CodeGen/X86/immediate_merging64.ll +++ llvm/test/CodeGen/X86/immediate_merging64.ll @@ -19,7 +19,7 @@ ret i1 %cmp } -define i1 @imm_multiple_users_pgso(i64 %a, i64* %b) !prof !14 { +define i1 @imm_multiple_users_pgso(i64 %a, i64* %b) !prof !15 { ; CHECK-LABEL: imm_multiple_users_pgso: ; CHECK: # %bb.0: ; CHECK-NEXT: movq $-1, %rax @@ -48,7 +48,7 @@ ret void } -define void @memset_zero_pgso(i8* noalias nocapture %D) !prof !14 { +define void @memset_zero_pgso(i8* noalias nocapture %D) !prof !15 { ; CHECK-LABEL: memset_zero_pgso: ; CHECK: # %bb.0: ; CHECK-NEXT: xorl %eax, %eax @@ -61,7 +61,7 @@ !llvm.module.flags = !{!0} !0 = !{i32 1, !"ProfileSummary", !1} -!1 = !{!2, !3, !4, !5, !6, !7, !8, !9} +!1 = !{!2, !3, !4, !5, !6, !7, !8, !9, !10} !2 = !{!"ProfileFormat", !"InstrProf"} !3 = !{!"TotalCount", i64 10000} !4 = !{!"MaxCount", i64 10} @@ -69,9 +69,10 @@ !6 = !{!"MaxFunctionCount", i64 1000} !7 = !{!"NumCounts", i64 3} !8 = !{!"NumFunctions", i64 3} -!9 = !{!"DetailedSummary", !10} -!10 = !{!11, !12, !13} -!11 = !{i32 10000, i64 100, i32 1} -!12 = !{i32 999000, i64 100, i32 1} -!13 = !{i32 999999, i64 1, i32 2} -!14 = !{!"function_entry_count", i64 0} +!9 = !{!"IsPartialProfile", i64 0} +!10 = !{!"DetailedSummary", !11} +!11 = !{!12, !13, !14} +!12 = !{i32 10000, i64 100, i32 1} +!13 = !{i32 999000, i64 100, i32 1} +!14 = !{i32 999999, i64 1, i32 2} +!15 = !{!"function_entry_count", i64 0} Index: llvm/test/CodeGen/X86/insert-prefetch.ll =================================================================== --- llvm/test/CodeGen/X86/insert-prefetch.ll +++ llvm/test/CodeGen/X86/insert-prefetch.ll @@ -16,23 +16,23 @@ target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" -define i32 @sum(i32* %arr, i32 %pos1, i32 %pos2) !dbg !35 !prof !37 { +define i32 @sum(i32* %arr, i32 %pos1, i32 %pos2) !dbg !36 !prof !38 { entry: - %idxprom = sext i32 %pos1 to i64, !dbg !38 - %arrayidx = getelementptr inbounds i32, i32* %arr, i64 %idxprom, !dbg !38 - %0 = load i32, i32* %arrayidx, align 4, !dbg !38, !tbaa !39 - %idxprom1 = sext i32 %pos2 to i64, !dbg !43 - %arrayidx2 = getelementptr inbounds i32, i32* %arr, i64 %idxprom1, !dbg !43 - %1 = load i32, i32* %arrayidx2, align 4, !dbg !43, !tbaa !39 - %add = add nsw i32 %1, %0, !dbg !44 - ret i32 %add, !dbg !45 + %idxprom = sext i32 %pos1 to i64, !dbg !39 + %arrayidx = getelementptr inbounds i32, i32* %arr, i64 %idxprom, !dbg !39 + %0 = load i32, i32* %arrayidx, align 4, !dbg !39, !tbaa !40 + %idxprom1 = sext i32 %pos2 to i64, !dbg !44 + %arrayidx2 = getelementptr inbounds i32, i32* %arr, i64 %idxprom1, !dbg !44 + %1 = load i32, i32* %arrayidx2, align 4, !dbg !44, !tbaa !40 + %add = add nsw i32 %1, %0, !dbg !45 + ret i32 %add, !dbg !46 } attributes #0 = { "target-cpu"="x86-64" } !llvm.dbg.cu = !{!0} !llvm.module.flags = !{!3, !4, !5, !6} -!llvm.ident = !{!33} +!llvm.ident = !{!34} !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, enums: !2, debugInfoForProfiling: true) !1 = !DIFile(filename: "test.cc", directory: "/tmp") @@ -41,7 +41,7 @@ !4 = !{i32 2, !"Debug Info Version", i32 3} !5 = !{i32 1, !"wchar_size", i32 4} !6 = !{i32 1, !"ProfileSummary", !7} -!7 = !{!8, !9, !10, !11, !12, !13, !14, !15} +!7 = !{!8, !9, !10, !11, !12, !13, !14, !15, !16} !8 = !{!"ProfileFormat", !"SampleProfile"} !9 = !{!"TotalCount", i64 0} !10 = !{!"MaxCount", i64 0} @@ -49,36 +49,37 @@ !12 = !{!"MaxFunctionCount", i64 0} !13 = !{!"NumCounts", i64 2} !14 = !{!"NumFunctions", i64 1} -!15 = !{!"DetailedSummary", !16} -!16 = !{!17, !18, !19, !20, !21, !22, !22, !23, !23, !24, !25, !26, !27, !28, !29, !30, !31, !32} -!17 = !{i32 10000, i64 0, i32 0} -!18 = !{i32 100000, i64 0, i32 0} -!19 = !{i32 200000, i64 0, i32 0} -!20 = !{i32 300000, i64 0, i32 0} -!21 = !{i32 400000, i64 0, i32 0} -!22 = !{i32 500000, i64 0, i32 0} -!23 = !{i32 600000, i64 0, i32 0} -!24 = !{i32 700000, i64 0, i32 0} -!25 = !{i32 800000, i64 0, i32 0} -!26 = !{i32 900000, i64 0, i32 0} -!27 = !{i32 950000, i64 0, i32 0} -!28 = !{i32 990000, i64 0, i32 0} -!29 = !{i32 999000, i64 0, i32 0} -!30 = !{i32 999900, i64 0, i32 0} -!31 = !{i32 999990, i64 0, i32 0} -!32 = !{i32 999999, i64 0, i32 0} -!33 = !{!"clang version 7.0.0 (trunk 322593) (llvm/trunk 322526)"} -!35 = distinct !DISubprogram(name: "sum", linkageName: "sum", scope: !1, file: !1, line: 15, type: !36, isLocal: false, isDefinition: true, scopeLine: 15, flags: DIFlagPrototyped, isOptimized: true, unit: !0) -!36 = !DISubroutineType(types: !2) -!37 = !{!"function_entry_count", i64 -1} -!38 = !DILocation(line: 16, column: 10, scope: !35) -!39 = !{!40, !40, i64 0} -!40 = !{!"int", !41, i64 0} -!41 = !{!"omnipotent char", !42, i64 0} -!42 = !{!"Simple C++ TBAA"} -!43 = !DILocation(line: 16, column: 22, scope: !35) -!44 = !DILocation(line: 16, column: 20, scope: !35) -!45 = !DILocation(line: 16, column: 3, scope: !35) +!15 = !{!"IsPartialProfile", i64 0} +!16 = !{!"DetailedSummary", !17} +!17 = !{!18, !19, !20, !21, !22, !23, !23, !24, !24, !25, !26, !27, !28, !29, !30, !31, !32, !33} +!18 = !{i32 10000, i64 0, i32 0} +!19 = !{i32 100000, i64 0, i32 0} +!20 = !{i32 200000, i64 0, i32 0} +!21 = !{i32 300000, i64 0, i32 0} +!22 = !{i32 400000, i64 0, i32 0} +!23 = !{i32 500000, i64 0, i32 0} +!24 = !{i32 600000, i64 0, i32 0} +!25 = !{i32 700000, i64 0, i32 0} +!26 = !{i32 800000, i64 0, i32 0} +!27 = !{i32 900000, i64 0, i32 0} +!28 = !{i32 950000, i64 0, i32 0} +!29 = !{i32 990000, i64 0, i32 0} +!30 = !{i32 999000, i64 0, i32 0} +!31 = !{i32 999900, i64 0, i32 0} +!32 = !{i32 999990, i64 0, i32 0} +!33 = !{i32 999999, i64 0, i32 0} +!34 = !{!"clang version 7.0.0 (trunk 322593) (llvm/trunk 322526)"} +!36 = distinct !DISubprogram(name: "sum", linkageName: "sum", scope: !1, file: !1, line: 15, type: !37, isLocal: false, isDefinition: true, scopeLine: 15, flags: DIFlagPrototyped, isOptimized: true, unit: !0) +!37 = !DISubroutineType(types: !2) +!38 = !{!"function_entry_count", i64 -1} +!39 = !DILocation(line: 16, column: 10, scope: !36) +!40 = !{!41, !41, i64 0} +!41 = !{!"int", !42, i64 0} +!42 = !{!"omnipotent char", !43, i64 0} +!43 = !{!"Simple C++ TBAA"} +!44 = !DILocation(line: 16, column: 22, scope: !36) +!45 = !DILocation(line: 16, column: 20, scope: !36) +!46 = !DILocation(line: 16, column: 3, scope: !36) ;CHECK-LABEL: sum: ;CHECK: # %bb.0: Index: llvm/test/CodeGen/X86/loop-blocks.ll =================================================================== --- llvm/test/CodeGen/X86/loop-blocks.ll +++ llvm/test/CodeGen/X86/loop-blocks.ll @@ -274,7 +274,7 @@ ; CHECK: .LBB6_1: ; CHECK-NEXT: callq body -define void @slightly_more_involved_2_pgso() norecurse nounwind readnone uwtable !prof !14 { +define void @slightly_more_involved_2_pgso() norecurse nounwind readnone uwtable !prof !15 { entry: br label %loop @@ -313,7 +313,7 @@ !llvm.module.flags = !{!0} !0 = !{i32 1, !"ProfileSummary", !1} -!1 = !{!2, !3, !4, !5, !6, !7, !8, !9} +!1 = !{!2, !3, !4, !5, !6, !7, !8, !9, !10} !2 = !{!"ProfileFormat", !"InstrProf"} !3 = !{!"TotalCount", i64 10000} !4 = !{!"MaxCount", i64 10} @@ -321,9 +321,10 @@ !6 = !{!"MaxFunctionCount", i64 1000} !7 = !{!"NumCounts", i64 3} !8 = !{!"NumFunctions", i64 3} -!9 = !{!"DetailedSummary", !10} -!10 = !{!11, !12, !13} -!11 = !{i32 10000, i64 100, i32 1} -!12 = !{i32 999000, i64 100, i32 1} -!13 = !{i32 999999, i64 1, i32 2} -!14 = !{!"function_entry_count", i64 0} +!9 = !{!"IsPartialProfile", i64 0} +!10 = !{!"DetailedSummary", !11} +!11 = !{!12, !13, !14} +!12 = !{i32 10000, i64 100, i32 1} +!13 = !{i32 999000, i64 100, i32 1} +!14 = !{i32 999999, i64 1, i32 2} +!15 = !{!"function_entry_count", i64 0} Index: llvm/test/CodeGen/X86/materialize.ll =================================================================== --- llvm/test/CodeGen/X86/materialize.ll +++ llvm/test/CodeGen/X86/materialize.ll @@ -37,7 +37,7 @@ ; CHECK64-NEXT: retq } -define i32 @one32_pgso() !prof !14 { +define i32 @one32_pgso() !prof !15 { entry: ret i32 1 @@ -142,7 +142,7 @@ ; CHECK32-NEXT: retl } -define i32 @minus_one32_pgso() !prof !14 { +define i32 @minus_one32_pgso() !prof !15 { entry: ret i32 -1 @@ -185,7 +185,7 @@ ; CHECK32-NEXT: retl } -define i16 @one16_pgso() !prof !14 { +define i16 @one16_pgso() !prof !15 { entry: ret i16 1 @@ -196,7 +196,7 @@ ; CHECK32-NEXT: retl } -define i16 @minus_one16_pgso() !prof !14 { +define i16 @minus_one16_pgso() !prof !15 { entry: ret i16 -1 @@ -280,7 +280,7 @@ ; CHECK32: retl } -define i32 @rematerialize_minus_one_pgso() !prof !14 { +define i32 @rematerialize_minus_one_pgso() !prof !15 { entry: ; Materialize -1 (thiscall forces it into %ecx). tail call x86_thiscallcc void @f(i32 -1) @@ -302,7 +302,7 @@ ; CHECK32: retl } -define i32 @rematerialize_minus_one_eflags_pgso(i32 %x) !prof !14 { +define i32 @rematerialize_minus_one_eflags_pgso(i32 %x) !prof !15 { entry: ; Materialize -1 (thiscall forces it into %ecx). tail call x86_thiscallcc void @f(i32 -1) @@ -335,7 +335,7 @@ !llvm.module.flags = !{!0} !0 = !{i32 1, !"ProfileSummary", !1} -!1 = !{!2, !3, !4, !5, !6, !7, !8, !9} +!1 = !{!2, !3, !4, !5, !6, !7, !8, !9, !10} !2 = !{!"ProfileFormat", !"InstrProf"} !3 = !{!"TotalCount", i64 10000} !4 = !{!"MaxCount", i64 10} @@ -343,9 +343,10 @@ !6 = !{!"MaxFunctionCount", i64 1000} !7 = !{!"NumCounts", i64 3} !8 = !{!"NumFunctions", i64 3} -!9 = !{!"DetailedSummary", !10} -!10 = !{!11, !12, !13} -!11 = !{i32 10000, i64 100, i32 1} -!12 = !{i32 999000, i64 100, i32 1} -!13 = !{i32 999999, i64 1, i32 2} -!14 = !{!"function_entry_count", i64 0} +!9 = !{!"IsPartialProfile", i64 0} +!10 = !{!"DetailedSummary", !11} +!11 = !{!12, !13, !14} +!12 = !{i32 10000, i64 100, i32 1} +!13 = !{i32 999000, i64 100, i32 1} +!14 = !{i32 999999, i64 1, i32 2} +!15 = !{!"function_entry_count", i64 0} Index: llvm/test/CodeGen/X86/memcmp-pgso.ll =================================================================== --- llvm/test/CodeGen/X86/memcmp-pgso.ll +++ llvm/test/CodeGen/X86/memcmp-pgso.ll @@ -13,7 +13,7 @@ declare i32 @memcmp(i8*, i8*, i64) declare i32 @bcmp(i8*, i8*, i64) -define i32 @length2(i8* %X, i8* %Y) nounwind !prof !14 { +define i32 @length2(i8* %X, i8* %Y) nounwind !prof !15 { ; X86-LABEL: length2: ; X86: # %bb.0: ; X86-NEXT: movl {{[0-9]+}}(%esp), %eax @@ -41,7 +41,7 @@ ret i32 %m } -define i1 @length2_eq(i8* %X, i8* %Y) nounwind !prof !14 { +define i1 @length2_eq(i8* %X, i8* %Y) nounwind !prof !15 { ; X86-LABEL: length2_eq: ; X86: # %bb.0: ; X86-NEXT: movl {{[0-9]+}}(%esp), %eax @@ -62,7 +62,7 @@ ret i1 %c } -define i1 @length2_eq_const(i8* %X) nounwind !prof !14 { +define i1 @length2_eq_const(i8* %X) nounwind !prof !15 { ; X86-LABEL: length2_eq_const: ; X86: # %bb.0: ; X86-NEXT: movl {{[0-9]+}}(%esp), %eax @@ -82,7 +82,7 @@ ret i1 %c } -define i1 @length2_eq_nobuiltin_attr(i8* %X, i8* %Y) nounwind !prof !14 { +define i1 @length2_eq_nobuiltin_attr(i8* %X, i8* %Y) nounwind !prof !15 { ; X86-LABEL: length2_eq_nobuiltin_attr: ; X86: # %bb.0: ; X86-NEXT: pushl $0 @@ -109,7 +109,7 @@ ret i1 %c } -define i32 @length3(i8* %X, i8* %Y) nounwind !prof !14 { +define i32 @length3(i8* %X, i8* %Y) nounwind !prof !15 { ; X86-LABEL: length3: ; X86: # %bb.0: ; X86-NEXT: pushl %esi @@ -156,7 +156,7 @@ ret i32 %m } -define i1 @length3_eq(i8* %X, i8* %Y) nounwind !prof !14 { +define i1 @length3_eq(i8* %X, i8* %Y) nounwind !prof !15 { ; X86-LABEL: length3_eq: ; X86: # %bb.0: ; X86-NEXT: movl {{[0-9]+}}(%esp), %eax @@ -185,7 +185,7 @@ ret i1 %c } -define i32 @length4(i8* %X, i8* %Y) nounwind !prof !14 { +define i32 @length4(i8* %X, i8* %Y) nounwind !prof !15 { ; X86-LABEL: length4: ; X86: # %bb.0: ; X86-NEXT: movl {{[0-9]+}}(%esp), %eax @@ -215,7 +215,7 @@ ret i32 %m } -define i1 @length4_eq(i8* %X, i8* %Y) nounwind !prof !14 { +define i1 @length4_eq(i8* %X, i8* %Y) nounwind !prof !15 { ; X86-LABEL: length4_eq: ; X86: # %bb.0: ; X86-NEXT: movl {{[0-9]+}}(%esp), %eax @@ -236,7 +236,7 @@ ret i1 %c } -define i1 @length4_eq_const(i8* %X) nounwind !prof !14 { +define i1 @length4_eq_const(i8* %X) nounwind !prof !15 { ; X86-LABEL: length4_eq_const: ; X86: # %bb.0: ; X86-NEXT: movl {{[0-9]+}}(%esp), %eax @@ -254,7 +254,7 @@ ret i1 %c } -define i32 @length5(i8* %X, i8* %Y) nounwind !prof !14 { +define i32 @length5(i8* %X, i8* %Y) nounwind !prof !15 { ; X86-LABEL: length5: ; X86: # %bb.0: ; X86-NEXT: pushl %esi @@ -301,7 +301,7 @@ ret i32 %m } -define i1 @length5_eq(i8* %X, i8* %Y) nounwind !prof !14 { +define i1 @length5_eq(i8* %X, i8* %Y) nounwind !prof !15 { ; X86-LABEL: length5_eq: ; X86: # %bb.0: ; X86-NEXT: movl {{[0-9]+}}(%esp), %eax @@ -330,7 +330,7 @@ ret i1 %c } -define i32 @length8(i8* %X, i8* %Y) nounwind !prof !14 { +define i32 @length8(i8* %X, i8* %Y) nounwind !prof !15 { ; X86-LABEL: length8: ; X86: # %bb.0: ; X86-NEXT: pushl %esi @@ -374,7 +374,7 @@ ret i32 %m } -define i1 @length8_eq(i8* %X, i8* %Y) nounwind !prof !14 { +define i1 @length8_eq(i8* %X, i8* %Y) nounwind !prof !15 { ; X86-LABEL: length8_eq: ; X86: # %bb.0: ; X86-NEXT: movl {{[0-9]+}}(%esp), %eax @@ -398,7 +398,7 @@ ret i1 %c } -define i1 @length8_eq_const(i8* %X) nounwind !prof !14 { +define i1 @length8_eq_const(i8* %X) nounwind !prof !15 { ; X86-LABEL: length8_eq_const: ; X86: # %bb.0: ; X86-NEXT: movl {{[0-9]+}}(%esp), %eax @@ -421,7 +421,7 @@ ret i1 %c } -define i1 @length12_eq(i8* %X, i8* %Y) nounwind !prof !14 { +define i1 @length12_eq(i8* %X, i8* %Y) nounwind !prof !15 { ; X86-LABEL: length12_eq: ; X86: # %bb.0: ; X86-NEXT: pushl $0 @@ -448,7 +448,7 @@ ret i1 %c } -define i32 @length12(i8* %X, i8* %Y) nounwind !prof !14 { +define i32 @length12(i8* %X, i8* %Y) nounwind !prof !15 { ; X86-LABEL: length12: ; X86: # %bb.0: ; X86-NEXT: pushl $0 @@ -488,7 +488,7 @@ ; PR33329 - https://bugs.llvm.org/show_bug.cgi?id=33329 -define i32 @length16(i8* %X, i8* %Y) nounwind !prof !14 { +define i32 @length16(i8* %X, i8* %Y) nounwind !prof !15 { ; X86-LABEL: length16: ; X86: # %bb.0: ; X86-NEXT: pushl $0 @@ -526,7 +526,7 @@ ret i32 %m } -define i1 @length16_eq(i8* %x, i8* %y) nounwind !prof !14 { +define i1 @length16_eq(i8* %x, i8* %y) nounwind !prof !15 { ; X86-NOSSE-LABEL: length16_eq: ; X86-NOSSE: # %bb.0: ; X86-NOSSE-NEXT: pushl $0 @@ -573,7 +573,7 @@ ret i1 %cmp } -define i1 @length16_eq_const(i8* %X) nounwind !prof !14 { +define i1 @length16_eq_const(i8* %X) nounwind !prof !15 { ; X86-NOSSE-LABEL: length16_eq_const: ; X86-NOSSE: # %bb.0: ; X86-NOSSE-NEXT: pushl $0 @@ -619,7 +619,7 @@ ; PR33914 - https://bugs.llvm.org/show_bug.cgi?id=33914 -define i32 @length24(i8* %X, i8* %Y) nounwind !prof !14 { +define i32 @length24(i8* %X, i8* %Y) nounwind !prof !15 { ; X86-LABEL: length24: ; X86: # %bb.0: ; X86-NEXT: pushl $0 @@ -638,7 +638,7 @@ ret i32 %m } -define i1 @length24_eq(i8* %x, i8* %y) nounwind !prof !14 { +define i1 @length24_eq(i8* %x, i8* %y) nounwind !prof !15 { ; X86-NOSSE-LABEL: length24_eq: ; X86-NOSSE: # %bb.0: ; X86-NOSSE-NEXT: pushl $0 @@ -697,7 +697,7 @@ ret i1 %cmp } -define i1 @length24_eq_const(i8* %X) nounwind !prof !14 { +define i1 @length24_eq_const(i8* %X) nounwind !prof !15 { ; X86-NOSSE-LABEL: length24_eq_const: ; X86-NOSSE: # %bb.0: ; X86-NOSSE-NEXT: pushl $0 @@ -750,7 +750,7 @@ ret i1 %c } -define i32 @length32(i8* %X, i8* %Y) nounwind !prof !14 { +define i32 @length32(i8* %X, i8* %Y) nounwind !prof !15 { ; X86-LABEL: length32: ; X86: # %bb.0: ; X86-NEXT: pushl $0 @@ -771,7 +771,7 @@ ; PR33325 - https://bugs.llvm.org/show_bug.cgi?id=33325 -define i1 @length32_eq(i8* %x, i8* %y) nounwind !prof !14 { +define i1 @length32_eq(i8* %x, i8* %y) nounwind !prof !15 { ; X86-NOSSE-LABEL: length32_eq: ; X86-NOSSE: # %bb.0: ; X86-NOSSE-NEXT: pushl $0 @@ -836,7 +836,7 @@ ret i1 %cmp } -define i1 @length32_eq_const(i8* %X) nounwind !prof !14 { +define i1 @length32_eq_const(i8* %X) nounwind !prof !15 { ; X86-NOSSE-LABEL: length32_eq_const: ; X86-NOSSE: # %bb.0: ; X86-NOSSE-NEXT: pushl $0 @@ -896,7 +896,7 @@ ret i1 %c } -define i32 @length64(i8* %X, i8* %Y) nounwind !prof !14 { +define i32 @length64(i8* %X, i8* %Y) nounwind !prof !15 { ; X86-LABEL: length64: ; X86: # %bb.0: ; X86-NEXT: pushl $0 @@ -915,7 +915,7 @@ ret i32 %m } -define i1 @length64_eq(i8* %x, i8* %y) nounwind !prof !14 { +define i1 @length64_eq(i8* %x, i8* %y) nounwind !prof !15 { ; X86-LABEL: length64_eq: ; X86: # %bb.0: ; X86-NEXT: pushl $0 @@ -966,7 +966,7 @@ ret i1 %cmp } -define i1 @length64_eq_const(i8* %X) nounwind !prof !14 { +define i1 @length64_eq_const(i8* %X) nounwind !prof !15 { ; X86-LABEL: length64_eq_const: ; X86: # %bb.0: ; X86-NEXT: pushl $0 @@ -1018,7 +1018,7 @@ ret i1 %c } -define i32 @bcmp_length2(i8* %X, i8* %Y) nounwind !prof !14 { +define i32 @bcmp_length2(i8* %X, i8* %Y) nounwind !prof !15 { ; X86-LABEL: bcmp_length2: ; X86: # %bb.0: ; X86-NEXT: movl {{[0-9]+}}(%esp), %eax @@ -1048,7 +1048,7 @@ !llvm.module.flags = !{!0} !0 = !{i32 1, !"ProfileSummary", !1} -!1 = !{!2, !3, !4, !5, !6, !7, !8, !9} +!1 = !{!2, !3, !4, !5, !6, !7, !8, !9, !10} !2 = !{!"ProfileFormat", !"InstrProf"} !3 = !{!"TotalCount", i64 10000} !4 = !{!"MaxCount", i64 10} @@ -1056,9 +1056,10 @@ !6 = !{!"MaxFunctionCount", i64 1000} !7 = !{!"NumCounts", i64 3} !8 = !{!"NumFunctions", i64 3} -!9 = !{!"DetailedSummary", !10} -!10 = !{!11, !12, !13} -!11 = !{i32 10000, i64 100, i32 1} -!12 = !{i32 999000, i64 100, i32 1} -!13 = !{i32 999999, i64 1, i32 2} -!14 = !{!"function_entry_count", i64 0} +!9 = !{!"IsPartialProfile", i64 0} +!10 = !{!"DetailedSummary", !11} +!11 = !{!12, !13, !14} +!12 = !{i32 10000, i64 100, i32 1} +!13 = !{i32 999000, i64 100, i32 1} +!14 = !{i32 999999, i64 1, i32 2} +!15 = !{!"function_entry_count", i64 0} Index: llvm/test/CodeGen/X86/memcpy.ll =================================================================== --- llvm/test/CodeGen/X86/memcpy.ll +++ llvm/test/CodeGen/X86/memcpy.ll @@ -139,7 +139,7 @@ ret void } -define void @test3_pgso(i8* nocapture %A, i8* nocapture %B) nounwind noredzone !prof !14 { +define void @test3_pgso(i8* nocapture %A, i8* nocapture %B) nounwind noredzone !prof !15 { ; LINUX-LABEL: test3_pgso: ; LINUX: # %bb.0: # %entry ; LINUX-NEXT: movl $64, %edx @@ -539,7 +539,7 @@ !llvm.module.flags = !{!0} !0 = !{i32 1, !"ProfileSummary", !1} -!1 = !{!2, !3, !4, !5, !6, !7, !8, !9} +!1 = !{!2, !3, !4, !5, !6, !7, !8, !9, !10} !2 = !{!"ProfileFormat", !"InstrProf"} !3 = !{!"TotalCount", i64 10000} !4 = !{!"MaxCount", i64 10} @@ -547,9 +547,10 @@ !6 = !{!"MaxFunctionCount", i64 1000} !7 = !{!"NumCounts", i64 3} !8 = !{!"NumFunctions", i64 3} -!9 = !{!"DetailedSummary", !10} -!10 = !{!11, !12, !13} -!11 = !{i32 10000, i64 100, i32 1} -!12 = !{i32 999000, i64 100, i32 1} -!13 = !{i32 999999, i64 1, i32 2} -!14 = !{!"function_entry_count", i64 0} +!9 = !{!"IsPartialProfile", i64 0} +!10 = !{!"DetailedSummary", !11} +!11 = !{!12, !13, !14} +!12 = !{i32 10000, i64 100, i32 1} +!13 = !{i32 999000, i64 100, i32 1} +!14 = !{i32 999999, i64 1, i32 2} +!15 = !{!"function_entry_count", i64 0} Index: llvm/test/CodeGen/X86/powi.ll =================================================================== --- llvm/test/CodeGen/X86/powi.ll +++ llvm/test/CodeGen/X86/powi.ll @@ -86,7 +86,7 @@ ret double %ret } -define double @pow_wrapper_pgso(double %a) !prof !14 { +define double @pow_wrapper_pgso(double %a) !prof !15 { ; X86-X87-LABEL: pow_wrapper_pgso: ; X86-X87: # %bb.0: ; X86-X87-NEXT: subl $12, %esp @@ -159,7 +159,7 @@ !llvm.module.flags = !{!0} !0 = !{i32 1, !"ProfileSummary", !1} -!1 = !{!2, !3, !4, !5, !6, !7, !8, !9} +!1 = !{!2, !3, !4, !5, !6, !7, !8, !9, !10} !2 = !{!"ProfileFormat", !"InstrProf"} !3 = !{!"TotalCount", i64 10000} !4 = !{!"MaxCount", i64 10} @@ -167,9 +167,10 @@ !6 = !{!"MaxFunctionCount", i64 1000} !7 = !{!"NumCounts", i64 3} !8 = !{!"NumFunctions", i64 3} -!9 = !{!"DetailedSummary", !10} -!10 = !{!11, !12, !13} -!11 = !{i32 10000, i64 100, i32 1} -!12 = !{i32 999000, i64 100, i32 1} -!13 = !{i32 999999, i64 1, i32 2} -!14 = !{!"function_entry_count", i64 0} +!9 = !{!"IsPartialProfile", i64 0} +!10 = !{!"DetailedSummary", !11} +!11 = !{!12, !13, !14} +!12 = !{i32 10000, i64 100, i32 1} +!13 = !{i32 999000, i64 100, i32 1} +!14 = !{i32 999999, i64 1, i32 2} +!15 = !{!"function_entry_count", i64 0} Index: llvm/test/CodeGen/X86/rounding-ops.ll =================================================================== --- llvm/test/CodeGen/X86/rounding-ops.ll +++ llvm/test/CodeGen/X86/rounding-ops.ll @@ -253,7 +253,7 @@ ret double %call } -define float @test11_pgso(float* %xptr) nounwind !prof !14 { +define float @test11_pgso(float* %xptr) nounwind !prof !15 { ; CHECK-SSE-LABEL: test11_pgso: ; CHECK-SSE: ## %bb.0: ; CHECK-SSE-NEXT: roundss $11, (%rdi), %xmm0 @@ -273,7 +273,7 @@ ret float %call } -define double @test12_pgso(double* %xptr) nounwind !prof !14 { +define double @test12_pgso(double* %xptr) nounwind !prof !15 { ; CHECK-SSE-LABEL: test12_pgso: ; CHECK-SSE: ## %bb.0: ; CHECK-SSE-NEXT: roundsd $11, (%rdi), %xmm0 @@ -295,7 +295,7 @@ !llvm.module.flags = !{!0} !0 = !{i32 1, !"ProfileSummary", !1} -!1 = !{!2, !3, !4, !5, !6, !7, !8, !9} +!1 = !{!2, !3, !4, !5, !6, !7, !8, !9, !10} !2 = !{!"ProfileFormat", !"InstrProf"} !3 = !{!"TotalCount", i64 10000} !4 = !{!"MaxCount", i64 10} @@ -303,9 +303,10 @@ !6 = !{!"MaxFunctionCount", i64 1000} !7 = !{!"NumCounts", i64 3} !8 = !{!"NumFunctions", i64 3} -!9 = !{!"DetailedSummary", !10} -!10 = !{!11, !12, !13} -!11 = !{i32 10000, i64 100, i32 1} -!12 = !{i32 999000, i64 100, i32 1} -!13 = !{i32 999999, i64 1, i32 2} -!14 = !{!"function_entry_count", i64 0} +!9 = !{!"IsPartialProfile", i64 0} +!10 = !{!"DetailedSummary", !11} +!11 = !{!12, !13, !14} +!12 = !{i32 10000, i64 100, i32 1} +!13 = !{i32 999000, i64 100, i32 1} +!14 = !{i32 999999, i64 1, i32 2} +!15 = !{!"function_entry_count", i64 0} Index: llvm/test/CodeGen/X86/shrink-compare-pgso.ll =================================================================== --- llvm/test/CodeGen/X86/shrink-compare-pgso.ll +++ llvm/test/CodeGen/X86/shrink-compare-pgso.ll @@ -3,7 +3,7 @@ declare void @bar() -define void @test1(i32* nocapture %X) nounwind !prof !14 { +define void @test1(i32* nocapture %X) nounwind !prof !15 { ; CHECK-LABEL: test1: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: cmpb $47, (%rdi) @@ -24,7 +24,7 @@ ret void } -define void @test2(i32 %X) nounwind !prof !14 { +define void @test2(i32 %X) nounwind !prof !15 { ; CHECK-LABEL: test2: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: cmpb $47, %dil @@ -44,7 +44,7 @@ ret void } -define void @test3(i32 %X) nounwind !prof !14 { +define void @test3(i32 %X) nounwind !prof !15 { ; CHECK-LABEL: test3: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: cmpb $-1, %dil @@ -95,7 +95,7 @@ @x = global { i8, i8, i8, i8, i8, i8, i8, i8 } { i8 1, i8 0, i8 0, i8 0, i8 1, i8 0, i8 0, i8 1 }, align 4 ; PR16551 -define void @test5(i32 %X) nounwind !prof !14 { +define void @test5(i32 %X) nounwind !prof !15 { ; CHECK-LABEL: test5: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: movzbl x+{{.*}}(%rip), %eax @@ -121,7 +121,7 @@ ret void } -define void @test2_1(i32 %X) nounwind !prof !14 { +define void @test2_1(i32 %X) nounwind !prof !15 { ; CHECK-LABEL: test2_1: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: movzbl %dil, %eax @@ -142,7 +142,7 @@ ret void } -define void @test_sext_i8_icmp_1(i8 %x) nounwind !prof !14 { +define void @test_sext_i8_icmp_1(i8 %x) nounwind !prof !15 { ; CHECK-LABEL: test_sext_i8_icmp_1: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: cmpb $1, %dil @@ -162,7 +162,7 @@ ret void } -define void @test_sext_i8_icmp_47(i8 %x) nounwind !prof !14 { +define void @test_sext_i8_icmp_47(i8 %x) nounwind !prof !15 { ; CHECK-LABEL: test_sext_i8_icmp_47: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: cmpb $47, %dil @@ -182,7 +182,7 @@ ret void } -define void @test_sext_i8_icmp_127(i8 %x) nounwind !prof !14 { +define void @test_sext_i8_icmp_127(i8 %x) nounwind !prof !15 { ; CHECK-LABEL: test_sext_i8_icmp_127: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: cmpb $127, %dil @@ -202,7 +202,7 @@ ret void } -define void @test_sext_i8_icmp_neg1(i8 %x) nounwind !prof !14 { +define void @test_sext_i8_icmp_neg1(i8 %x) nounwind !prof !15 { ; CHECK-LABEL: test_sext_i8_icmp_neg1: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: cmpb $-1, %dil @@ -222,7 +222,7 @@ ret void } -define void @test_sext_i8_icmp_neg2(i8 %x) nounwind !prof !14 { +define void @test_sext_i8_icmp_neg2(i8 %x) nounwind !prof !15 { ; CHECK-LABEL: test_sext_i8_icmp_neg2: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: cmpb $-2, %dil @@ -242,7 +242,7 @@ ret void } -define void @test_sext_i8_icmp_neg127(i8 %x) nounwind !prof !14 { +define void @test_sext_i8_icmp_neg127(i8 %x) nounwind !prof !15 { ; CHECK-LABEL: test_sext_i8_icmp_neg127: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: cmpb $-127, %dil @@ -262,7 +262,7 @@ ret void } -define void @test_sext_i8_icmp_neg128(i8 %x) nounwind !prof !14 { +define void @test_sext_i8_icmp_neg128(i8 %x) nounwind !prof !15 { ; CHECK-LABEL: test_sext_i8_icmp_neg128: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: cmpb $-128, %dil @@ -282,7 +282,7 @@ ret void } -define void @test_sext_i8_icmp_255(i8 %x) nounwind !prof !14 { +define void @test_sext_i8_icmp_255(i8 %x) nounwind !prof !15 { ; CHECK-LABEL: test_sext_i8_icmp_255: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: movb $1, %al @@ -305,7 +305,7 @@ !llvm.module.flags = !{!0} !0 = !{i32 1, !"ProfileSummary", !1} -!1 = !{!2, !3, !4, !5, !6, !7, !8, !9} +!1 = !{!2, !3, !4, !5, !6, !7, !8, !9, !10} !2 = !{!"ProfileFormat", !"InstrProf"} !3 = !{!"TotalCount", i64 10000} !4 = !{!"MaxCount", i64 10} @@ -313,9 +313,10 @@ !6 = !{!"MaxFunctionCount", i64 1000} !7 = !{!"NumCounts", i64 3} !8 = !{!"NumFunctions", i64 3} -!9 = !{!"DetailedSummary", !10} -!10 = !{!11, !12, !13} -!11 = !{i32 10000, i64 100, i32 1} -!12 = !{i32 999000, i64 100, i32 1} -!13 = !{i32 999999, i64 1, i32 2} -!14 = !{!"function_entry_count", i64 0} +!9 = !{!"IsPartialProfile", i64 0} +!10 = !{!"DetailedSummary", !11} +!11 = !{!12, !13, !14} +!12 = !{i32 10000, i64 100, i32 1} +!13 = !{i32 999000, i64 100, i32 1} +!14 = !{i32 999999, i64 1, i32 2} +!15 = !{!"function_entry_count", i64 0} Index: llvm/test/CodeGen/X86/slow-incdec.ll =================================================================== --- llvm/test/CodeGen/X86/slow-incdec.ll +++ llvm/test/CodeGen/X86/slow-incdec.ll @@ -54,7 +54,7 @@ ret i32 %r } -define i32 @inc_pgso(i32 %x) !prof !14 { +define i32 @inc_pgso(i32 %x) !prof !15 { ; CHECK-LABEL: inc_pgso: ; CHECK: # %bb.0: ; CHECK-NEXT: movl {{[0-9]+}}(%esp), %eax @@ -64,7 +64,7 @@ ret i32 %r } -define i32 @dec_pgso(i32 %x) !prof !14 { +define i32 @dec_pgso(i32 %x) !prof !15 { ; CHECK-LABEL: dec_pgso: ; CHECK: # %bb.0: ; CHECK-NEXT: movl {{[0-9]+}}(%esp), %eax @@ -174,7 +174,7 @@ !llvm.module.flags = !{!0} !0 = !{i32 1, !"ProfileSummary", !1} -!1 = !{!2, !3, !4, !5, !6, !7, !8, !9} +!1 = !{!2, !3, !4, !5, !6, !7, !8, !9, !10} !2 = !{!"ProfileFormat", !"InstrProf"} !3 = !{!"TotalCount", i64 10000} !4 = !{!"MaxCount", i64 10} @@ -182,9 +182,10 @@ !6 = !{!"MaxFunctionCount", i64 1000} !7 = !{!"NumCounts", i64 3} !8 = !{!"NumFunctions", i64 3} -!9 = !{!"DetailedSummary", !10} -!10 = !{!11, !12, !13} -!11 = !{i32 10000, i64 100, i32 1} -!12 = !{i32 999000, i64 100, i32 1} -!13 = !{i32 999999, i64 1, i32 2} -!14 = !{!"function_entry_count", i64 0} +!9 = !{!"IsPartialProfile", i64 0} +!10 = !{!"DetailedSummary", !11} +!11 = !{!12, !13, !14} +!12 = !{i32 10000, i64 100, i32 1} +!13 = !{i32 999000, i64 100, i32 1} +!14 = !{i32 999999, i64 1, i32 2} +!15 = !{!"function_entry_count", i64 0} Index: llvm/test/CodeGen/X86/splat-for-size.ll =================================================================== --- llvm/test/CodeGen/X86/splat-for-size.ll +++ llvm/test/CodeGen/X86/splat-for-size.ll @@ -17,7 +17,7 @@ ret <2 x double> %add } -define <2 x double> @splat_v2f64_pgso(<2 x double> %x) !prof !14 { +define <2 x double> @splat_v2f64_pgso(<2 x double> %x) !prof !15 { ; CHECK-LABEL: splat_v2f64_pgso: ; CHECK: # %bb.0: ; CHECK-NEXT: vmovddup {{.*#+}} xmm1 = [1.0E+0,1.0E+0] @@ -38,7 +38,7 @@ ret <4 x double> %add } -define <4 x double> @splat_v4f64_pgso(<4 x double> %x) !prof !14 { +define <4 x double> @splat_v4f64_pgso(<4 x double> %x) !prof !15 { ; CHECK-LABEL: splat_v4f64_pgso: ; CHECK: # %bb.0: ; CHECK-NEXT: vbroadcastsd {{.*#+}} ymm1 = [1.0E+0,1.0E+0,1.0E+0,1.0E+0] @@ -58,7 +58,7 @@ ret <4 x float> %add } -define <4 x float> @splat_v4f32_pgso(<4 x float> %x) !prof !14 { +define <4 x float> @splat_v4f32_pgso(<4 x float> %x) !prof !15 { ; CHECK-LABEL: splat_v4f32_pgso: ; CHECK: # %bb.0: ; CHECK-NEXT: vbroadcastss {{.*#+}} xmm1 = [1.0E+0,1.0E+0,1.0E+0,1.0E+0] @@ -78,7 +78,7 @@ ret <8 x float> %add } -define <8 x float> @splat_v8f32_pgso(<8 x float> %x) !prof !14 { +define <8 x float> @splat_v8f32_pgso(<8 x float> %x) !prof !15 { ; CHECK-LABEL: splat_v8f32_pgso: ; CHECK: # %bb.0: ; CHECK-NEXT: vbroadcastss {{.*#+}} ymm1 = [1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0] @@ -107,7 +107,7 @@ ret <2 x i64> %add } -define <2 x i64> @splat_v2i64_pgso(<2 x i64> %x) !prof !14 { +define <2 x i64> @splat_v2i64_pgso(<2 x i64> %x) !prof !15 { ; AVX-LABEL: splat_v2i64_pgso: ; AVX: # %bb.0: ; AVX-NEXT: vmovddup {{.*#+}} xmm1 = [2,2] @@ -146,7 +146,7 @@ ret <4 x i64> %add } -define <4 x i64> @splat_v4i64_pgso(<4 x i64> %x) !prof !14 { +define <4 x i64> @splat_v4i64_pgso(<4 x i64> %x) !prof !15 { ; AVX-LABEL: splat_v4i64_pgso: ; AVX: # %bb.0: ; AVX-NEXT: vextractf128 $1, %ymm0, %xmm1 @@ -183,7 +183,7 @@ ret <4 x i32> %add } -define <4 x i32> @splat_v4i32_pgso(<4 x i32> %x) !prof !14 { +define <4 x i32> @splat_v4i32_pgso(<4 x i32> %x) !prof !15 { ; AVX-LABEL: splat_v4i32_pgso: ; AVX: # %bb.0: ; AVX-NEXT: vbroadcastss {{.*#+}} xmm1 = [2,2,2,2] @@ -219,7 +219,7 @@ ret <8 x i32> %add } -define <8 x i32> @splat_v8i32_pgso(<8 x i32> %x) !prof !14 { +define <8 x i32> @splat_v8i32_pgso(<8 x i32> %x) !prof !15 { ; AVX-LABEL: splat_v8i32_pgso: ; AVX: # %bb.0: ; AVX-NEXT: vextractf128 $1, %ymm0, %xmm1 @@ -254,7 +254,7 @@ ret <8 x i16> %add } -define <8 x i16> @splat_v8i16_pgso(<8 x i16> %x) !prof !14 { +define <8 x i16> @splat_v8i16_pgso(<8 x i16> %x) !prof !15 { ; AVX-LABEL: splat_v8i16_pgso: ; AVX: # %bb.0: ; AVX-NEXT: vpaddw {{.*}}(%rip), %xmm0, %xmm0 @@ -289,7 +289,7 @@ ret <16 x i16> %add } -define <16 x i16> @splat_v16i16_pgso(<16 x i16> %x) !prof !14 { +define <16 x i16> @splat_v16i16_pgso(<16 x i16> %x) !prof !15 { ; AVX-LABEL: splat_v16i16_pgso: ; AVX: # %bb.0: ; AVX-NEXT: vextractf128 $1, %ymm0, %xmm1 @@ -324,7 +324,7 @@ ret <16 x i8> %add } -define <16 x i8> @splat_v16i8_pgso(<16 x i8> %x) !prof !14 { +define <16 x i8> @splat_v16i8_pgso(<16 x i8> %x) !prof !15 { ; AVX-LABEL: splat_v16i8_pgso: ; AVX: # %bb.0: ; AVX-NEXT: vpaddb {{.*}}(%rip), %xmm0, %xmm0 @@ -359,7 +359,7 @@ ret <32 x i8> %add } -define <32 x i8> @splat_v32i8_pgso(<32 x i8> %x) !prof !14 { +define <32 x i8> @splat_v32i8_pgso(<32 x i8> %x) !prof !15 { ; AVX-LABEL: splat_v32i8_pgso: ; AVX: # %bb.0: ; AVX-NEXT: vextractf128 $1, %ymm0, %xmm1 @@ -422,7 +422,7 @@ !llvm.module.flags = !{!0} !0 = !{i32 1, !"ProfileSummary", !1} -!1 = !{!2, !3, !4, !5, !6, !7, !8, !9} +!1 = !{!2, !3, !4, !5, !6, !7, !8, !9, !10} !2 = !{!"ProfileFormat", !"InstrProf"} !3 = !{!"TotalCount", i64 10000} !4 = !{!"MaxCount", i64 10} @@ -430,9 +430,10 @@ !6 = !{!"MaxFunctionCount", i64 1000} !7 = !{!"NumCounts", i64 3} !8 = !{!"NumFunctions", i64 3} -!9 = !{!"DetailedSummary", !10} -!10 = !{!11, !12, !13} -!11 = !{i32 10000, i64 100, i32 1} -!12 = !{i32 999000, i64 100, i32 1} -!13 = !{i32 999999, i64 1, i32 2} -!14 = !{!"function_entry_count", i64 0} +!9 = !{!"IsPartialProfile", i64 0} +!10 = !{!"DetailedSummary", !11} +!11 = !{!12, !13, !14} +!12 = !{i32 10000, i64 100, i32 1} +!13 = !{i32 999000, i64 100, i32 1} +!14 = !{i32 999999, i64 1, i32 2} +!15 = !{!"function_entry_count", i64 0} Index: llvm/test/CodeGen/X86/store-zero-and-minus-one.ll =================================================================== --- llvm/test/CodeGen/X86/store-zero-and-minus-one.ll +++ llvm/test/CodeGen/X86/store-zero-and-minus-one.ll @@ -19,7 +19,7 @@ } -define void @zero_pgso(i32* %p) !prof !14 { +define void @zero_pgso(i32* %p) !prof !15 { ; CHECK32-LABEL: zero_pgso: ; CHECK32: # %bb.0: # %entry ; CHECK32-NEXT: movl {{[0-9]+}}(%esp), %eax @@ -53,7 +53,7 @@ } -define void @minus_one_pgso(i32* %p) !prof !14 { +define void @minus_one_pgso(i32* %p) !prof !15 { ; CHECK32-LABEL: minus_one_pgso: ; CHECK32: # %bb.0: # %entry ; CHECK32-NEXT: movl {{[0-9]+}}(%esp), %eax @@ -280,7 +280,7 @@ !llvm.module.flags = !{!0} !0 = !{i32 1, !"ProfileSummary", !1} -!1 = !{!2, !3, !4, !5, !6, !7, !8, !9} +!1 = !{!2, !3, !4, !5, !6, !7, !8, !9, !10} !2 = !{!"ProfileFormat", !"InstrProf"} !3 = !{!"TotalCount", i64 10000} !4 = !{!"MaxCount", i64 10} @@ -288,9 +288,10 @@ !6 = !{!"MaxFunctionCount", i64 1000} !7 = !{!"NumCounts", i64 3} !8 = !{!"NumFunctions", i64 3} -!9 = !{!"DetailedSummary", !10} -!10 = !{!11, !12, !13} -!11 = !{i32 10000, i64 100, i32 1} -!12 = !{i32 999000, i64 100, i32 1} -!13 = !{i32 999999, i64 1, i32 2} -!14 = !{!"function_entry_count", i64 0} +!9 = !{!"IsPartialProfile", i64 0} +!10 = !{!"DetailedSummary", !11} +!11 = !{!12, !13, !14} +!12 = !{i32 10000, i64 100, i32 1} +!13 = !{i32 999000, i64 100, i32 1} +!14 = !{i32 999999, i64 1, i32 2} +!15 = !{!"function_entry_count", i64 0} Index: llvm/test/CodeGen/X86/switch-density.ll =================================================================== --- llvm/test/CodeGen/X86/switch-density.ll +++ llvm/test/CodeGen/X86/switch-density.ll @@ -106,7 +106,7 @@ ; CHECK: retq } -define void @dense_pgso(i32 %x) !prof !14 { +define void @dense_pgso(i32 %x) !prof !15 { entry: switch i32 %x, label %return [ i32 12, label %bb0 @@ -134,7 +134,7 @@ !llvm.module.flags = !{!0} !0 = !{i32 1, !"ProfileSummary", !1} -!1 = !{!2, !3, !4, !5, !6, !7, !8, !9} +!1 = !{!2, !3, !4, !5, !6, !7, !8, !9, !10} !2 = !{!"ProfileFormat", !"InstrProf"} !3 = !{!"TotalCount", i64 10000} !4 = !{!"MaxCount", i64 10} @@ -142,9 +142,10 @@ !6 = !{!"MaxFunctionCount", i64 1000} !7 = !{!"NumCounts", i64 3} !8 = !{!"NumFunctions", i64 3} -!9 = !{!"DetailedSummary", !10} -!10 = !{!11, !12, !13} -!11 = !{i32 10000, i64 100, i32 1} -!12 = !{i32 999000, i64 100, i32 1} -!13 = !{i32 999999, i64 1, i32 2} -!14 = !{!"function_entry_count", i64 0} +!9 = !{!"IsPartialProfile", i64 0} +!10 = !{!"DetailedSummary", !11} +!11 = !{!12, !13, !14} +!12 = !{i32 10000, i64 100, i32 1} +!13 = !{i32 999000, i64 100, i32 1} +!14 = !{i32 999999, i64 1, i32 2} +!15 = !{!"function_entry_count", i64 0} Index: llvm/test/CodeGen/X86/tail-opts.ll =================================================================== --- llvm/test/CodeGen/X86/tail-opts.ll +++ llvm/test/CodeGen/X86/tail-opts.ll @@ -473,7 +473,7 @@ ret void } -define void @one_pgso(i32 %v) nounwind !prof !14 { +define void @one_pgso(i32 %v) nounwind !prof !15 { ; CHECK-LABEL: one_pgso: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: testl %edi, %edi @@ -559,7 +559,7 @@ ret void } -define void @two_pgso() nounwind !prof !14 { +define void @two_pgso() nounwind !prof !15 { ; CHECK-LABEL: two_pgso: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: xorl %eax, %eax @@ -914,7 +914,7 @@ !llvm.module.flags = !{!0} !0 = !{i32 1, !"ProfileSummary", !1} -!1 = !{!2, !3, !4, !5, !6, !7, !8, !9} +!1 = !{!2, !3, !4, !5, !6, !7, !8, !9, !10} !2 = !{!"ProfileFormat", !"InstrProf"} !3 = !{!"TotalCount", i64 10000} !4 = !{!"MaxCount", i64 10} @@ -922,9 +922,10 @@ !6 = !{!"MaxFunctionCount", i64 1000} !7 = !{!"NumCounts", i64 3} !8 = !{!"NumFunctions", i64 3} -!9 = !{!"DetailedSummary", !10} -!10 = !{!11, !12, !13} -!11 = !{i32 10000, i64 100, i32 1} -!12 = !{i32 999000, i64 100, i32 1} -!13 = !{i32 999999, i64 1, i32 2} -!14 = !{!"function_entry_count", i64 0} +!9 = !{!"IsPartialProfile", i64 0} +!10 = !{!"DetailedSummary", !11} +!11 = !{!12, !13, !14} +!12 = !{i32 10000, i64 100, i32 1} +!13 = !{i32 999000, i64 100, i32 1} +!14 = !{i32 999999, i64 1, i32 2} +!15 = !{!"function_entry_count", i64 0} Index: llvm/test/CodeGen/X86/test-vs-bittest.ll =================================================================== --- llvm/test/CodeGen/X86/test-vs-bittest.ll +++ llvm/test/CodeGen/X86/test-vs-bittest.ll @@ -49,7 +49,7 @@ ret void } -define void @test64_pgso(i64 inreg %x) !prof !14 { +define void @test64_pgso(i64 inreg %x) !prof !15 { ; CHECK-LABEL: test64_pgso: ; CHECK: # %bb.0: ; CHECK-NEXT: pushq %rax @@ -126,7 +126,7 @@ ret void } -define void @test64_pgso_2(i64 inreg %x) !prof !14 { +define void @test64_pgso_2(i64 inreg %x) !prof !15 { ; CHECK-LABEL: test64_pgso_2: ; CHECK: # %bb.0: ; CHECK-NEXT: pushq %rax @@ -198,7 +198,7 @@ ret void } -define void @test64_pgso_3(i64 inreg %x) !prof !14 { +define void @test64_pgso_3(i64 inreg %x) !prof !15 { ; CHECK-LABEL: test64_pgso_3: ; CHECK: # %bb.0: ; CHECK-NEXT: pushq %rax @@ -270,7 +270,7 @@ ret void } -define void @test64_pgso_4(i64 inreg %x) !prof !14 { +define void @test64_pgso_4(i64 inreg %x) !prof !15 { ; CHECK-LABEL: test64_pgso_4: ; CHECK: # %bb.0: ; CHECK-NEXT: pushq %rax @@ -390,7 +390,7 @@ ret void } -define void @test32_pgso_2(i32 inreg %x) !prof !14 { +define void @test32_pgso_2(i32 inreg %x) !prof !15 { ; CHECK-LABEL: test32_pgso_2: ; CHECK: # %bb.0: ; CHECK-NEXT: pushq %rax @@ -462,7 +462,7 @@ ret void } -define void @test16_pgso(i16 inreg %x) !prof !14 { +define void @test16_pgso(i16 inreg %x) !prof !15 { ; CHECK-LABEL: test16_pgso: ; CHECK: # %bb.0: ; CHECK-NEXT: pushq %rax @@ -534,7 +534,7 @@ ret void } -define void @test16_pgso_2(i16 inreg %x) !prof !14 { +define void @test16_pgso_2(i16 inreg %x) !prof !15 { ; CHECK-LABEL: test16_pgso_2: ; CHECK: # %bb.0: ; CHECK-NEXT: pushq %rax @@ -683,7 +683,7 @@ !llvm.module.flags = !{!0} !0 = !{i32 1, !"ProfileSummary", !1} -!1 = !{!2, !3, !4, !5, !6, !7, !8, !9} +!1 = !{!2, !3, !4, !5, !6, !7, !8, !9, !10} !2 = !{!"ProfileFormat", !"InstrProf"} !3 = !{!"TotalCount", i64 10000} !4 = !{!"MaxCount", i64 10} @@ -691,9 +691,10 @@ !6 = !{!"MaxFunctionCount", i64 1000} !7 = !{!"NumCounts", i64 3} !8 = !{!"NumFunctions", i64 3} -!9 = !{!"DetailedSummary", !10} -!10 = !{!11, !12, !13} -!11 = !{i32 10000, i64 100, i32 1} -!12 = !{i32 999000, i64 100, i32 1} -!13 = !{i32 999999, i64 1, i32 2} -!14 = !{!"function_entry_count", i64 0} +!9 = !{!"IsPartialProfile", i64 0} +!10 = !{!"DetailedSummary", !11} +!11 = !{!12, !13, !14} +!12 = !{i32 10000, i64 100, i32 1} +!13 = !{i32 999000, i64 100, i32 1} +!14 = !{i32 999999, i64 1, i32 2} +!15 = !{!"function_entry_count", i64 0} Index: llvm/test/CodeGen/X86/vector-shuffle-256-v4.ll =================================================================== --- llvm/test/CodeGen/X86/vector-shuffle-256-v4.ll +++ llvm/test/CodeGen/X86/vector-shuffle-256-v4.ll @@ -1925,7 +1925,7 @@ ret <8 x i32> %b } -define <4 x double> @shuffle_v4f64_0zzz_pgso(<4 x double> %a) !prof !14 { +define <4 x double> @shuffle_v4f64_0zzz_pgso(<4 x double> %a) !prof !15 { ; ALL-LABEL: shuffle_v4f64_0zzz_pgso: ; ALL: # %bb.0: ; ALL-NEXT: vmovq {{.*#+}} xmm0 = xmm0[0],zero @@ -1934,7 +1934,7 @@ ret <4 x double> %b } -define <4 x i64> @shuffle_v4i64_0zzz_pgso(<4 x i64> %a) !prof !14 { +define <4 x i64> @shuffle_v4i64_0zzz_pgso(<4 x i64> %a) !prof !15 { ; ALL-LABEL: shuffle_v4i64_0zzz_pgso: ; ALL: # %bb.0: ; ALL-NEXT: vmovq {{.*#+}} xmm0 = xmm0[0],zero @@ -1943,7 +1943,7 @@ ret <4 x i64> %b } -define <8 x float> @shuffle_v8f32_0zzzzzzz_pgso(<8 x float> %a) !prof !14 { +define <8 x float> @shuffle_v8f32_0zzzzzzz_pgso(<8 x float> %a) !prof !15 { ; AVX1OR2-LABEL: shuffle_v8f32_0zzzzzzz_pgso: ; AVX1OR2: # %bb.0: ; AVX1OR2-NEXT: vxorps %xmm1, %xmm1, %xmm1 @@ -1959,7 +1959,7 @@ ret <8 x float> %b } -define <8 x i32> @shuffle_v8i32_0zzzzzzz_pgso(<8 x i32> %a) !prof !14 { +define <8 x i32> @shuffle_v8i32_0zzzzzzz_pgso(<8 x i32> %a) !prof !15 { ; AVX1OR2-LABEL: shuffle_v8i32_0zzzzzzz_pgso: ; AVX1OR2: # %bb.0: ; AVX1OR2-NEXT: vxorps %xmm1, %xmm1, %xmm1 @@ -1997,7 +1997,7 @@ !llvm.module.flags = !{!0} !0 = !{i32 1, !"ProfileSummary", !1} -!1 = !{!2, !3, !4, !5, !6, !7, !8, !9} +!1 = !{!2, !3, !4, !5, !6, !7, !8, !9, !10} !2 = !{!"ProfileFormat", !"InstrProf"} !3 = !{!"TotalCount", i64 10000} !4 = !{!"MaxCount", i64 10} @@ -2005,9 +2005,10 @@ !6 = !{!"MaxFunctionCount", i64 1000} !7 = !{!"NumCounts", i64 3} !8 = !{!"NumFunctions", i64 3} -!9 = !{!"DetailedSummary", !10} -!10 = !{!11, !12, !13} -!11 = !{i32 10000, i64 100, i32 1} -!12 = !{i32 999000, i64 100, i32 1} -!13 = !{i32 999999, i64 1, i32 2} -!14 = !{!"function_entry_count", i64 0} +!9 = !{!"IsPartialProfile", i64 0} +!10 = !{!"DetailedSummary", !11} +!11 = !{!12, !13, !14} +!12 = !{i32 10000, i64 100, i32 1} +!13 = !{i32 999000, i64 100, i32 1} +!14 = !{i32 999999, i64 1, i32 2} +!15 = !{!"function_entry_count", i64 0} Index: llvm/test/CodeGen/X86/x86-64-bittest-logic.ll =================================================================== --- llvm/test/CodeGen/X86/x86-64-bittest-logic.ll +++ llvm/test/CodeGen/X86/x86-64-bittest-logic.ll @@ -241,7 +241,7 @@ ret i64 %a } -define i64 @and1_pgso(i64 %x) !prof !14 { +define i64 @and1_pgso(i64 %x) !prof !15 { ; CHECK-LABEL: and1_pgso: ; CHECK: # %bb.0: ; CHECK-NEXT: movq %rdi, %rax @@ -251,7 +251,7 @@ ret i64 %a } -define i64 @and2_pgso(i64 %x) !prof !14 { +define i64 @and2_pgso(i64 %x) !prof !15 { ; CHECK-LABEL: and2_pgso: ; CHECK: # %bb.0: ; CHECK-NEXT: movq %rdi, %rax @@ -261,7 +261,7 @@ ret i64 %a } -define i64 @and3_pgso(i64 %x) !prof !14 { +define i64 @and3_pgso(i64 %x) !prof !15 { ; CHECK-LABEL: and3_pgso: ; CHECK: # %bb.0: ; CHECK-NEXT: movq %rdi, %rax @@ -271,7 +271,7 @@ ret i64 %a } -define i64 @and4_pgso(i64 %x) !prof !14 { +define i64 @and4_pgso(i64 %x) !prof !15 { ; CHECK-LABEL: and4_pgso: ; CHECK: # %bb.0: ; CHECK-NEXT: movq %rdi, %rax @@ -281,7 +281,7 @@ ret i64 %a } -define i64 @or1_pgso(i64 %x) !prof !14 { +define i64 @or1_pgso(i64 %x) !prof !15 { ; CHECK-LABEL: or1_pgso: ; CHECK: # %bb.0: ; CHECK-NEXT: movq %rdi, %rax @@ -291,7 +291,7 @@ ret i64 %a } -define i64 @or2_pgso(i64 %x) !prof !14 { +define i64 @or2_pgso(i64 %x) !prof !15 { ; CHECK-LABEL: or2_pgso: ; CHECK: # %bb.0: ; CHECK-NEXT: movq %rdi, %rax @@ -301,7 +301,7 @@ ret i64 %a } -define i64 @or3_pgso(i64 %x) !prof !14 { +define i64 @or3_pgso(i64 %x) !prof !15 { ; CHECK-LABEL: or3_pgso: ; CHECK: # %bb.0: ; CHECK-NEXT: movq %rdi, %rax @@ -311,7 +311,7 @@ ret i64 %a } -define i64 @or4_pgso(i64 %x) !prof !14 { +define i64 @or4_pgso(i64 %x) !prof !15 { ; CHECK-LABEL: or4_pgso: ; CHECK: # %bb.0: ; CHECK-NEXT: movq %rdi, %rax @@ -321,7 +321,7 @@ ret i64 %a } -define i64 @xor1_pgso(i64 %x) !prof !14 { +define i64 @xor1_pgso(i64 %x) !prof !15 { ; CHECK-LABEL: xor1_pgso: ; CHECK: # %bb.0: ; CHECK-NEXT: movq %rdi, %rax @@ -331,7 +331,7 @@ ret i64 %a } -define i64 @xor2_pgso(i64 %x) !prof !14 { +define i64 @xor2_pgso(i64 %x) !prof !15 { ; CHECK-LABEL: xor2_pgso: ; CHECK: # %bb.0: ; CHECK-NEXT: movq %rdi, %rax @@ -341,7 +341,7 @@ ret i64 %a } -define i64 @xor3_pgso(i64 %x) !prof !14 { +define i64 @xor3_pgso(i64 %x) !prof !15 { ; CHECK-LABEL: xor3_pgso: ; CHECK: # %bb.0: ; CHECK-NEXT: movq %rdi, %rax @@ -351,7 +351,7 @@ ret i64 %a } -define i64 @xor4_pgso(i64 %x) !prof !14 { +define i64 @xor4_pgso(i64 %x) !prof !15 { ; CHECK-LABEL: xor4_pgso: ; CHECK: # %bb.0: ; CHECK-NEXT: movq %rdi, %rax @@ -363,7 +363,7 @@ !llvm.module.flags = !{!0} !0 = !{i32 1, !"ProfileSummary", !1} -!1 = !{!2, !3, !4, !5, !6, !7, !8, !9} +!1 = !{!2, !3, !4, !5, !6, !7, !8, !9, !10} !2 = !{!"ProfileFormat", !"InstrProf"} !3 = !{!"TotalCount", i64 10000} !4 = !{!"MaxCount", i64 10} @@ -371,9 +371,10 @@ !6 = !{!"MaxFunctionCount", i64 1000} !7 = !{!"NumCounts", i64 3} !8 = !{!"NumFunctions", i64 3} -!9 = !{!"DetailedSummary", !10} -!10 = !{!11, !12, !13} -!11 = !{i32 10000, i64 100, i32 1} -!12 = !{i32 999000, i64 100, i32 1} -!13 = !{i32 999999, i64 1, i32 2} -!14 = !{!"function_entry_count", i64 0} +!9 = !{!"IsPartialProfile", i64 0} +!10 = !{!"DetailedSummary", !11} +!11 = !{!12, !13, !14} +!12 = !{i32 10000, i64 100, i32 1} +!13 = !{i32 999000, i64 100, i32 1} +!14 = !{i32 999999, i64 1, i32 2} +!15 = !{!"function_entry_count", i64 0} Index: llvm/test/CodeGen/X86/x86-64-double-shifts-Oz-Os-O2.ll =================================================================== --- llvm/test/CodeGen/X86/x86-64-double-shifts-Oz-Os-O2.ll +++ llvm/test/CodeGen/X86/x86-64-double-shifts-Oz-Os-O2.ll @@ -50,7 +50,7 @@ ret i64 %or } -define i64 @_Z8lshift11mm_pgso(i64 %a, i64 %b) !prof !14 { +define i64 @_Z8lshift11mm_pgso(i64 %a, i64 %b) !prof !15 { ; CHECK-LABEL: _Z8lshift11mm_pgso: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: movq %rdi, %rax @@ -93,7 +93,7 @@ !llvm.module.flags = !{!0} !0 = !{i32 1, !"ProfileSummary", !1} -!1 = !{!2, !3, !4, !5, !6, !7, !8, !9} +!1 = !{!2, !3, !4, !5, !6, !7, !8, !9, !10} !2 = !{!"ProfileFormat", !"InstrProf"} !3 = !{!"TotalCount", i64 10000} !4 = !{!"MaxCount", i64 10} @@ -101,9 +101,10 @@ !6 = !{!"MaxFunctionCount", i64 1000} !7 = !{!"NumCounts", i64 3} !8 = !{!"NumFunctions", i64 3} -!9 = !{!"DetailedSummary", !10} -!10 = !{!11, !12, !13} -!11 = !{i32 10000, i64 100, i32 1} -!12 = !{i32 999000, i64 100, i32 1} -!13 = !{i32 999999, i64 1, i32 2} -!14 = !{!"function_entry_count", i64 0} +!9 = !{!"IsPartialProfile", i64 0} +!10 = !{!"DetailedSummary", !11} +!11 = !{!12, !13, !14} +!12 = !{i32 10000, i64 100, i32 1} +!13 = !{i32 999000, i64 100, i32 1} +!14 = !{i32 999999, i64 1, i32 2} +!15 = !{!"function_entry_count", i64 0} Index: llvm/test/CodeGen/X86/x86-repmov-copy-eflags.ll =================================================================== --- llvm/test/CodeGen/X86/x86-repmov-copy-eflags.ll +++ llvm/test/CodeGen/X86/x86-repmov-copy-eflags.ll @@ -25,7 +25,7 @@ ret void } -define void @f_pgso(i8* %p, i8* %q, i32* inalloca nocapture %unused) !prof !14 { +define void @f_pgso(i8* %p, i8* %q, i32* inalloca nocapture %unused) !prof !15 { entry: %g = alloca %struct.T, align 8 %r = alloca i32, align 8 @@ -87,7 +87,7 @@ !llvm.module.flags = !{!0} !0 = !{i32 1, !"ProfileSummary", !1} -!1 = !{!2, !3, !4, !5, !6, !7, !8, !9} +!1 = !{!2, !3, !4, !5, !6, !7, !8, !9, !10} !2 = !{!"ProfileFormat", !"InstrProf"} !3 = !{!"TotalCount", i64 10000} !4 = !{!"MaxCount", i64 10} @@ -95,9 +95,10 @@ !6 = !{!"MaxFunctionCount", i64 1000} !7 = !{!"NumCounts", i64 3} !8 = !{!"NumFunctions", i64 3} -!9 = !{!"DetailedSummary", !10} -!10 = !{!11, !12, !13} -!11 = !{i32 10000, i64 100, i32 1} -!12 = !{i32 999000, i64 100, i32 1} -!13 = !{i32 999999, i64 1, i32 2} -!14 = !{!"function_entry_count", i64 0} +!9 = !{!"IsPartialProfile", i64 0} +!10 = !{!"DetailedSummary", !11} +!11 = !{!12, !13, !14} +!12 = !{i32 10000, i64 100, i32 1} +!13 = !{i32 999000, i64 100, i32 1} +!14 = !{i32 999999, i64 1, i32 2} +!15 = !{!"function_entry_count", i64 0} Index: llvm/test/Other/new-pm-thinlto-postlink-pgo-defaults.ll =================================================================== --- llvm/test/Other/new-pm-thinlto-postlink-pgo-defaults.ll +++ llvm/test/Other/new-pm-thinlto-postlink-pgo-defaults.ll @@ -256,7 +256,7 @@ !llvm.module.flags = !{!0} !0 = !{i32 1, !"ProfileSummary", !1} -!1 = !{!2, !3, !4, !5, !6, !7, !8, !9} +!1 = !{!2, !3, !4, !5, !6, !7, !8, !9, !10} !2 = !{!"ProfileFormat", !"InstrProf"} !3 = !{!"TotalCount", i64 0} !4 = !{!"MaxCount", i64 0} @@ -264,21 +264,22 @@ !6 = !{!"MaxFunctionCount", i64 0} !7 = !{!"NumCounts", i64 0} !8 = !{!"NumFunctions", i64 0} -!9 = !{!"DetailedSummary", !10} -!10 = !{!11, !12, !13, !14, !15, !16, !17, !18, !19, !20, !21, !22, !23, !24, !25, !26} -!11 = !{i32 10000, i64 0, i32 0} -!12 = !{i32 100000, i64 0, i32 0} -!13 = !{i32 200000, i64 0, i32 0} -!14 = !{i32 300000, i64 0, i32 0} -!15 = !{i32 400000, i64 0, i32 0} -!16 = !{i32 500000, i64 0, i32 0} -!17 = !{i32 600000, i64 0, i32 0} -!18 = !{i32 700000, i64 0, i32 0} -!19 = !{i32 800000, i64 0, i32 0} -!20 = !{i32 900000, i64 0, i32 0} -!21 = !{i32 950000, i64 0, i32 0} -!22 = !{i32 990000, i64 0, i32 0} -!23 = !{i32 999000, i64 0, i32 0} -!24 = !{i32 999900, i64 0, i32 0} -!25 = !{i32 999990, i64 0, i32 0} -!26 = !{i32 999999, i64 0, i32 0} +!9 = !{!"IsPartialProfile", i64 0} +!10 = !{!"DetailedSummary", !11} +!11 = !{!12, !13, !14, !15, !16, !17, !18, !19, !20, !21, !22, !23, !24, !25, !26, !27} +!12 = !{i32 10000, i64 0, i32 0} +!13 = !{i32 100000, i64 0, i32 0} +!14 = !{i32 200000, i64 0, i32 0} +!15 = !{i32 300000, i64 0, i32 0} +!16 = !{i32 400000, i64 0, i32 0} +!17 = !{i32 500000, i64 0, i32 0} +!18 = !{i32 600000, i64 0, i32 0} +!19 = !{i32 700000, i64 0, i32 0} +!20 = !{i32 800000, i64 0, i32 0} +!21 = !{i32 900000, i64 0, i32 0} +!22 = !{i32 950000, i64 0, i32 0} +!23 = !{i32 990000, i64 0, i32 0} +!24 = !{i32 999000, i64 0, i32 0} +!25 = !{i32 999900, i64 0, i32 0} +!26 = !{i32 999990, i64 0, i32 0} +!27 = !{i32 999999, i64 0, i32 0} Index: llvm/test/Transforms/CodeExtractor/PartialInlineORECrash.ll =================================================================== --- llvm/test/Transforms/CodeExtractor/PartialInlineORECrash.ll +++ llvm/test/Transforms/CodeExtractor/PartialInlineORECrash.ll @@ -57,7 +57,7 @@ ; Function Attrs: argmemonly nounwind declare void @llvm.memset.p0i8.i64(i8* nocapture writeonly, i8, i64, i1) #0 -define void @_ZN23btDiscreteDynamicsWorld28internalSingleStepSimulationEf(%6*, float) unnamed_addr align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) !prof !27 { +define void @_ZN23btDiscreteDynamicsWorld28internalSingleStepSimulationEf(%6*, float) unnamed_addr align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) !prof !28 { invoke void null(%6* nonnull %0, float %1) to label %5 unwind label %3 @@ -105,12 +105,12 @@ resume { i8*, i32 } zeroinitializer } -define void @_ZN23btDiscreteDynamicsWorld21updateActivationStateEf(%6* nocapture readonly, float) local_unnamed_addr align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) !prof !27 { +define void @_ZN23btDiscreteDynamicsWorld21updateActivationStateEf(%6* nocapture readonly, float) local_unnamed_addr align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) !prof !28 { %3 = icmp sgt i32 0, 0 - br i1 %3, label %4, label %5, !prof !29 + br i1 %3, label %4, label %5, !prof !30 ;