From 7c2b072d69cc4743866f56eb538cc7674dcd289e Mon Sep 17 00:00:00 2001 From: Yi Jiang Date: Thu, 12 Dec 2013 01:37:39 +0000 Subject: [PATCH] Add TargetLibraryInfo in LTO passes builder git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@197105 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/LTO/LTOCodeGenerator.cpp | 4 ++++ test/LTO/triple-init.ll | 19 +++++++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 test/LTO/triple-init.ll diff --git a/lib/LTO/LTOCodeGenerator.cpp b/lib/LTO/LTOCodeGenerator.cpp index 779b4a26174..7d5d82a93cc 100644 --- a/lib/LTO/LTOCodeGenerator.cpp +++ b/lib/LTO/LTOCodeGenerator.cpp @@ -460,6 +460,10 @@ bool LTOCodeGenerator::generateObjectFile(raw_ostream &out, // Add an appropriate DataLayout instance for this module... passes.add(new DataLayout(*TargetMach->getDataLayout())); + + // Add appropriate TargetLibraryInfo for this module. + passes.add(new TargetLibraryInfo(Triple(TargetMach->getTargetTriple()))); + TargetMach->addAnalysisPasses(passes); // Enabling internalize here would use its AllButMain variant. It diff --git a/test/LTO/triple-init.ll b/test/LTO/triple-init.ll new file mode 100644 index 00000000000..b2c6dd89b5f --- /dev/null +++ b/test/LTO/triple-init.ll @@ -0,0 +1,19 @@ +; RUN: llvm-as < %s >%t1 +; RUN: llvm-lto -exported-symbol=_main -o %t2 %t1 +; RUN: llvm-nm %t2 | FileCheck %s + +; Will remove XFAIL if r196544 is resubmitted. +; XFAIL: * + +target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128" + +target triple = "x86_64-apple-macosx10.9" + +declare double @pow(double, double) + +define double @main(double %x) { +; We check that LTO will be aware of target triple and apply pow to __exp10 transformation. +; CHECK: U ___exp10 + %retval = call double @pow(double 10.0, double %x) + ret double %retval +} -- 2.34.1