summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
authorYi Jiang <yjiang@apple.com>2013-12-12 01:37:39 +0000
committerYi Jiang <yjiang@apple.com>2013-12-12 01:37:39 +0000
commit53823be49dbf799c332ff3fceb8ffedb6b938d7a (patch)
tree9945eafb9ff6b5ab5ef2ce45d98bff2359684b8d /llvm
parent75a1729c4b474e588586594ff6b12434360306ab (diff)
downloadbcm5719-llvm-53823be49dbf799c332ff3fceb8ffedb6b938d7a.tar.gz
bcm5719-llvm-53823be49dbf799c332ff3fceb8ffedb6b938d7a.zip
Add TargetLibraryInfo in LTO passes builder
llvm-svn: 197105
Diffstat (limited to 'llvm')
-rw-r--r--llvm/lib/LTO/LTOCodeGenerator.cpp4
-rw-r--r--llvm/test/LTO/triple-init.ll19
2 files changed, 23 insertions, 0 deletions
diff --git a/llvm/lib/LTO/LTOCodeGenerator.cpp b/llvm/lib/LTO/LTOCodeGenerator.cpp
index 779b4a26174..7d5d82a93cc 100644
--- a/llvm/lib/LTO/LTOCodeGenerator.cpp
+++ b/llvm/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/llvm/test/LTO/triple-init.ll b/llvm/test/LTO/triple-init.ll
new file mode 100644
index 00000000000..b2c6dd89b5f
--- /dev/null
+++ b/llvm/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
+}
OpenPOWER on IntegriCloud