brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.3 KiB · 61782f7 Raw
31 lines · plain
1## Check that profile data for the fall-through jump is not ignored when there is2## a conditional jump followed by a no-op.3 4RUN: llvm-mc -filetype=obj -triple x86_64-unknown-unknown \5RUN:   %S/Inputs/ft_to_noop.s -o %t.o6RUN: link_fdata %S/Inputs/ft_to_noop.s %t.o %t.fdata --nmtool llvm-nm7RUN: llvm-strip --strip-unneeded %t.o8RUN: %clang %cflags %t.o -o %t.exe -Wl,-q9RUN: llvm-bolt %t.exe -o %t --data %t.fdata \10RUN:   --print-cfg --sequential-disassembly 2>&1 | FileCheck %s11 12CHECK:      Binary Function "foo" after building cfg13CHECK:        Exec Count  : 2014CHECK:        Profile Acc : 100.0%15 16## This block is terminated with a conditional jump to .Ltmp0 followed by a17## no-op. The profile data contains a count for the fall-through (3) which18## is different from what would be inferred (2). However the destination19## offset of this fall-through jump in the profile data points to the no-op20## following the jump and not the start of the fall-through block .LFT0.21CHECK:      Entry Point22CHECK-NEXT:   Exec Count : 2023CHECK:        Successors: .Ltmp[[#BB1:]] (mispreds: 0, count: 18), .LFT[[#BB2:]] (mispreds: 0, count: 3)24 25CHECK:      .LFT[[#BB2]]26CHECK-NEXT:   Exec Count : 327CHECK:        Successors: .Ltmp[[#]] (mispreds: 0, count: 0)28 29CHECK:      .Ltmp[[#BB1]]30CHECK-NEXT:   Exec Count : 1831