about summary refs log tree commit diff
path: root/src/rustllvm/PassWrapper.cpp
diff options
context:
space:
mode:
authorDaniel Micay <danielmicay@gmail.com>2014-08-09 12:43:45 -0400
committerDaniel Micay <danielmicay@gmail.com>2014-10-12 09:18:14 -0400
commit4deb4bcba590e707e23670d8b40bc5520c5ab7fe (patch)
treeb526b8d7a52e985301ee3a96e7aaf95b01453c1a /src/rustllvm/PassWrapper.cpp
parent86509d8d7ab68c5e4202dea9ff1bfb79409f2f8d (diff)
downloadrust-4deb4bcba590e707e23670d8b40bc5520c5ab7fe.tar.gz
rust-4deb4bcba590e707e23670d8b40bc5520c5ab7fe.zip
optimize position independent code in executables
Position independent code has fewer requirements in executables, so pass
the appropriate flag to LLVM in order to allow more optimization. At the
moment this means faster thread-local storage.
Diffstat (limited to 'src/rustllvm/PassWrapper.cpp')
-rw-r--r--src/rustllvm/PassWrapper.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/rustllvm/PassWrapper.cpp b/src/rustllvm/PassWrapper.cpp
index eb074001d58..ce3090390db 100644
--- a/src/rustllvm/PassWrapper.cpp
+++ b/src/rustllvm/PassWrapper.cpp
@@ -71,6 +71,7 @@ LLVMRustCreateTargetMachine(const char *triple,
                             bool EnableSegmentedStacks,
                             bool UseSoftFloat,
                             bool NoFramePointerElim,
+                            bool PositionIndependentExecutable,
                             bool FunctionSections,
                             bool DataSections) {
     std::string Error;
@@ -83,6 +84,7 @@ LLVMRustCreateTargetMachine(const char *triple,
     }
 
     TargetOptions Options;
+    Options.PositionIndependentExecutable = PositionIndependentExecutable;
     Options.NoFramePointerElim = NoFramePointerElim;
 #if LLVM_VERSION_MINOR < 5
     Options.EnableSegmentedStacks = EnableSegmentedStacks;