[llvm] r251714 - [WebAssembly] Fix import statement
JF Bastien via llvm-commits
llvm-commits at lists.llvm.org
Fri Oct 30 09:41:21 PDT 2015
Author: jfb
Date: Fri Oct 30 11:41:21 2015
New Revision: 251714
URL: http://llvm.org/viewvc/llvm-project?rev=251714&view=rev
Log:
[WebAssembly] Fix import statement
Summary:
Imports should be generated like (param i32 f32...) not (param i32) (param f32) ...
Author: binji
Reviewers: jfb
Subscribers: jfb, dschuff
Modified:
llvm/trunk/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp
llvm/trunk/test/CodeGen/WebAssembly/import.ll
Modified: llvm/trunk/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp?rev=251714&r1=251713&r2=251714&view=diff
==============================================================================
--- llvm/trunk/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp (original)
+++ llvm/trunk/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp Fri Oct 30 11:41:21 2015
@@ -339,24 +339,25 @@ void WebAssemblyAsmPrinter::EmitInstruct
}
void WebAssemblyAsmPrinter::EmitEndOfAsmFile(Module &M) {
- SmallString<128> Str;
- raw_svector_ostream OS(Str);
+ SmallString<128> Str;
+ raw_svector_ostream OS(Str);
for (const Function &F : M)
if (F.isDeclarationForLinker()) {
assert(F.hasName() && "imported functions must have a name");
if (F.getName().startswith("llvm."))
- continue;
+ continue;
if (Str.empty())
- OS << "\t.imports\n";
+ OS << "\t.imports\n";
Type *Rt = F.getReturnType();
- OS << "\t.import " << toSymbol(F.getName()) << " \"\" \"" << F.getName()
- << "\"";
+ OS << "\t.import " << toSymbol(F.getName()) << " \"\" \"" << F.getName()
+ << "\" (param";
for (const Argument &A : F.args())
- OS << " (param " << toString(A.getType()) << ')';
+ OS << ' ' << toString(A.getType());
+ OS << ')';
if (!Rt->isVoidTy())
- OS << " (result " << toString(Rt) << ')';
+ OS << " (result " << toString(Rt) << ')';
OS << '\n';
- }
+ }
OutStreamer->EmitRawText(OS.str());
}
Modified: llvm/trunk/test/CodeGen/WebAssembly/import.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/WebAssembly/import.ll?rev=251714&r1=251713&r2=251714&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/WebAssembly/import.ll (original)
+++ llvm/trunk/test/CodeGen/WebAssembly/import.ll Fri Oct 30 11:41:21 2015
@@ -15,7 +15,9 @@ define void @f(i32 %a, float %b) {
; CHECK-LABEL: .imports
; CHECK-NEXT: .import $printi "" "printi" (param i32) (result i32)
; CHECK-NEXT: .import $printf "" "printf" (param f32) (result f32)
-; CHECK-NEXT: .import $printv "" "printv"
+; CHECK-NEXT: .import $printv "" "printv" (param)
+; CHECK-NEXT: .import $add2 "" "add2" (param i32 i32) (result i32)
declare i32 @printi(i32)
declare float @printf(float)
declare void @printv()
+declare i32 @add2(i32, i32)
More information about the llvm-commits
mailing list