[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