[WebAssembly][NFC] Remove WebAssemblyStackifier TableGen backend
Summary:
Replace its functionality with a TableGen InstrInfo relational
instruction mapping. Although arguably more complex than the TableGen
backend, the relational mapping is a smaller maintenance burden than a
TableGen backend.
Reviewers: aardappel, aheejin, dschuff
Subscribers: mgorny, sbc100, jgravelle-google, sunfish, llvm-commits
Differential Revision: https://reviews.llvm.org/D53307
llvm-svn: 344962
diff --git a/llvm/utils/TableGen/WebAssemblyDisassemblerEmitter.cpp b/llvm/utils/TableGen/WebAssemblyDisassemblerEmitter.cpp
index f9c3cb1..a8edfdc 100644
--- a/llvm/utils/TableGen/WebAssemblyDisassemblerEmitter.cpp
+++ b/llvm/utils/TableGen/WebAssemblyDisassemblerEmitter.cpp
@@ -42,12 +42,13 @@
auto Prefix = Opc >> 8;
Opc = Opc & 0xFF;
auto &CGIP = OpcodeTable[Prefix][Opc];
- // All wasm instructions have a StackBased fieldof type bit, we only want
- // the instructions for which this is 1.
- auto Bit = Def.getValue("StackBased")->getValue()->
- getCastTo(BitRecTy::get());
- auto IsStackBased = Bit && reinterpret_cast<const BitInit *>(Bit)
- ->getValue();
+ // All wasm instructions have a StackBased field of type string, we only
+ // want the instructions for which this is "true".
+ auto StackString =
+ Def.getValue("StackBased")->getValue()->getCastTo(StringRecTy::get());
+ auto IsStackBased =
+ StackString &&
+ reinterpret_cast<const StringInit *>(StackString)->getValue() == "true";
if (IsStackBased && !CGIP.second) {
// this picks the first of many typed variants, which is
// currently the except_ref one, though this shouldn't matter for