brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.7 KiB · b029e66 Raw
129 lines · plain
1# REQUIRES: x862## basic-block-sections tests.3## This simple test checks if redundant direct jumps are converted to4## implicit fallthrus.  The jcc's must be converted to their inverted5## opcode, for instance jne to je and jmp must be deleted.6 7# RUN: llvm-mc -filetype=obj -triple=x86_64 %s -o %t.o8# RUN: ld.lld  --optimize-bb-jumps %t.o -o %t.out9# RUN: llvm-objdump -d %t.out| FileCheck %s10 11# CHECK:      <foo>:12# CHECK-NEXT:  nopl    (%rax)13# CHECK-NEXT:  jne      0x{{[[:xdigit:]]+}} <r.BB.foo>14# CHECK-NOT:   jmp15 16 17.section	.text,"ax",@progbits18.type	foo,@function19foo:20 nopl (%rax)21 je	a.BB.foo22 jmp	r.BB.foo23 24# CHECK:      <a.BB.foo>:25# CHECK-NEXT:  nopl (%rax)26# CHECK-NEXT:  je 0x{{[[:xdigit:]]+}} <r.BB.foo>27# CHECK-NOT:   jmp28 29.section	.text,"ax",@progbits,unique,330a.BB.foo:31 nopl (%rax)32 jne	aa.BB.foo33 jmp	r.BB.foo34 35# CHECK:      <aa.BB.foo>:36# CHECK-NEXT:  nopl (%rax)37# CHECK-NEXT:  jle 0x{{[[:xdigit:]]+}} <r.BB.foo>38# CHECK-NOT:   jmp39#40.section	.text,"ax",@progbits,unique,441aa.BB.foo:42 nopl (%rax)43 jg	aaa.BB.foo44 jmp	r.BB.foo45 46# CHECK:      <aaa.BB.foo>:47# CHECK-NEXT:  nopl (%rax)48# CHECK-NEXT:  jl 0x{{[[:xdigit:]]+}} <r.BB.foo>49# CHECK-NOT:   jmp50#51.section	.text,"ax",@progbits,unique,552aaa.BB.foo:53 nopl (%rax)54 jge	aaaa.BB.foo55 jmp	r.BB.foo56 57# CHECK:      <aaaa.BB.foo>:58# CHECK-NEXT:  nopl (%rax)59# CHECK-NEXT:  jae 0x{{[[:xdigit:]]+}} <r.BB.foo>60# CHECK-NOT:   jmp61#62.section	.text,"ax",@progbits,unique,663aaaa.BB.foo:64 nopl (%rax)65 jb	aaaaa.BB.foo66 jmp	r.BB.foo67 68# CHECK:      <aaaaa.BB.foo>:69# CHECK-NEXT:  nopl (%rax)70# CHECK-NEXT:  ja 0x{{[[:xdigit:]]+}} <r.BB.foo>71# CHECK-NOT:   jmp72#73.section	.text,"ax",@progbits,unique,774aaaaa.BB.foo:75 nopl (%rax)76 jbe	aaaaaa.BB.foo77 jmp	r.BB.foo78 79# CHECK:      <aaaaaa.BB.foo>:80# CHECK-NEXT:  nopl (%rax)81# CHECK-NEXT:  jge 0x{{[[:xdigit:]]+}} <r.BB.foo>82# CHECK-NOT:   jmp83#84.section	.text,"ax",@progbits,unique,885aaaaaa.BB.foo:86 nopl (%rax)87 jl	aaaaaaa.BB.foo88 jmp	r.BB.foo89 90# CHECK:      <aaaaaaa.BB.foo>:91# CHECK-NEXT:  nopl (%rax)92# CHECK-NEXT:  jg 0x{{[[:xdigit:]]+}} <r.BB.foo>93# CHECK-NOT:   jmp94#95.section	.text,"ax",@progbits,unique,996aaaaaaa.BB.foo:97 nopl (%rax)98 jle	aaaaaaaa.BB.foo99 jmp	r.BB.foo100 101# CHECK:      <aaaaaaaa.BB.foo>:102# CHECK-NEXT:  nopl (%rax)103# CHECK-NEXT:  jbe 0x{{[[:xdigit:]]+}} <r.BB.foo>104# CHECK-NOT:   jmp105#106.section	.text,"ax",@progbits,unique,10107aaaaaaaa.BB.foo:108 nopl (%rax)109 ja	aaaaaaaaa.BB.foo110 jmp	r.BB.foo111 112# CHECK:      <aaaaaaaaa.BB.foo>:113# CHECK-NEXT:  nopl (%rax)114# CHECK-NEXT:  jb 0x{{[[:xdigit:]]+}} <r.BB.foo>115# CHECK-NOT:   jmp116#117.section	.text,"ax",@progbits,unique,11118aaaaaaaaa.BB.foo:119 nopl (%rax)120 jae	aaaaaaaaaa.BB.foo121 jmp	r.BB.foo122 123.section	.text,"ax",@progbits,unique,20124aaaaaaaaaa.BB.foo:125 nopl (%rax)126 127r.BB.foo:128 ret129