[PATCH] D51562: [WebAssembly] Fix signature of `main` in FixFunctionBitcasts

Sam Clegg via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Aug 31 17:07:45 PDT 2018


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

cleanup


Repository:
  rL LLVM

https://reviews.llvm.org/D51562

Files:
  lib/Target/WebAssembly/WebAssemblyFixFunctionBitcasts.cpp
  test/CodeGen/WebAssembly/main_no_args.ll


Index: test/CodeGen/WebAssembly/main_no_args.ll
===================================================================
--- /dev/null
+++ test/CodeGen/WebAssembly/main_no_args.ll
@@ -0,0 +1,16 @@
+; RUN: llc < %s -asm-verbose=false -wasm-temporary-workarounds=false | FileCheck %s
+
+; Test that main function with expected signature is not wrapped
+
+target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128"
+target triple = "wasm32-unknown-unknown"
+
+define i32 @main(i32 %a, i8** %b) {
+  ret i32 0
+}
+
+; CHECK-LABEL: main:
+; CHECK-NEXT: .param i32, i32
+; CHECK-NEXT: .result i32
+
+; CHECK-NOT: __original_main:
Index: lib/Target/WebAssembly/WebAssemblyFixFunctionBitcasts.cpp
===================================================================
--- lib/Target/WebAssembly/WebAssemblyFixFunctionBitcasts.cpp
+++ lib/Target/WebAssembly/WebAssemblyFixFunctionBitcasts.cpp
@@ -244,12 +244,14 @@
       Main = &F;
       LLVMContext &C = M.getContext();
       Type *MainArgTys[] = {
-        PointerType::get(Type::getInt8PtrTy(C), 0),
-        Type::getInt32Ty(C)
+        Type::getInt32Ty(C),
+        PointerType::get(Type::getInt8PtrTy(C), 0)
       };
       FunctionType *MainTy = FunctionType::get(Type::getInt32Ty(C), MainArgTys,
                                                /*isVarArg=*/false);
       if (F.getFunctionType() != MainTy) {
+        LLVM_DEBUG(dbgs() << "Found `main` function with incorrect type: "
+                          << *F.getFunctionType() << "\n");
         Value *Args[] = {
           UndefValue::get(MainArgTys[0]),
           UndefValue::get(MainArgTys[1])


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D51562.163607.patch
Type: text/x-patch
Size: 1599 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180901/c23f7518/attachment.bin>


More information about the llvm-commits mailing list