[lld] r307410 - [LTO] Add a test for ThinLTO + --wrap.

Davide Italiano via llvm-commits llvm-commits at lists.llvm.org
Fri Jul 7 09:33:01 PDT 2017


Author: davide
Date: Fri Jul  7 09:33:01 2017
New Revision: 307410

URL: http://llvm.org/viewvc/llvm-project?rev=307410&view=rev
Log:
[LTO] Add a test for ThinLTO + --wrap.

We should get this right after r307303.

Differential Revision:  https://reviews.llvm.org/D35126

Modified:
    lld/trunk/test/ELF/lto/wrap-1.ll
    lld/trunk/test/ELF/lto/wrap-2.ll

Modified: lld/trunk/test/ELF/lto/wrap-1.ll
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/lto/wrap-1.ll?rev=307410&r1=307409&r2=307410&view=diff
==============================================================================
--- lld/trunk/test/ELF/lto/wrap-1.ll (original)
+++ lld/trunk/test/ELF/lto/wrap-1.ll Fri Jul  7 09:33:01 2017
@@ -1,8 +1,15 @@
 ; 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:

Modified: lld/trunk/test/ELF/lto/wrap-2.ll
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/lto/wrap-2.ll?rev=307410&r1=307409&r2=307410&view=diff
==============================================================================
--- lld/trunk/test/ELF/lto/wrap-2.ll (original)
+++ lld/trunk/test/ELF/lto/wrap-2.ll Fri Jul  7 09:33:01 2017
@@ -1,10 +1,18 @@
 ; 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.
 
@@ -13,6 +21,12 @@
 ; 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:




More information about the llvm-commits mailing list