mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-11-28 08:02:08 +00:00
deb53102a7
When optimizations passes do not change anything, skip their diagnostics output. NFC otherwise. Reviewed By: Amir Differential Revision: https://reviews.llvm.org/D153386
54 lines
1.1 KiB
ArmAsm
54 lines
1.1 KiB
ArmAsm
# This reproduces issue 20 from our github repo
|
|
# "BOLT crashes when removing unreachable BBs that are a target
|
|
# in a JT"
|
|
|
|
# REQUIRES: system-linux
|
|
|
|
# RUN: llvm-mc -filetype=obj -triple x86_64-unknown-unknown \
|
|
# RUN: %s -o %t.o
|
|
# RUN: %clang %cflags -no-pie %t.o -o %t.exe
|
|
# RUN: llvm-bolt %t.exe --relocs=0 --jump-tables=move --print-finalized \
|
|
# RUN: -o %t.out | FileCheck %s
|
|
|
|
# CHECK-NOT: BOLT-INFO: UCE removed {{.*}} blocks and {{.*}} bytes of code
|
|
# CHECK: Binary Function "main"
|
|
# CHECK: .LFT{{.*}} (2 instructions, align : 1)
|
|
# CHECK-NEXT: CFI State : 0
|
|
# CHECK-NEXT: 00000004: andq
|
|
# CHECK-NEXT: 00000008: jmpq
|
|
# CHECK-NEXT: Successors: .Ltmp{{.*}}, .Ltmp{{.*}}, .Ltmp{{.*}}, .Ltmp{{.*}}
|
|
|
|
|
|
.text
|
|
.globl main
|
|
.type main, %function
|
|
.size main, .Lend1-main
|
|
main:
|
|
xorq %rax, %rax
|
|
retq
|
|
andq $3, %rdi
|
|
jmpq *jumptbl(,%rdi,8)
|
|
|
|
.Lbb1:
|
|
movl $0x1, %eax
|
|
jmp .Lexit
|
|
.Lbb2:
|
|
movl $0x2, %eax
|
|
jmp .Lexit
|
|
.Lbb3:
|
|
movl $0x3, %eax
|
|
jmp .Lexit
|
|
.Lbb4:
|
|
movl $0x4, %eax
|
|
.Lexit:
|
|
retq
|
|
.Lend1:
|
|
|
|
.section .rodata
|
|
.globl jumptbl
|
|
jumptbl:
|
|
.quad .Lbb1
|
|
.quad .Lbb2
|
|
.quad .Lbb3
|
|
.quad .Lbb4
|