[BOLT][TEST] Import small tests
Summary: Imported small internal tests. (cherry picked from FBD32371964)
This commit is contained in:
parent
c42d467276
commit
0e7dd1aad1
|
@ -0,0 +1,27 @@
|
||||||
|
.globl main
|
||||||
|
main:
|
||||||
|
jmp a
|
||||||
|
b:
|
||||||
|
callq foo
|
||||||
|
a:
|
||||||
|
jle b
|
||||||
|
|
||||||
|
.globl foo
|
||||||
|
foo:
|
||||||
|
jmp d
|
||||||
|
e:
|
||||||
|
je f
|
||||||
|
cmpl $1, g
|
||||||
|
f:
|
||||||
|
jmp j
|
||||||
|
h:
|
||||||
|
cmpl $1, 0
|
||||||
|
j:
|
||||||
|
jle h
|
||||||
|
g:
|
||||||
|
cmpl $1, 0
|
||||||
|
d:
|
||||||
|
jle e
|
||||||
|
i:
|
||||||
|
retq
|
||||||
|
# FDATA: 1 foo #i# 1 main #a# 0 1
|
|
@ -0,0 +1,6 @@
|
||||||
|
.globl main
|
||||||
|
main:
|
||||||
|
subq $0x2000000, (%r13)
|
||||||
|
.byte 0x49,0x81,0x6d,0x00,0x02,0x00,0x00,0x00
|
||||||
|
xorq %rax,%rax
|
||||||
|
ret
|
|
@ -0,0 +1,23 @@
|
||||||
|
.globl main
|
||||||
|
main:
|
||||||
|
movzbl s1(%rip), %eax
|
||||||
|
cmpb s2(%rip), %al
|
||||||
|
movzbl s1+1(%rip), %eax
|
||||||
|
cmpb s2+1(%rip), %al
|
||||||
|
movzbl s1+2(%rip), %eax
|
||||||
|
cmpb s2+2(%rip), %al
|
||||||
|
movzbl s1+3(%rip), %eax
|
||||||
|
cmpb s2+3(%rip), %al
|
||||||
|
movl I1(%rip), %eax
|
||||||
|
addl I2(%rip), %eax
|
||||||
|
movl I2(%rip), %eax
|
||||||
|
|
||||||
|
.rodata
|
||||||
|
"I1":
|
||||||
|
.long 6
|
||||||
|
"I2":
|
||||||
|
.long 67
|
||||||
|
"s1":
|
||||||
|
.string "ABC"
|
||||||
|
"s2":
|
||||||
|
.string "ABC"
|
|
@ -0,0 +1,22 @@
|
||||||
|
# Verifies that llvm-bolt prints correct loop information.
|
||||||
|
|
||||||
|
RUN: llvm-mc -filetype=obj -triple x86_64-unknown-unknown \
|
||||||
|
RUN: %p/Inputs/loop_nest.s -o %t.o
|
||||||
|
RUN: link_fdata %p/Inputs/loop_nest.s %t.o %t.fdata
|
||||||
|
RUN: llvm-strip --strip-unneeded %t.o
|
||||||
|
RUN: %clang %cflags %t.o -o %t.exe -Wl,-q
|
||||||
|
|
||||||
|
RUN: llvm-bolt %t.exe -o %t -data=%t.fdata \
|
||||||
|
RUN: -print-cfg -print-loops -sequential-disassembly -lite=0 2>&1 | FileCheck %s
|
||||||
|
|
||||||
|
CHECK: Binary Function "main" after building cfg
|
||||||
|
CHECK: Loop Info for Function "main"
|
||||||
|
CHECK: Outer loop header: .Ltmp[[#MAIN_OUTER_HDR:]]
|
||||||
|
CHECK-NEXT: Loop basic blocks: .Ltmp[[#MAIN_OUTER_HDR]], .Ltmp[[#]]
|
||||||
|
|
||||||
|
CHECK: Binary Function "foo" after building cfg
|
||||||
|
CHECK: Loop Info for Function "foo"
|
||||||
|
CHECK: Outer loop header: .Ltmp[[#FOO_OUTER_HDR:]]
|
||||||
|
CHECK-NEXT: Loop basic blocks: .Ltmp[[#FOO_OUTER_HDR]], .Ltmp[[#]], .LFT[[#]], .Ltmp[[#]], .Ltmp[[#FOO_INNER_HDR:]], .Ltmp[[#]], .Ltmp[[#FOO_INNER_BB:]]
|
||||||
|
CHECK: Nested loop header: .Ltmp[[#FOO_INNER_HDR]]
|
||||||
|
CHECK-NEXT: Loop basic blocks: .Ltmp[[#FOO_INNER_HDR]], .Ltmp[[#FOO_INNER_BB]]
|
|
@ -0,0 +1,11 @@
|
||||||
|
# Checks that peephole pass works.
|
||||||
|
|
||||||
|
RUN: %clang %p/Inputs/peephole.s -o %t.exe
|
||||||
|
RUN: llvm-bolt %t.exe -o %t -peepholes=shorten
|
||||||
|
RUN: llvm-objdump -d --disassemble-symbols=main %t | FileCheck %s
|
||||||
|
|
||||||
|
CHECK: main
|
||||||
|
CHECK-NEXT: 49 81 6d 00 00 00 00 02 subq $33554432, (%r13)
|
||||||
|
CHECK-NEXT: 49 83 6d 00 02 subq $2, (%r13)
|
||||||
|
CHECK-NEXT: 48 31 c0 xorq %rax, %rax
|
||||||
|
CHECK-NEXT: c3 retq
|
|
@ -0,0 +1,44 @@
|
||||||
|
# Check for the simplification of .rodata loads.
|
||||||
|
|
||||||
|
RUN: %clang %p/Inputs/rodata_simpl_loads.s -o %t.exe
|
||||||
|
RUN: llvm-bolt %t.exe -o %t -simplify-rodata-loads
|
||||||
|
RUN: FileCheck %s --check-prefix=ORIGINAL --input-file %p/Inputs/rodata_simpl_loads.s
|
||||||
|
RUN: llvm-objdump -d %t --print-imm-hex --disassemble-symbols=main | FileCheck %s
|
||||||
|
|
||||||
|
CHECK: Disassembly of section .text:
|
||||||
|
CHECK: <main>:
|
||||||
|
# check that the following rip-relative operands have been
|
||||||
|
# replaced with immediates
|
||||||
|
|
||||||
|
ORIGINAL: movzbl s1(%rip), %eax
|
||||||
|
CHECK: movl $0x41, %eax
|
||||||
|
|
||||||
|
ORIGINAL: cmpb s2(%rip), %al
|
||||||
|
CHECK: cmpb $0x41, %al
|
||||||
|
|
||||||
|
ORIGINAL: movzbl s1+1(%rip), %eax
|
||||||
|
CHECK: movl $0x42, %eax
|
||||||
|
|
||||||
|
ORIGINAL: cmpb s2+1(%rip), %al
|
||||||
|
CHECK: cmpb $0x42, %al
|
||||||
|
|
||||||
|
ORIGINAL: movzbl s1+2(%rip), %eax
|
||||||
|
CHECK: movl $0x43, %eax
|
||||||
|
|
||||||
|
ORIGINAL: cmpb s2+2(%rip), %al
|
||||||
|
CHECK: cmpb $0x43, %al
|
||||||
|
|
||||||
|
ORIGINAL: movzbl s1+3(%rip), %eax
|
||||||
|
CHECK: movl $0x0, %eax
|
||||||
|
|
||||||
|
ORIGINAL: cmpb s2+3(%rip), %al
|
||||||
|
CHECK: cmpb $0x0, %al
|
||||||
|
|
||||||
|
ORIGINAL: movl I1(%rip), %eax
|
||||||
|
CHECK: movl $0x6, %eax
|
||||||
|
|
||||||
|
ORIGINAL: addl I2(%rip), %eax
|
||||||
|
CHECK: addl $0x43, %eax
|
||||||
|
|
||||||
|
ORIGINAL: movl I2(%rip), %eax
|
||||||
|
CHECK: movl $0x43, %eax
|
Loading…
Reference in New Issue