brintos

brintos / llvm-project-archived public Read only

0
0
Text · 877 B · 94b1578 Raw
27 lines · plain
1## Test the double jump removal peephole.2 3RUN: %clangxx %cxxflags %p/Inputs/double_jump.cpp -o %t.exe4RUN: llvm-bolt %t.exe --peepholes=double-jumps \5RUN:   --eliminate-unreachable -o %t | FileCheck --check-prefix CHECK-BOLT %s6RUN: llvm-objdump -d %t --print-imm-hex --no-show-raw-insn | FileCheck %s7 8CHECK-BOLT: BOLT-INFO: Peephole: 1 double jumps patched.9 10CHECK: <_Z3foom>:11CHECK-NEXT: pushq %rbp12CHECK-NEXT: movq  %rsp, %rbp13CHECK-NEXT: movq  %rdi, -0x8(%rbp)14CHECK-NEXT: cmpq  $0x1, -0x8(%rbp)15CHECK-NEXT: je    {{.*}} <_Z3foom+0x2c>16CHECK-NEXT: incq  -0x8(%rbp)17CHECK-NEXT: incq  -0x8(%rbp)18CHECK-NEXT: cmpq  $0x2, -0x8(%rbp)19CHECK-NEXT: je    {{.*}} <_Z3foom+0x22>20CHECK-NEXT: incq  -0x8(%rbp)21CHECK-NEXT: movq  -0x8(%rbp), %rdi22CHECK-NEXT: popq  %rbp23CHECK-NEXT: jmp   {{.*}} <bar>24CHECK-NEXT: popq  %rbp25CHECK-NEXT: incq  -0x8(%rbp)26CHECK-NEXT: jmp   {{.*}} <bar>27