diff options
author | Mehdi Amini <mehdi.amini@apple.com> | 2017-03-28 18:55:44 +0000 |
---|---|---|
committer | Mehdi Amini <mehdi.amini@apple.com> | 2017-03-28 18:55:44 +0000 |
commit | b5a46c1f45a7ecbcfc99b682000bbc8c0b7712a5 (patch) | |
tree | 972dd2ecfc3057b58307a5a21430ddaf51bef889 /llvm/test/ThinLTO | |
parent | 9053f22eeb3ab0f1f0089e4e6b98093891d361bb (diff) | |
download | bcm5719-llvm-b5a46c1f45a7ecbcfc99b682000bbc8c0b7712a5.tar.gz bcm5719-llvm-b5a46c1f45a7ecbcfc99b682000bbc8c0b7712a5.zip |
Add support for -fno-builtin to LTO and ThinLTO to libLTO
Reviewers: tejohnson, pcc
Subscribers: Prazek, dexonsmith, llvm-commits
Differential Revision: https://reviews.llvm.org/D30791
llvm-svn: 298936
Diffstat (limited to 'llvm/test/ThinLTO')
-rw-r--r-- | llvm/test/ThinLTO/X86/tli-nobuiltin.ll | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/llvm/test/ThinLTO/X86/tli-nobuiltin.ll b/llvm/test/ThinLTO/X86/tli-nobuiltin.ll new file mode 100644 index 00000000000..9a480cba115 --- /dev/null +++ b/llvm/test/ThinLTO/X86/tli-nobuiltin.ll @@ -0,0 +1,46 @@ +; Test -lto-freestanding option for libLTO. +; RUN: llvm-as < %s > %t.bc + +; Regular run: expects fprintf to be turned into fwrite +; RUN: llvm-lto %t.bc -exported-symbol=_foo -o %t.o +; RUN: llvm-nm %t.o | FileCheck %s --check-prefix=LTO +; LTO: fwrite + +; Freestanding run: expects fprintf to NOT be turned into fwrite +; RUN: llvm-lto %t.bc -lto-freestanding -exported-symbol=_foo -o %t.o +; RUN: llvm-nm %t.o | FileCheck %s --check-prefix=LTO-FREESTANDING +; LTO-FREESTANDING: fprintf + +; Same with ThinLTO now. +; RUN: opt -module-hash -module-summary %s -o %t.bc + +; Regular run: expects fprintf to be turned into fwrite +; RUN: llvm-lto -exported-symbol=_foo -thinlto-action=run %t.bc +; RUN: llvm-nm %t.bc.thinlto.o | FileCheck %s --check-prefix=ThinLTO +; ThinLTO: fwrite + +; Freestanding run: expects fprintf to NOT be turned into fwrite +; RUN: llvm-lto -lto-freestanding -exported-symbol=_foo -thinlto-action=run %t.bc +; RUN: llvm-nm %t.bc.thinlto.o | FileCheck %s --check-prefix=ThinLTO-FREESTANDING +; ThinLTO-FREESTANDING: fprintf + + +target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-macosx10.11.0" + +declare i32 @fprintf(%FILE*, i8*, ...) + +%FILE = type { } + +@hello_world = constant [13 x i8] c"hello world\0A\00" +@percent_s = constant [3 x i8] c"%s\00" + +; Check fprintf(fp, "%s", str) -> fwrite(str, fp) only when builtins are enabled + +define void @foo(%FILE* %fp) { + %fmt = getelementptr [3 x i8], [3 x i8]* @percent_s, i32 0, i32 0 + %str = getelementptr [13 x i8], [13 x i8]* @hello_world, i32 0, i32 0 + call i32 (%FILE*, i8*, ...) @fprintf(%FILE* %fp, i8* %fmt, i8* %str) + ret void +} + |