forked from OSchip/llvm-project
35 lines
986 B
ArmAsm
35 lines
986 B
ArmAsm
# This reproduces a bug with dynostats when trying to compute branch stats
|
|
# at a block with two tails calls (one conditional and one unconditional).
|
|
|
|
# REQUIRES: system-linux
|
|
|
|
# RUN: llvm-mc -filetype=obj -triple x86_64-unknown-unknown \
|
|
# RUN: %s -o %t.o
|
|
# RUN: link_fdata %s %t.o %t.fdata
|
|
# RUN: llvm-strip --strip-unneeded %t.o
|
|
# RUN: %clang %cflags %t.o -o %t.exe -Wl,-q -nostdlib
|
|
# RUN: llvm-bolt %t.exe -o %t.out --data %t.fdata --lite=0 --dyno-stats \
|
|
# RUN: --print-sctc --print-only=_start 2>&1 | FileCheck %s
|
|
# CHECK-NOT: Assertion `BranchInfo.size() == 2 && "could only be called for blocks with 2 successors"' failed.
|
|
# Two tail calls in the same basic block after SCTC:
|
|
# CHECK: {{.*}}: ja {{.*}} # TAILCALL # CTCTakenCount: {{.*}}
|
|
# CHECK-NEXT: {{.*}}: jmp {{.*}} # TAILCALL
|
|
|
|
.globl _start
|
|
_start:
|
|
je x
|
|
a: ja b
|
|
jmp c
|
|
x: ret
|
|
# FDATA: 1 _start #a# 1 _start #b# 2 4
|
|
b: jmp e
|
|
c: jmp f
|
|
|
|
.globl e
|
|
e:
|
|
nop
|
|
|
|
.globl f
|
|
f:
|
|
nop
|