[PATCH] D48178: [WebAssembly] Ignore explict section names for functions

Sam Clegg via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jun 14 09:58:50 PDT 2018


sbc100 updated this revision to Diff 151371.
sbc100 added a comment.

add comment


Repository:
  rL LLVM

https://reviews.llvm.org/D48178

Files:
  lib/CodeGen/TargetLoweringObjectFileImpl.cpp
  test/MC/WebAssembly/function-sections.ll


Index: test/MC/WebAssembly/function-sections.ll
===================================================================
--- /dev/null
+++ test/MC/WebAssembly/function-sections.ll
@@ -0,0 +1,28 @@
+; RUN: llc -filetype=obj %s -o - | obj2yaml | FileCheck %s
+
+target triple = "wasm32-unknown-unknown"
+
+define hidden i32 @foo() section "baz" {
+entry:
+  ret i32 2
+}
+
+define hidden i32 @bar() section "baz" {
+entry:
+  ret i32 1
+}
+
+; CHECK:        - Type:            CUSTOM
+; CHECK-NEXT:     Name:            linking
+; CHECK-NEXT:     Version:         1
+; CHECK-NEXT:     SymbolTable:     
+; CHECK-NEXT:       - Index:           0
+; CHECK-NEXT:         Kind:            FUNCTION
+; CHECK-NEXT:         Name:            foo
+; CHECK-NEXT:         Flags:           [ VISIBILITY_HIDDEN ]
+; CHECK-NEXT:         Function:        0
+; CHECK-NEXT:       - Index:           1
+; CHECK-NEXT:         Kind:            FUNCTION
+; CHECK-NEXT:         Name:            bar
+; CHECK-NEXT:         Flags:           [ VISIBILITY_HIDDEN ]
+; CHECK-NEXT:         Function:        1
Index: lib/CodeGen/TargetLoweringObjectFileImpl.cpp
===================================================================
--- lib/CodeGen/TargetLoweringObjectFileImpl.cpp
+++ lib/CodeGen/TargetLoweringObjectFileImpl.cpp
@@ -1408,6 +1408,12 @@
 
 MCSection *TargetLoweringObjectFileWasm::getExplicitSectionGlobal(
     const GlobalObject *GO, SectionKind Kind, const TargetMachine &TM) const {
+  // We don't support explict section names for functions in the wasm object
+  // format.  Each function has to be in its own unique section.
+  if (isa<Function>(GO)) {
+    return SelectSectionForGlobal(GO, Kind, TM);
+  }
+
   StringRef Name = GO->getSection();
 
   Kind = getWasmKindForNamedSection(Name, Kind);


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D48178.151371.patch
Type: text/x-patch
Size: 1784 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180614/3fd2b232/attachment.bin>


More information about the llvm-commits mailing list