[PATCH] D54637: [WebAssembly] Default to static reloc model

Phabricator via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Nov 16 11:02:36 PST 2018


This revision was automatically updated to reflect the committed changes.
Closed by commit rL347073: [WebAssembly] Default to static reloc model (authored by sbc, committed by ).

Repository:
  rL LLVM

https://reviews.llvm.org/D54637

Files:
  llvm/trunk/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
  llvm/trunk/test/CodeGen/WebAssembly/global.ll
  llvm/trunk/test/CodeGen/WebAssembly/vtable.ll


Index: llvm/trunk/test/CodeGen/WebAssembly/global.ll
===================================================================
--- llvm/trunk/test/CodeGen/WebAssembly/global.ll
+++ llvm/trunk/test/CodeGen/WebAssembly/global.ll
@@ -205,7 +205,7 @@
 ; CHECK-NEXT: .skip       8
 ; CHECK-NEXT: .size       array, 8
 ; CHECK: .type       pointer_to_array, at object
-; CHECK-NEXT: .section    .data.rel.ro.pointer_to_array,
+; CHECK-NEXT: .section    .rodata.pointer_to_array,
 ; CHECK-NEXT: .globl      pointer_to_array
 ; CHECK-NEXT: .p2align      2
 ; CHECK-NEXT: pointer_to_array:
Index: llvm/trunk/test/CodeGen/WebAssembly/vtable.ll
===================================================================
--- llvm/trunk/test/CodeGen/WebAssembly/vtable.ll
+++ llvm/trunk/test/CodeGen/WebAssembly/vtable.ll
@@ -36,7 +36,7 @@
 @_ZTS1D = constant [3 x i8] c"1D\00"
 
 ; VTABLE:       .type _ZTV1A, at object
-; VTABLE-NEXT:  .section .data.rel.ro._ZTV1A,
+; VTABLE-NEXT:  .section .rodata._ZTV1A,
 ; VTABLE-NEXT:  .globl _ZTV1A
 ; VTABLE-LABEL: _ZTV1A:
 ; VTABLE-NEXT:  .int32 0
@@ -47,7 +47,7 @@
 ; VTABLE-NEXT:  .size _ZTV1A, 20
 @_ZTV1A = constant [5 x i8*] [i8* null, i8* bitcast ({ i8*, i8* }* @_ZTI1A to i8*), i8* bitcast (%struct.A* (%struct.A*)* @_ZN1AD2Ev to i8*), i8* bitcast (void (%struct.A*)* @_ZN1AD0Ev to i8*), i8* bitcast (void (%struct.A*)* @_ZN1A3fooEv to i8*)], align 4
 ; VTABLE:       .type _ZTV1B, at object
-; VTABLE-NEXT:  .section .data.rel.ro._ZTV1B,
+; VTABLE-NEXT:  .section .rodata._ZTV1B,
 ; VTABLE-NEXT:  .globl _ZTV1B
 ; VTABLE-LABEL: _ZTV1B:
 ; VTABLE-NEXT:  .int32 0
@@ -58,7 +58,7 @@
 ; VTABLE-NEXT:  .size _ZTV1B, 20
 @_ZTV1B = constant [5 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i8* }* @_ZTI1B to i8*), i8* bitcast (%struct.A* (%struct.A*)* @_ZN1AD2Ev to i8*), i8* bitcast (void (%struct.B*)* @_ZN1BD0Ev to i8*), i8* bitcast (void (%struct.B*)* @_ZN1B3fooEv to i8*)], align 4
 ; VTABLE:       .type _ZTV1C, at object
-; VTABLE-NEXT:  .section .data.rel.ro._ZTV1C,
+; VTABLE-NEXT:  .section .rodata._ZTV1C,
 ; VTABLE-NEXT:  .globl _ZTV1C
 ; VTABLE-LABEL: _ZTV1C:
 ; VTABLE-NEXT:  .int32 0
@@ -69,7 +69,7 @@
 ; VTABLE-NEXT:  .size _ZTV1C, 20
 @_ZTV1C = constant [5 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i8* }* @_ZTI1C to i8*), i8* bitcast (%struct.A* (%struct.A*)* @_ZN1AD2Ev to i8*), i8* bitcast (void (%struct.C*)* @_ZN1CD0Ev to i8*), i8* bitcast (void (%struct.C*)* @_ZN1C3fooEv to i8*)], align 4
 ; VTABLE:       .type _ZTV1D, at object
-; VTABLE-NEXT:  .section .data.rel.ro._ZTV1D,
+; VTABLE-NEXT:  .section .rodata._ZTV1D,
 ; VTABLE-NEXT:  .globl _ZTV1D
 ; VTABLE-LABEL: _ZTV1D:
 ; VTABLE-NEXT:  .int32 0
Index: llvm/trunk/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
===================================================================
--- llvm/trunk/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
+++ llvm/trunk/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
@@ -82,8 +82,12 @@
 //===----------------------------------------------------------------------===//
 
 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;
 }
 


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D54637.174410.patch
Type: text/x-patch
Size: 3399 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20181116/7c889e53/attachment.bin>


More information about the llvm-commits mailing list