[PATCH] D35126: [LTO] Add a test for ThinLTO + --wrap

Davide Italiano via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jul 7 09:20:22 PDT 2017


davide created this revision.
Herald added subscribers: inglorion, emaste.

We should get this right after r307303.


https://reviews.llvm.org/D35126

Files:
  test/ELF/lto/wrap-1.ll
  test/ELF/lto/wrap-2.ll


Index: test/ELF/lto/wrap-2.ll
===================================================================
--- test/ELF/lto/wrap-2.ll
+++ test/ELF/lto/wrap-2.ll
@@ -1,18 +1,32 @@
 ; REQUIRES: x86
+; LTO
 ; RUN: llvm-as %s -o %t.o
 ; RUN: llvm-as %S/Inputs/wrap-bar.ll -o %t1.o
 ; RUN: ld.lld %t.o %t1.o -shared -o %t.so -wrap=bar
 ; RUN: llvm-objdump -d %t.so | FileCheck %s
 ; RUN: llvm-readobj -t %t.so | FileCheck -check-prefix=BIND %s
 
+; ThinLTO
+; RUN: opt -module-summary %s -o %t.o
+; RUN: opt -module-summary %S/Inputs/wrap-bar.ll -o %t1.o
+; RUN: ld.lld %t.o %t1.o -shared -o %t.so -wrap=bar
+; RUN: llvm-objdump -d %t.so | FileCheck %s -check-prefix=THIN
+; RUN: llvm-readobj -t %t.so | FileCheck -check-prefix=BIND %s
+
 ; Make sure that calls in foo() are not eliminated and that bar is
 ; routed to __wrap_bar and __real_bar is routed to bar.
 
 ; CHECK:      foo:
 ; CHECK-NEXT: pushq	%rax
 ; CHECK-NEXT: callq{{.*}}<__wrap_bar>
 ; CHECK-NEXT: callq{{.*}}<bar>
 
+; THIN:      foo:
+; THIN-NEXT: pushq	%rax
+; THIN-NEXT: callq{{.*}}<__wrap_bar>
+; THIN-NEXT: popq  %rax
+; THIN-NEXT: jmp{{.*}}<bar>
+
 ; Check that bar and __wrap_bar retain their original binding.
 ; BIND:      Name: bar
 ; BIND-NEXT: Value:
Index: test/ELF/lto/wrap-1.ll
===================================================================
--- test/ELF/lto/wrap-1.ll
+++ test/ELF/lto/wrap-1.ll
@@ -1,9 +1,16 @@
 ; REQUIRES: x86
+; LTO
 ; RUN: llvm-as %s -o %t.o
 ; RUN: ld.lld %t.o -o %t.out -wrap=bar -save-temps
 ; RUN: llvm-readobj -t %t.out | FileCheck %s
 ; RUN: cat %t.out.resolution.txt | FileCheck -check-prefix=RESOLS %s
 
+; ThinLTO
+; RUN: opt -module-summary %s -o %t.o
+; RUN: ld.lld %t.o -o %t.out -wrap=bar -save-temps
+; RUN: llvm-readobj -t %t.out | FileCheck %s
+; RUN: cat %t.out.resolution.txt | FileCheck -check-prefix=RESOLS %s
+
 ; CHECK:      Name: __wrap_bar
 ; CHECK-NEXT: Value:
 ; CHECK-NEXT: Size:


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D35126.105653.patch
Type: text/x-patch
Size: 1902 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170707/e8195994/attachment.bin>


More information about the llvm-commits mailing list