From 3c8e228ac9f17aa59db6075a29651de8a268c5cd Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Tue, 23 Jan 2018 16:55:44 +0000 Subject: [PATCH] [WebAssembly] Switch to *-wasm as the default target triple. This makes wasm32-unknown-unknown-wasm the default, which supports the .o file writer and the new linking ABI. To enable s2wasm-compatible output, use the wasm32-unknown-unknown-elf triple. llvm-svn: 323220 --- lib/Support/Triple.cpp | 6 ++++-- test/CodeGen/WebAssembly/dbgvalue.ll | 2 +- test/CodeGen/WebAssembly/implicit-def.ll | 2 +- test/CodeGen/WebAssembly/signext-arg.ll | 12 ++++++------ test/CodeGen/WebAssembly/umulo-i64.ll | 6 +++--- 5 files changed, 15 insertions(+), 13 deletions(-) diff --git a/lib/Support/Triple.cpp b/lib/Support/Triple.cpp index 4f0a30042b7..b54ed40f057 100644 --- a/lib/Support/Triple.cpp +++ b/lib/Support/Triple.cpp @@ -670,8 +670,6 @@ static Triple::ObjectFormatType getDefaultFormat(const Triple &T) { case Triple::tce: case Triple::tcele: case Triple::thumbeb: - case Triple::wasm32: - case Triple::wasm64: case Triple::xcore: return Triple::ELF; @@ -680,6 +678,10 @@ static Triple::ObjectFormatType getDefaultFormat(const Triple &T) { if (T.isOSDarwin()) return Triple::MachO; return Triple::ELF; + + case Triple::wasm32: + case Triple::wasm64: + return Triple::Wasm; } llvm_unreachable("unknown architecture"); } diff --git a/test/CodeGen/WebAssembly/dbgvalue.ll b/test/CodeGen/WebAssembly/dbgvalue.ll index 438bea33282..088fc8f9a9d 100644 --- a/test/CodeGen/WebAssembly/dbgvalue.ll +++ b/test/CodeGen/WebAssembly/dbgvalue.ll @@ -1,4 +1,4 @@ -; RUN: llc < %s -O0 -verify-machineinstrs -mtriple=wasm32-unknown-unknown-wasm | FileCheck %s +; RUN: llc < %s -O0 -verify-machineinstrs | FileCheck %s ; CHECK: %bb.0 ; CHECK: #DEBUG_VALUE: usage:self <- %4 diff --git a/test/CodeGen/WebAssembly/implicit-def.ll b/test/CodeGen/WebAssembly/implicit-def.ll index 1f9f74887e8..81f9b65ca0a 100644 --- a/test/CodeGen/WebAssembly/implicit-def.ll +++ b/test/CodeGen/WebAssembly/implicit-def.ll @@ -1,4 +1,4 @@ -; RUN: llc -o - %s | FileCheck %s +; RUN: llc -o - %s -asm-verbose=false | FileCheck %s target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128" target triple = "wasm32-unknown-unknown-wasm" diff --git a/test/CodeGen/WebAssembly/signext-arg.ll b/test/CodeGen/WebAssembly/signext-arg.ll index 32d74a20b75..2e7253297ed 100644 --- a/test/CodeGen/WebAssembly/signext-arg.ll +++ b/test/CodeGen/WebAssembly/signext-arg.ll @@ -1,22 +1,22 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py -; RUN: llc < %s -march=wasm32 | FileCheck %s +; RUN: llc < %s -asm-verbose=false -disable-wasm-explicit-locals | FileCheck %s + +target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128" +target triple = "wasm32-unknown-unknown-wasm" declare i32 @get_int(i16 %arg) define i32 @func_1(i16 %arg1 , i32 %arg2) #0 { ; CHECK-LABEL: func_1: -; CHECK: # %bb.0: # %entry -; CHECK-NEXT: i32.const $push1=, 16 +; CHECK: i32.const $push1=, 16 ; CHECK-NEXT: i32.shl $push2=, $0, $pop1 ; CHECK-NEXT: i32.const $push4=, 16 ; CHECK-NEXT: i32.shr_s $push3=, $pop2, $pop4 ; CHECK-NEXT: i32.call $push0=, get_int@FUNCTION, $pop3 -; CHECK-NEXT: # fallthrough-return: $pop0 -; CHECK-NEXT: .endfunc +; CHECK-NEXT: end_function entry: %retval = call i32 @get_int(i16 signext %arg1) ret i32 %retval } attributes #0 = {noinline nounwind optnone} - diff --git a/test/CodeGen/WebAssembly/umulo-i64.ll b/test/CodeGen/WebAssembly/umulo-i64.ll index 75c2d507e4a..6ad3bc390a8 100644 --- a/test/CodeGen/WebAssembly/umulo-i64.ll +++ b/test/CodeGen/WebAssembly/umulo-i64.ll @@ -1,7 +1,7 @@ -; RUN: llc < %s -asm-verbose=false | FileCheck %s +; RUN: llc < %s -asm-verbose=false -disable-wasm-explicit-locals | FileCheck %s ; Test that UMULO works correctly on 64-bit operands. target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128" -target triple = "wasm32-unknown-unknown" +target triple = "wasm32-unknown-unknown-wasm" ; CHECK-LABEL: _ZN4core3num21_$LT$impl$u20$u64$GT$15overflowing_mul17h07be88b4cbac028fE: ; CHECK: __multi3 @@ -21,7 +21,7 @@ attributes #0 = { inlinehint } attributes #1 = { nounwind readnone speculatable } ; CHECK-LABEL: wut: -; CHECK: call __multi3@FUNCTION, $2, $0, $pop0, $1, $pop10 +; CHECK: call __multi3@FUNCTION, $2, $0, $pop0, $1, $pop7 ; CHECK: i64.load $0=, 8($2) define i1 @wut(i64, i64) { start: