From 1f65039f06766f2fd1cd9f70d0932c8db229e390 Mon Sep 17 00:00:00 2001 From: Mehdi Amini Date: Wed, 27 Apr 2016 01:47:46 +0000 Subject: [PATCH] Add a test for r267655: Support "preserving" the summary information when using setModule() API in LTOCodeGenerator From: Mehdi Amini llvm-svn: 267656 --- llvm/test/LTO/X86/set-merged-thin.ll | 39 ++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 llvm/test/LTO/X86/set-merged-thin.ll diff --git a/llvm/test/LTO/X86/set-merged-thin.ll b/llvm/test/LTO/X86/set-merged-thin.ll new file mode 100644 index 0000000..715bc80 --- /dev/null +++ b/llvm/test/LTO/X86/set-merged-thin.ll @@ -0,0 +1,39 @@ +; RUN: opt -module-summary < %s > %t1 +; RUN: llvm-lto -save-merged-module -exported-symbol=_main -set-merged-module -o %t2 %t1 +; RUN: llvm-bcanalyzer -dump %t2.merged.bc | FileCheck %s +; Verify that the module includes the ThinLTO informations +; CHECK: GLOBALVAL_SUMMARY_BLOCK + + +target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-apple-macosx10.10.0" + +; CHECK: _main +; CHECK: movl $132 +define i32 @_Z3fooi(i32 %a) { +entry: + %a.addr = alloca i32, align 4 + store i32 %a, i32* %a.addr, align 4 + %0 = load i32, i32* %a.addr, align 4 + %1 = load i32, i32* %a.addr, align 4 + %call = call i32 @_Z4bar2i(i32 %1) + %add = add nsw i32 %0, %call + ret i32 %add +} + +define i32 @_Z4bar2i(i32 %a) { +entry: + %a.addr = alloca i32, align 4 + store i32 %a, i32* %a.addr, align 4 + %0 = load i32, i32* %a.addr, align 4 + %mul = mul nsw i32 2, %0 + ret i32 %mul +} + +define i32 @main() { +entry: + %retval = alloca i32, align 4 + store i32 0, i32* %retval + %call = call i32 @_Z3fooi(i32 44) + ret i32 %call +} -- 2.7.4