[WebAssembly] Added default stack-only instruction mode for MC.
authorWouter van Oortmerssen <aardappel@gmail.com>
Fri, 27 Jul 2018 20:56:43 +0000 (20:56 +0000)
committerWouter van Oortmerssen <aardappel@gmail.com>
Fri, 27 Jul 2018 20:56:43 +0000 (20:56 +0000)
commita67c4137c365e0169f0eb1248742bc635a8116db
tree5c04ec7f66cf837353610a9b70ad272e577a5ceb
parent2d396a912a76f88f36f4f805d926884d4b08019c
[WebAssembly] Added default stack-only instruction mode for MC.

Summary:
Moved Explicit Locals pass to last.
Made that pass obligatory.
Made it convert from register to stack based instructions, and removed the registers.
Fixes to related code that was expecting register based instructions.
Added the correct testing flag to all tests, depending on what the
format they were expecting so far.
Translated one test to stack format as example: reg-stackify-stack.ll

tested:
llvm-lit -v `find test -name WebAssembly`
unittests/MC/*

Reviewers: dschuff, sunfish

Subscribers: sbc100, jgravelle-google, eraman, aheejin, llvm-commits

Differential Revision: https://reviews.llvm.org/D49160

llvm-svn: 338164
89 files changed:
llvm/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmParser.cpp
llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp
llvm/lib/Target/WebAssembly/WebAssemblyExplicitLocals.cpp
llvm/lib/Target/WebAssembly/WebAssemblyInstrMemory.td
llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
llvm/test/CodeGen/WebAssembly/address-offsets.ll
llvm/test/CodeGen/WebAssembly/atomic-rmw.ll
llvm/test/CodeGen/WebAssembly/byval.ll
llvm/test/CodeGen/WebAssembly/call.ll
llvm/test/CodeGen/WebAssembly/cfg-stackify.ll
llvm/test/CodeGen/WebAssembly/cfi.ll
llvm/test/CodeGen/WebAssembly/comparisons_f32.ll
llvm/test/CodeGen/WebAssembly/comparisons_f64.ll
llvm/test/CodeGen/WebAssembly/comparisons_i32.ll
llvm/test/CodeGen/WebAssembly/comparisons_i64.ll
llvm/test/CodeGen/WebAssembly/conv-trap.ll
llvm/test/CodeGen/WebAssembly/conv.ll
llvm/test/CodeGen/WebAssembly/copysign-casts.ll
llvm/test/CodeGen/WebAssembly/divrem-constant.ll
llvm/test/CodeGen/WebAssembly/exception.ll
llvm/test/CodeGen/WebAssembly/explicit-locals.mir
llvm/test/CodeGen/WebAssembly/f16.ll
llvm/test/CodeGen/WebAssembly/f32.ll
llvm/test/CodeGen/WebAssembly/f64.ll
llvm/test/CodeGen/WebAssembly/fast-isel-br-i1.ll
llvm/test/CodeGen/WebAssembly/fast-isel-i24.ll
llvm/test/CodeGen/WebAssembly/fast-isel-i256.ll
llvm/test/CodeGen/WebAssembly/fast-isel-noreg.ll
llvm/test/CodeGen/WebAssembly/fast-isel.ll
llvm/test/CodeGen/WebAssembly/frem.ll
llvm/test/CodeGen/WebAssembly/func.ll
llvm/test/CodeGen/WebAssembly/function-bitcasts-varargs.ll
llvm/test/CodeGen/WebAssembly/function-bitcasts.ll
llvm/test/CodeGen/WebAssembly/global.ll
llvm/test/CodeGen/WebAssembly/i128.ll
llvm/test/CodeGen/WebAssembly/i32-load-store-alignment.ll
llvm/test/CodeGen/WebAssembly/i32.ll
llvm/test/CodeGen/WebAssembly/i64-load-store-alignment.ll
llvm/test/CodeGen/WebAssembly/i64.ll
llvm/test/CodeGen/WebAssembly/ident.ll
llvm/test/CodeGen/WebAssembly/immediates.ll
llvm/test/CodeGen/WebAssembly/implicit-def.ll
llvm/test/CodeGen/WebAssembly/import-module.ll
llvm/test/CodeGen/WebAssembly/indirect-import.ll
llvm/test/CodeGen/WebAssembly/inline-asm-m.ll
llvm/test/CodeGen/WebAssembly/inline-asm.ll
llvm/test/CodeGen/WebAssembly/irreducible-cfg.ll
llvm/test/CodeGen/WebAssembly/legalize.ll
llvm/test/CodeGen/WebAssembly/libcalls.ll
llvm/test/CodeGen/WebAssembly/load-ext-atomic.ll
llvm/test/CodeGen/WebAssembly/load-ext.ll
llvm/test/CodeGen/WebAssembly/load-store-i1.ll
llvm/test/CodeGen/WebAssembly/load.ll
llvm/test/CodeGen/WebAssembly/lower-em-ehsjlj-options.ll
llvm/test/CodeGen/WebAssembly/lower-global-dtors.ll
llvm/test/CodeGen/WebAssembly/mem-intrinsics.ll
llvm/test/CodeGen/WebAssembly/memory-addr32.ll
llvm/test/CodeGen/WebAssembly/muloti4.ll
llvm/test/CodeGen/WebAssembly/negative-base-reg.ll
llvm/test/CodeGen/WebAssembly/offset-atomics.ll
llvm/test/CodeGen/WebAssembly/offset-fastisel.ll
llvm/test/CodeGen/WebAssembly/offset-folding.ll
llvm/test/CodeGen/WebAssembly/offset.ll
llvm/test/CodeGen/WebAssembly/phi.ll
llvm/test/CodeGen/WebAssembly/reg-stackify.ll
llvm/test/CodeGen/WebAssembly/return-int32.ll
llvm/test/CodeGen/WebAssembly/returned.ll
llvm/test/CodeGen/WebAssembly/select.ll
llvm/test/CodeGen/WebAssembly/signext-arg.ll
llvm/test/CodeGen/WebAssembly/signext-inreg.ll
llvm/test/CodeGen/WebAssembly/signext-zeroext.ll
llvm/test/CodeGen/WebAssembly/simd-arith.ll
llvm/test/CodeGen/WebAssembly/stack-alignment.ll
llvm/test/CodeGen/WebAssembly/store-trunc-atomic.ll
llvm/test/CodeGen/WebAssembly/store-trunc.ll
llvm/test/CodeGen/WebAssembly/store.ll
llvm/test/CodeGen/WebAssembly/switch.ll
llvm/test/CodeGen/WebAssembly/tls.ll
llvm/test/CodeGen/WebAssembly/umulo-i64.ll
llvm/test/CodeGen/WebAssembly/unsupported-function-bitcasts.ll
llvm/test/CodeGen/WebAssembly/unused-argument.ll
llvm/test/CodeGen/WebAssembly/userstack.ll
llvm/test/CodeGen/WebAssembly/varargs.ll
llvm/test/CodeGen/WebAssembly/vtable.ll
llvm/test/MC/Disassembler/WebAssembly/wasm.txt
llvm/test/MC/WebAssembly/basic-assembly.s
llvm/test/MC/WebAssembly/reloc-code.ll
llvm/test/MC/WebAssembly/weak-alias.ll
llvm/unittests/MC/Disassembler.cpp