summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/CodeGen/AArch64/machine-outliner.ll28
-rw-r--r--llvm/test/CodeGen/X86/machine-outliner-debuginfo.ll8
-rw-r--r--llvm/test/CodeGen/X86/machine-outliner-tailcalls.ll10
-rw-r--r--llvm/test/CodeGen/X86/machine-outliner.ll26
4 files changed, 40 insertions, 32 deletions
diff --git a/llvm/test/CodeGen/AArch64/machine-outliner.ll b/llvm/test/CodeGen/AArch64/machine-outliner.ll
index 9b6254fb3cc..b78d8e46b5f 100644
--- a/llvm/test/CodeGen/AArch64/machine-outliner.ll
+++ b/llvm/test/CodeGen/AArch64/machine-outliner.ll
@@ -1,16 +1,11 @@
-; RUN: llc -enable-machine-outliner -mtriple=aarch64-apple-darwin < %s | FileCheck %s -check-prefix=NoODR
+; RUN: llc -enable-machine-outliner -mtriple=aarch64-apple-darwin < %s | FileCheck %s
; RUN: llc -enable-machine-outliner -enable-linkonceodr-outlining -mtriple=aarch64-apple-darwin < %s | FileCheck %s -check-prefix=ODR
define linkonce_odr void @fish() #0 {
; CHECK-LABEL: _fish:
- ; NoODR: orr w8, wzr, #0x1
- ; NoODR-NEXT: stp w8, wzr, [sp, #8]
- ; NoODR-NEXT: orr w8, wzr, #0x2
- ; NoODR-NEXT: str w8, [sp, #4]
- ; NoODR-NEXT: orr w8, wzr, #0x3
- ; NoODR-NEXT: str w8, [sp], #16
- ; NoODR-NEXT: ret
- ; ODR: b l_OUTLINED_FUNCTION_0
+ ; CHECK-NOT: OUTLINED
+ ; ODR: [[OUTLINED:OUTLINED_FUNCTION_[0-9]+]]
+ ; ODR-NOT: ret
%1 = alloca i32, align 4
%2 = alloca i32, align 4
%3 = alloca i32, align 4
@@ -24,8 +19,10 @@ define linkonce_odr void @fish() #0 {
define void @cat() #0 {
; CHECK-LABEL: _cat:
- ; CHECK: b l_OUTLINED_FUNCTION_0
+ ; CHECK: [[OUTLINED:OUTLINED_FUNCTION_[0-9]+]]
+ ; ODR: [[OUTLINED]]
; CHECK-NOT: ret
+ ; ODR-NOT: ret
%1 = alloca i32, align 4
%2 = alloca i32, align 4
%3 = alloca i32, align 4
@@ -39,8 +36,10 @@ define void @cat() #0 {
define void @dog() #0 {
; CHECK-LABEL: _dog:
- ; CHECK: b l_OUTLINED_FUNCTION_0
+ ; CHECK: [[OUTLINED]]
+ ; ODR: [[OUTLINED]]
; CHECK-NOT: ret
+ ; ODR-NOT: ret
%1 = alloca i32, align 4
%2 = alloca i32, align 4
%3 = alloca i32, align 4
@@ -52,8 +51,9 @@ define void @dog() #0 {
ret void
}
-; CHECK-LABEL: l_OUTLINED_FUNCTION_0:
-; CHECK: orr w8, wzr, #0x1
+; ODR: [[OUTLINED]]:
+; CHECK: [[OUTLINED]]:
+; CHECK-DAG: orr w8, wzr, #0x1
; CHECK-NEXT: stp w8, wzr, [sp, #8]
; CHECK-NEXT: orr w8, wzr, #0x2
; CHECK-NEXT: str w8, [sp, #4]
@@ -61,4 +61,4 @@ define void @dog() #0 {
; CHECK-NEXT: str w8, [sp], #16
; CHECK-NEXT: ret
-attributes #0 = { noredzone nounwind ssp uwtable "no-frame-pointer-elim"="false" "target-cpu"="cyclone" }
+attributes #0 = { noredzone "target-cpu"="cyclone" }
diff --git a/llvm/test/CodeGen/X86/machine-outliner-debuginfo.ll b/llvm/test/CodeGen/X86/machine-outliner-debuginfo.ll
index 3f6552ab2f7..e7482c091bf 100644
--- a/llvm/test/CodeGen/X86/machine-outliner-debuginfo.ll
+++ b/llvm/test/CodeGen/X86/machine-outliner-debuginfo.ll
@@ -10,7 +10,8 @@ define i32 @main() #0 !dbg !11 {
%4 = alloca i32, align 4
%5 = alloca i32, align 4
; There is a debug value in the middle of this section, make sure debug values are ignored.
- ; CHECK: callq l_OUTLINED_FUNCTION_0
+ ; CHECK: callq
+ ; CHECK-SAME: OUTLINED_FUNCTION_0
store i32 1, i32* %2, align 4
store i32 2, i32* %3, align 4
store i32 3, i32* %4, align 4
@@ -20,7 +21,8 @@ define i32 @main() #0 !dbg !11 {
call void asm sideeffect "", "~{memory},~{dirflag},~{fpsr},~{flags}"()
; This is the same sequence of instructions without a debug value. It should be outlined
; in the same way.
- ; CHECK: callq l_OUTLINED_FUNCTION_0
+ ; CHECK: callq
+ ; CHECK-SAME: OUTLINED_FUNCTION_0
store i32 1, i32* %2, align 4
store i32 2, i32* %3, align 4
store i32 3, i32* %4, align 4
@@ -29,7 +31,7 @@ define i32 @main() #0 !dbg !11 {
ret i32 0, !dbg !25
}
-; CHECK-LABEL: l_OUTLINED_FUNCTION_0:
+; CHECK: OUTLINED_FUNCTION_0:
; CHECK-NOT: .loc {{[0-9]+}} {{[0-9]+}} {{[0-9]+}} {{^(is_stmt)}}
; CHECK-NOT: ##DEBUG_VALUE: main:{{[a-z]}} <- {{[0-9]+}}
; CHECK: movl $1, -{{[0-9]+}}(%rbp)
diff --git a/llvm/test/CodeGen/X86/machine-outliner-tailcalls.ll b/llvm/test/CodeGen/X86/machine-outliner-tailcalls.ll
index b7426a9c30c..6f28354c386 100644
--- a/llvm/test/CodeGen/X86/machine-outliner-tailcalls.ll
+++ b/llvm/test/CodeGen/X86/machine-outliner-tailcalls.ll
@@ -4,7 +4,8 @@
define i32 @foo0(i32) local_unnamed_addr #0 {
; CHECK-LABEL: _foo0:
-; CHECK: jmp l_OUTLINED_FUNCTION_0
+; CHECK: jmp
+; CHECK-SAME: OUTLINED_FUNCTION_0
; CHECK-NEXT: .cfi_endproc
store i32 0, i32* @x, align 4, !tbaa !2
%2 = tail call i32 @ext(i32 1) #2
@@ -15,7 +16,8 @@ declare i32 @ext(i32) local_unnamed_addr #1
define i32 @foo1(i32) local_unnamed_addr #0 {
; CHECK-LABEL: _foo1:
-; CHECK: jmp l_OUTLINED_FUNCTION_0
+; CHECK: jmp
+; CHECK-SAME: OUTLINED_FUNCTION_0
; CHECK-NEXT: .cfi_endproc
store i32 0, i32* @x, align 4, !tbaa !2
%2 = tail call i32 @ext(i32 1) #2
@@ -29,7 +31,7 @@ attributes #0 = { noredzone nounwind ssp uwtable "no-frame-pointer-elim"="false"
!4 = !{!"omnipotent char", !5, i64 0}
!5 = !{!"Simple C/C++ TBAA"}
-; CHECK-LABEL: l_OUTLINED_FUNCTION_0:
-; CHECK: movl $0, (%rax)
+; CHECK: OUTLINED_FUNCTION_0:
+; CHECK-DAG: movl $0, (%rax)
; CHECK-NEXT: movl $1, %edi
; CHECK-NEXT: jmp _ext
diff --git a/llvm/test/CodeGen/X86/machine-outliner.ll b/llvm/test/CodeGen/X86/machine-outliner.ll
index 29cf32f7985..b4c50e691ad 100644
--- a/llvm/test/CodeGen/X86/machine-outliner.ll
+++ b/llvm/test/CodeGen/X86/machine-outliner.ll
@@ -15,7 +15,8 @@ define i32 @check_boundaries() #0 {
%7 = icmp ne i32 %6, 0
br i1 %7, label %9, label %8
- ; CHECK: callq [[OFUNC1:l_OUTLINED_FUNCTION_[0-9]+]]
+ ; CHECK: callq
+ ; CHECK-SAME: [[OFUNC1:OUTLINED_FUNCTION_[0-9]+]]
; CHECK: cmpl $0, -{{[0-9]+}}(%rbp)
store i32 1, i32* %2, align 4
store i32 2, i32* %3, align 4
@@ -30,7 +31,8 @@ define i32 @check_boundaries() #0 {
%12 = icmp ne i32 %11, 0
br i1 %12, label %14, label %13
- ; CHECK: callq [[OFUNC1]]
+ ; CHECK: callq
+ ; CHECK-SAME: [[OFUNC1]]
store i32 1, i32* %2, align 4
store i32 2, i32* %3, align 4
store i32 3, i32* %4, align 4
@@ -45,13 +47,13 @@ define i32 @check_boundaries() #0 {
define i32 @empty_1() #0 {
; CHECK-LABEL: _empty_1:
- ; CHECK-NOT: callq l_OUTLINED_FUNCTION_{{[0-9]+}}
+ ; CHECK-NOT: OUTLINED_FUNCTION
ret i32 1
}
define i32 @empty_2() #0 {
; CHECK-LABEL: _empty_2
- ; CHECK-NOT: callq l_OUTLINED_FUNCTION_{{[0-9]+}}
+ ; CHECK-NOT: OUTLINED_FUNCTION
ret i32 1
}
@@ -59,7 +61,7 @@ define i32 @no_empty_outlining() #0 {
; CHECK-LABEL: _no_empty_outlining:
%1 = alloca i32, align 4
store i32 0, i32* %1, align 4
- ; CHECK-NOT: callq l_OUTLINED_FUNCTION_{{[0-9]+}}
+ ; CHECK-NOT: OUTLINED_FUNCTION
%2 = call i32 @empty_1() #1
%3 = call i32 @empty_2() #1
%4 = call i32 @empty_1() #1
@@ -79,14 +81,16 @@ define i32 @main() #0 {
store i32 0, i32* %1, align 4
store i32 0, i32* @x, align 4
- ; CHECK: callq [[OFUNC2:l_OUTLINED_FUNCTION_[0-9]+]]
+ ; CHECK: callq
+ ; CHECK-SAME: [[OFUNC2:OUTLINED_FUNCTION_[0-9]+]]
store i32 1, i32* %2, align 4
store i32 2, i32* %3, align 4
store i32 3, i32* %4, align 4
store i32 4, i32* %5, align 4
store i32 1, i32* @x, align 4
call void asm sideeffect "", "~{memory},~{dirflag},~{fpsr},~{flags}"()
- ; CHECK: callq [[OFUNC2]]
+ ; CHECK: callq
+ ; CHECK-SAME: [[OFUNC2]]
store i32 1, i32* %2, align 4
store i32 2, i32* %3, align 4
store i32 3, i32* %4, align 4
@@ -96,15 +100,15 @@ define i32 @main() #0 {
attributes #0 = { noredzone nounwind ssp uwtable "no-frame-pointer-elim"="true" }
-; CHECK-LABEL: l_OUTLINED_FUNCTION_{{[0-9]+}}:
-; CHECK: movl $1, -{{[0-9]+}}(%rbp)
+; CHECK: OUTLINED_FUNCTION_{{[0-9]+}}:
+; CHECK-DAG: movl $1, -{{[0-9]+}}(%rbp)
; CHECK-NEXT: movl $2, -{{[0-9]+}}(%rbp)
; CHECK-NEXT: movl $3, -{{[0-9]+}}(%rbp)
; CHECK-NEXT: movl $4, -{{[0-9]+}}(%rbp)
; CHECK-NEXT: retq
-; CHECK-LABEL: l_OUTLINED_FUNCTION_{{[0-9]+}}:
-; CHECK: movl $1, -{{[0-9]+}}(%rbp)
+; CHECK: OUTLINED_FUNCTION_{{[0-9]+}}:
+; CHECK-DAG: movl $1, -{{[0-9]+}}(%rbp)
; CHECK-NEXT: movl $2, -{{[0-9]+}}(%rbp)
; CHECK-NEXT: movl $3, -{{[0-9]+}}(%rbp)
; CHECK-NEXT: movl $4, -{{[0-9]+}}(%rbp)
OpenPOWER on IntegriCloud