diff options
| author | Jessica Paquette <jpaquette@apple.com> | 2018-04-03 21:36:00 +0000 |
|---|---|---|
| committer | Jessica Paquette <jpaquette@apple.com> | 2018-04-03 21:36:00 +0000 |
| commit | d506bf8e3d0ff9f2637269553c43328b8b0e7371 (patch) | |
| tree | 3a50cff881c89a2a725b118d91616c126058d21c /llvm/test | |
| parent | 88f40cf303c33cc1d8231e140ec19a78e1aa64f8 (diff) | |
| download | bcm5719-llvm-d506bf8e3d0ff9f2637269553c43328b8b0e7371.tar.gz bcm5719-llvm-d506bf8e3d0ff9f2637269553c43328b8b0e7371.zip | |
[MachineOutliner][NFC] Make outlined functions have internal linkage
The linkage type on outlined functions was private before. This meant that if
you set a breakpoint in an outlined function, the debugger wouldn't be able to
give a sane name to the outlined function.
This commit changes the linkage type to internal and updates any tests that
relied on the prefixes on the names of outlined functions.
llvm-svn: 329116
Diffstat (limited to 'llvm/test')
| -rw-r--r-- | llvm/test/CodeGen/AArch64/machine-outliner.ll | 28 | ||||
| -rw-r--r-- | llvm/test/CodeGen/X86/machine-outliner-debuginfo.ll | 8 | ||||
| -rw-r--r-- | llvm/test/CodeGen/X86/machine-outliner-tailcalls.ll | 10 | ||||
| -rw-r--r-- | llvm/test/CodeGen/X86/machine-outliner.ll | 26 |
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) |

