1*11791ae7SSayhaan Siddiqui## Verifies that llvm-bolt correctly sorts functions by their execution counts. 29460ebd1Sspupyrev 3d158ee57SHans Wennborg# REQUIRES: x86_64-linux, asserts 4d158ee57SHans Wennborg 59460ebd1Sspupyrev# RUN: llvm-mc -filetype=obj -triple x86_64-unknown-unknown %s -o %t.o 69460ebd1Sspupyrev# RUN: link_fdata %s %t.o %t.fdata 79460ebd1Sspupyrev# RUN: %clang %cflags %t.o -o %t.exe -Wl,-q 89460ebd1Sspupyrev# RUN: llvm-bolt %t.exe --data %t.fdata --lite --reorder-functions=exec-count \ 9ab14eb23SAmir Ayupov# RUN: -v=2 --debug-only=hfsort -o %t.null 2>&1 | FileCheck %s 109460ebd1Sspupyrev 119460ebd1Sspupyrev# CHECK: Starting pass: reorder-functions 129460ebd1Sspupyrev# CHECK-NEXT: hot func func2 (1500) 139460ebd1Sspupyrev# CHECK-NEXT: hot func func1 (500) 149460ebd1Sspupyrev# CHECK-NEXT: hot func main (400) 159460ebd1Sspupyrev# CHECK-NEXT: hot func func5 (110) 169460ebd1Sspupyrev# CHECK-NEXT: hot func func3 (100) 179460ebd1Sspupyrev# CHECK-NEXT: hot func func4 (99) 189460ebd1Sspupyrev 199460ebd1Sspupyrev .text 209460ebd1Sspupyrev .globl main 219460ebd1Sspupyrev .type main, %function 229460ebd1Sspupyrevmain: 239460ebd1Sspupyrev# FDATA: 0 [unknown] 0 1 main 0 1 400 249460ebd1Sspupyrev .cfi_startproc 259460ebd1Sspupyrev call func1 269460ebd1Sspupyrev retq 279460ebd1Sspupyrev .size _start, .-_start 289460ebd1Sspupyrev .cfi_endproc 299460ebd1Sspupyrev 309460ebd1Sspupyrev .globl func1 319460ebd1Sspupyrev .type func1,@function 329460ebd1Sspupyrevfunc1: 339460ebd1Sspupyrev# FDATA: 0 [unknown] 0 1 func1 0 1 500 349460ebd1Sspupyrev .cfi_startproc 359460ebd1Sspupyrev retq 369460ebd1Sspupyrev .size func1, .-func1 379460ebd1Sspupyrev .cfi_endproc 389460ebd1Sspupyrev 399460ebd1Sspupyrev .globl func2 409460ebd1Sspupyrev .type func2,@function 419460ebd1Sspupyrevfunc2: 429460ebd1Sspupyrev# FDATA: 0 [unknown] 0 1 func2 0 1 1500 439460ebd1Sspupyrev .cfi_startproc 449460ebd1Sspupyrev retq 459460ebd1Sspupyrev .size func2, .-func2 469460ebd1Sspupyrev .cfi_endproc 479460ebd1Sspupyrev 489460ebd1Sspupyrev .globl func3 499460ebd1Sspupyrev .type func3,@function 509460ebd1Sspupyrevfunc3: 519460ebd1Sspupyrev# FDATA: 0 [unknown] 0 1 func3 0 1 100 529460ebd1Sspupyrev .cfi_startproc 539460ebd1Sspupyrev retq 549460ebd1Sspupyrev .size func3, .-func3 559460ebd1Sspupyrev .cfi_endproc 569460ebd1Sspupyrev 579460ebd1Sspupyrev .globl func4 589460ebd1Sspupyrev .type func4,@function 599460ebd1Sspupyrevfunc4: 609460ebd1Sspupyrev# FDATA: 0 [unknown] 0 1 func4 0 1 99 619460ebd1Sspupyrev .cfi_startproc 629460ebd1Sspupyrev retq 639460ebd1Sspupyrev .size func4, .-func4 649460ebd1Sspupyrev .cfi_endproc 659460ebd1Sspupyrev 669460ebd1Sspupyrev .globl func5 679460ebd1Sspupyrev .type func5,@function 689460ebd1Sspupyrevfunc5: 699460ebd1Sspupyrev# FDATA: 0 [unknown] 0 1 func5 0 1 110 709460ebd1Sspupyrev .cfi_startproc 719460ebd1Sspupyrev retq 729460ebd1Sspupyrev .size func5, .-func5 739460ebd1Sspupyrev .cfi_endproc 74