# Verifies that llvm-bolt correctly sorts functions by their execution counts. # REQUIRES: x86_64-linux, asserts # RUN: llvm-mc -filetype=obj -triple x86_64-unknown-unknown %s -o %t.o # RUN: link_fdata %s %t.o %t.fdata # RUN: %clang %cflags %t.o -o %t.exe -Wl,-q # RUN: llvm-bolt %t.exe --data %t.fdata --lite --reorder-functions=exec-count \ # RUN: -v=2 --debug-only=hfsort -o %t.null 2>&1 | FileCheck %s # CHECK: Starting pass: reorder-functions # CHECK-NEXT: hot func func2 (1500) # CHECK-NEXT: hot func func1 (500) # CHECK-NEXT: hot func main (400) # CHECK-NEXT: hot func func5 (110) # CHECK-NEXT: hot func func3 (100) # CHECK-NEXT: hot func func4 (99) .text .globl main .type main, %function main: # FDATA: 0 [unknown] 0 1 main 0 1 400 .cfi_startproc call func1 retq .size _start, .-_start .cfi_endproc .globl func1 .type func1,@function func1: # FDATA: 0 [unknown] 0 1 func1 0 1 500 .cfi_startproc retq .size func1, .-func1 .cfi_endproc .globl func2 .type func2,@function func2: # FDATA: 0 [unknown] 0 1 func2 0 1 1500 .cfi_startproc retq .size func2, .-func2 .cfi_endproc .globl func3 .type func3,@function func3: # FDATA: 0 [unknown] 0 1 func3 0 1 100 .cfi_startproc retq .size func3, .-func3 .cfi_endproc .globl func4 .type func4,@function func4: # FDATA: 0 [unknown] 0 1 func4 0 1 99 .cfi_startproc retq .size func4, .-func4 .cfi_endproc .globl func5 .type func5,@function func5: # FDATA: 0 [unknown] 0 1 func5 0 1 110 .cfi_startproc retq .size func5, .-func5 .cfi_endproc