Summary: In r277849, getEntryCount was changed to return None when the entry count was 0, specifically for SamplePGO where it means no samples were recorded. However, for instrumentation PGO a 0 entry count should be returned directly, since it does mean that the function was completely cold. Otherwise we end up treating these functions conservatively in isFunctionEntryCold() and isColdBB(). Instead, for SamplePGO use -1 when there are no samples, and change getEntryCount to return None when the value is -1. Reviewers: danielcdh, davidxl Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D41307 llvm-svn: 321018
32 lines
1.3 KiB
LLVM
32 lines
1.3 KiB
LLVM
; RUN: opt < %s -sample-profile -sample-profile-file=%S/Inputs/entry_counts.prof -S | FileCheck %s
|
|
; RUN: opt < %s -passes=sample-profile -sample-profile-file=%S/Inputs/entry_counts.prof -S | FileCheck %s
|
|
|
|
; According to the profile, function empty() was called 13,293 times.
|
|
; CHECK: {{.*}} = !{!"function_entry_count", i64 13294}
|
|
|
|
define void @empty() !dbg !4 {
|
|
entry:
|
|
ret void, !dbg !9
|
|
}
|
|
|
|
; This function does not have profile, check if function_entry_count is -1
|
|
; CHECK: {{.*}} = !{!"function_entry_count", i64 -1}
|
|
define void @no_profile() {
|
|
entry:
|
|
ret void
|
|
}
|
|
|
|
!llvm.dbg.cu = !{!0}
|
|
!llvm.module.flags = !{!6, !7}
|
|
!llvm.ident = !{!8}
|
|
|
|
!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 3.7.0 (trunk 237249) (llvm/trunk 237261)", isOptimized: false, runtimeVersion: 0, emissionKind: LineTablesOnly, enums: !2, retainedTypes: !2, globals: !2, imports: !2)
|
|
!1 = !DIFile(filename: "entry_counts.c", directory: ".")
|
|
!2 = !{}
|
|
!4 = distinct !DISubprogram(name: "empty", scope: !1, file: !1, line: 1, type: !5, isLocal: false, isDefinition: true, scopeLine: 1, isOptimized: false, unit: !0, variables: !2)
|
|
!5 = !DISubroutineType(types: !2)
|
|
!6 = !{i32 2, !"Dwarf Version", i32 4}
|
|
!7 = !{i32 2, !"Debug Info Version", i32 3}
|
|
!8 = !{!"clang version 3.7.0 (trunk 237249) (llvm/trunk 237261)"}
|
|
!9 = !DILocation(line: 1, column: 15, scope: !4)
|