]> granicus.if.org Git - llvm/commitdiff
[WebAssembly] Use 'I' multiclass template for br_table (NFC)
authorHeejin Ahn <aheejin@gmail.com>
Tue, 8 Jan 2019 01:15:15 +0000 (01:15 +0000)
committerHeejin Ahn <aheejin@gmail.com>
Tue, 8 Jan 2019 01:15:15 +0000 (01:15 +0000)
Summary:
We don't need to explicitly use `NI` anymore because we now don't use
`let` statements within the definitions.

Reviewers: aardappel

Subscribers: dschuff, sbc100, jgravelle-google, sunfish, llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350594 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/WebAssembly/WebAssemblyInstrControl.td

index a9ec9257979fef15b8ac56f1894fcb57e21ced8e..7eb6cbf4d2496575bff9bac9f89fb70a6e09886d 100644 (file)
@@ -42,33 +42,23 @@ def brlist : Operand<i32> {
   let ParserMatchClass = BrListAsmOperand;
   let PrintMethod = "printBrList";
 }
-}  // OPERAND_BRLIST
-}  // OperandNamespace = "WebAssembly"
+} // OPERAND_BRLIST
+} // OperandNamespace = "WebAssembly"
 
 // TODO: SelectionDAG's lowering insists on using a pointer as the index for
 // jump tables, so in practice we don't ever use BR_TABLE_I64 in wasm32 mode
 // currently.
-// FIXME: this can't inherit from I<> since there is no way to inherit from a
-// multiclass and still have the let statements.
 let isTerminator = 1, hasCtrlDep = 1, isBarrier = 1 in {
-let isCodeGenOnly = 1 in
-def BR_TABLE_I32 : NI<(outs), (ins I32:$index, variable_ops),
-                      [(WebAssemblybr_table I32:$index)], "false",
-                      "br_table \t$index", 0x0e> {
-}
-let BaseName = "BR_TABLE_I32" in
-def BR_TABLE_I32_S : NI<(outs), (ins brlist:$brl), [], "true",
-                        "br_table \t$brl", 0x0e> {
-}
-let isCodeGenOnly = 1 in
-def BR_TABLE_I64 : NI<(outs), (ins I64:$index, variable_ops),
-                      [(WebAssemblybr_table I64:$index)], "false",
-                      "br_table \t$index"> {
-}
-let BaseName = "BR_TABLE_I64" in
-def BR_TABLE_I64_S : NI<(outs), (ins brlist:$brl), [], "true",
-                        "br_table \t$brl"> {
-}
+defm BR_TABLE_I32 : I<(outs), (ins I32:$index, variable_ops),
+                      (outs), (ins brlist:$brl),
+                      [(WebAssemblybr_table I32:$index)],
+                      "br_table \t$index", "br_table \t$brl",
+                      0x0e>;
+defm BR_TABLE_I64 : I<(outs), (ins I64:$index, variable_ops),
+                      (outs), (ins brlist:$brl),
+                      [(WebAssemblybr_table I64:$index)],
+                      "br_table \t$index", "br_table \t$brl",
+                      0x0e>;
 } // isTerminator = 1, hasCtrlDep = 1, isBarrier = 1
 
 // This is technically a control-flow instruction, since all it affects is the