aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
diff options
context:
space:
mode:
authorSam Clegg <sbc@chromium.org>2018-11-16 18:59:51 +0000
committerSam Clegg <sbc@chromium.org>2018-11-16 18:59:51 +0000
commit74f5fd4e32b8761045c8c0187f7cdf9b03301838 (patch)
treebd93db9b64e9a1fe1243dd940801c6f16d7ed40c /llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
parent755577168ac1d61feff36287a1361bbb21e385c3 (diff)
downloadllvm-74f5fd4e32b8761045c8c0187f7cdf9b03301838.zip
llvm-74f5fd4e32b8761045c8c0187f7cdf9b03301838.tar.gz
llvm-74f5fd4e32b8761045c8c0187f7cdf9b03301838.tar.bz2
[WebAssembly] Default to static reloc model
Differential Revision: https://reviews.llvm.org/D54637 llvm-svn: 347073
Diffstat (limited to 'llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp')
-rw-r--r--llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp b/llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
index 954c8a6..c28cfde 100644
--- a/llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
+++ b/llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
@@ -82,8 +82,12 @@ extern "C" void LLVMInitializeWebAssemblyTarget() {
//===----------------------------------------------------------------------===//
static Reloc::Model getEffectiveRelocModel(Optional<Reloc::Model> RM) {
- if (!RM.hasValue())
- return Reloc::PIC_;
+ if (!RM.hasValue()) {
+ // Default to static relocation model. This should always be more optimial
+ // than PIC since the static linker can determine all global addresses and
+ // assume direct function calls.
+ return Reloc::Static;
+ }
return *RM;
}