[mlir] update gentbl() Bazel macro

Rename `gentbl` to `gentbl_cc_library` to make it clearer which kind of rule is
ultimately used.

Update `gentbl_*` macros to take `tbl_outs` options as a list rather a
whitespace-separated string and remove the related string handling.

PiperOrigin-RevId: 373406352
diff --git a/build_tools/bazel/iree_tablegen_doc.bzl b/build_tools/bazel/iree_tablegen_doc.bzl
index 89591e9..3ba1cdd 100644
--- a/build_tools/bazel/iree_tablegen_doc.bzl
+++ b/build_tools/bazel/iree_tablegen_doc.bzl
@@ -12,7 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-load("//build_tools/bazel:tblgen.bzl", "gentbl")
+load("//build_tools/bazel:tblgen.bzl", "gentbl_cc_library")
 
 def iree_tablegen_doc(*args, **kwargs):
     """iree_tablegen_doc() generates documentation from a table definition file.
@@ -20,4 +20,6 @@
     This is a simple wrapper over gentbl() so we can differentiate between
     documentation and others. See gentbl() for details regarding arguments.
     """
-    gentbl(*args, **kwargs)
+
+    # TODO(gcmn): consider using gentbl_filegroup instead
+    gentbl_cc_library(*args, **kwargs)
diff --git a/integrations/tensorflow/iree_tf_compiler/dialect/tf_strings/conversion/BUILD b/integrations/tensorflow/iree_tf_compiler/dialect/tf_strings/conversion/BUILD
index a08e8ba..431d328 100644
--- a/integrations/tensorflow/iree_tf_compiler/dialect/tf_strings/conversion/BUILD
+++ b/integrations/tensorflow/iree_tf_compiler/dialect/tf_strings/conversion/BUILD
@@ -14,7 +14,7 @@
 
 # Transforms specific to the IREE Strings module.
 
-load("@iree//build_tools/bazel:tblgen.bzl", "gentbl")
+load("@iree//build_tools/bazel:tblgen.bzl", "gentbl_cc_library")
 
 package(
     default_visibility = ["//visibility:public"],
@@ -51,11 +51,11 @@
     ],
 )
 
-gentbl(
+gentbl_cc_library(
     name = "convert_tf_to_tf_strings_rewriter_gen",
     tbl_outs = [
         (
-            "-gen-rewriters",
+            ["-gen-rewriters"],
             "convert_tf_to_tf_strings.inc",
         ),
     ],
diff --git a/integrations/tensorflow/iree_tf_compiler/dialect/tf_strings/ir/BUILD b/integrations/tensorflow/iree_tf_compiler/dialect/tf_strings/ir/BUILD
index abf320c..93ec227 100644
--- a/integrations/tensorflow/iree_tf_compiler/dialect/tf_strings/ir/BUILD
+++ b/integrations/tensorflow/iree_tf_compiler/dialect/tf_strings/ir/BUILD
@@ -12,7 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-load("@iree//build_tools/bazel:tblgen.bzl", "gentbl")
+load("@iree//build_tools/bazel:tblgen.bzl", "gentbl_cc_library")
 load("@iree//build_tools/bazel:enforce_glob.bzl", "enforce_glob")
 
 package(
@@ -32,11 +32,17 @@
     ),
 )
 
-gentbl(
+gentbl_cc_library(
     name = "ops_gen",
     tbl_outs = [
-        ("-gen-op-decls", "ops.h.inc"),
-        ("-gen-op-defs", "ops.cpp.inc"),
+        (
+            ["-gen-op-decls"],
+            "ops.h.inc",
+        ),
+        (
+            ["-gen-op-defs"],
+            "ops.cpp.inc",
+        ),
     ],
     tblgen = "@llvm-project//mlir:mlir-tblgen",
     td_file = "ops.td",
@@ -47,11 +53,17 @@
     ],
 )
 
-gentbl(
+gentbl_cc_library(
     name = "op_interface_gen",
     tbl_outs = [
-        ("-gen-op-interface-decls", "op_interface.h.inc"),
-        ("-gen-op-interface-defs", "op_interface.cpp.inc"),
+        (
+            ["-gen-op-interface-decls"],
+            "op_interface.h.inc",
+        ),
+        (
+            ["-gen-op-interface-defs"],
+            "op_interface.cpp.inc",
+        ),
     ],
     tblgen = "@llvm-project//mlir:mlir-tblgen",
     td_file = "base.td",
diff --git a/integrations/tensorflow/iree_tf_compiler/dialect/tf_tensorlist/conversion/BUILD b/integrations/tensorflow/iree_tf_compiler/dialect/tf_tensorlist/conversion/BUILD
index 5ccdd03..8ba3e8b 100644
--- a/integrations/tensorflow/iree_tf_compiler/dialect/tf_tensorlist/conversion/BUILD
+++ b/integrations/tensorflow/iree_tf_compiler/dialect/tf_tensorlist/conversion/BUILD
@@ -12,7 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-load("@iree//build_tools/bazel:tblgen.bzl", "gentbl")
+load("@iree//build_tools/bazel:tblgen.bzl", "gentbl_cc_library")
 
 package(
     default_visibility = ["//visibility:public"],
@@ -40,11 +40,11 @@
     ],
 )
 
-gentbl(
+gentbl_cc_library(
     name = "convert_tf_to_tf_tensorlist_rewriter_gen",
     tbl_outs = [
         (
-            "-gen-rewriters",
+            ["-gen-rewriters"],
             "convert_tf_to_tf_tensorlist.inc",
         ),
     ],
diff --git a/integrations/tensorflow/iree_tf_compiler/dialect/tf_tensorlist/ir/BUILD b/integrations/tensorflow/iree_tf_compiler/dialect/tf_tensorlist/ir/BUILD
index 80b2c55..7e6d617 100644
--- a/integrations/tensorflow/iree_tf_compiler/dialect/tf_tensorlist/ir/BUILD
+++ b/integrations/tensorflow/iree_tf_compiler/dialect/tf_tensorlist/ir/BUILD
@@ -12,7 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-load("@iree//build_tools/bazel:tblgen.bzl", "gentbl")
+load("@iree//build_tools/bazel:tblgen.bzl", "gentbl_cc_library")
 load("@iree//build_tools/bazel:enforce_glob.bzl", "enforce_glob")
 
 package(
@@ -70,11 +70,17 @@
     ],
 )
 
-gentbl(
+gentbl_cc_library(
     name = "tf_tensorlist_ops_gen",
     tbl_outs = [
-        ("-gen-op-decls", "tf_tensorlist_ops.h.inc"),
-        ("-gen-op-defs", "tf_tensorlist_ops.cc.inc"),
+        (
+            ["-gen-op-decls"],
+            "tf_tensorlist_ops.h.inc",
+        ),
+        (
+            ["-gen-op-defs"],
+            "tf_tensorlist_ops.cc.inc",
+        ),
     ],
     tblgen = "@llvm-project//mlir:mlir-tblgen",
     td_file = "tf_tensorlist_ops.td",
diff --git a/iree/compiler/Conversion/LinalgToLLVM/BUILD b/iree/compiler/Conversion/LinalgToLLVM/BUILD
index e8394b7..8c586e5 100644
--- a/iree/compiler/Conversion/LinalgToLLVM/BUILD
+++ b/iree/compiler/Conversion/LinalgToLLVM/BUILD
@@ -12,7 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-load("//build_tools/bazel:tblgen.bzl", "gentbl")
+load("//build_tools/bazel:tblgen.bzl", "gentbl_cc_library")
 
 package(
     default_visibility = ["//visibility:public"],
@@ -20,11 +20,11 @@
     licenses = ["notice"],  # Apache 2.0
 )
 
-gentbl(
+gentbl_cc_library(
     name = "FoldTensorExtractOpIncGen",
     tbl_outs = [
         (
-            "-gen-rewriters",
+            ["-gen-rewriters"],
             "FoldTensorExtractOp.cpp.inc",
         ),
     ],
diff --git a/iree/compiler/Dialect/Flow/IR/BUILD b/iree/compiler/Dialect/Flow/IR/BUILD
index 2fcbed9..c317201 100644
--- a/iree/compiler/Dialect/Flow/IR/BUILD
+++ b/iree/compiler/Dialect/Flow/IR/BUILD
@@ -13,7 +13,7 @@
 # limitations under the License.
 
 load("//build_tools/bazel:iree_tablegen_doc.bzl", "iree_tablegen_doc")
-load("//build_tools/bazel:tblgen.bzl", "gentbl")
+load("//build_tools/bazel:tblgen.bzl", "gentbl_cc_library")
 load("//build_tools/bazel:enforce_glob.bzl", "enforce_glob")
 
 package(
@@ -74,11 +74,17 @@
     ],
 )
 
-gentbl(
+gentbl_cc_library(
     name = "FlowEnumsGen",
     tbl_outs = [
-        ("-gen-enum-decls", "FlowEnums.h.inc"),
-        ("-gen-enum-defs", "FlowEnums.cpp.inc"),
+        (
+            ["-gen-enum-decls"],
+            "FlowEnums.h.inc",
+        ),
+        (
+            ["-gen-enum-defs"],
+            "FlowEnums.cpp.inc",
+        ),
     ],
     tblgen = "@llvm-project//mlir:mlir-tblgen",
     td_file = "FlowBase.td",
@@ -92,11 +98,17 @@
     ],
 )
 
-gentbl(
+gentbl_cc_library(
     name = "FlowInterfacesGen",
     tbl_outs = [
-        ("-gen-op-interface-decls", "FlowInterfaces.h.inc"),
-        ("-gen-op-interface-defs", "FlowInterfaces.cpp.inc"),
+        (
+            ["-gen-op-interface-decls"],
+            "FlowInterfaces.h.inc",
+        ),
+        (
+            ["-gen-op-interface-defs"],
+            "FlowInterfaces.cpp.inc",
+        ),
     ],
     tblgen = "@llvm-project//mlir:mlir-tblgen",
     td_file = "FlowInterfaces.td",
@@ -110,11 +122,17 @@
     ],
 )
 
-gentbl(
+gentbl_cc_library(
     name = "FlowOpsGen",
     tbl_outs = [
-        ("-gen-op-decls", "FlowOps.h.inc"),
-        ("-gen-op-defs", "FlowOps.cpp.inc"),
+        (
+            ["-gen-op-decls"],
+            "FlowOps.h.inc",
+        ),
+        (
+            ["-gen-op-defs"],
+            "FlowOps.cpp.inc",
+        ),
     ],
     tblgen = "@llvm-project//mlir:mlir-tblgen",
     td_file = "FlowOps.td",
@@ -132,7 +150,10 @@
 iree_tablegen_doc(
     name = "FlowDialectDocGen",
     tbl_outs = [
-        ("-gen-dialect-doc", "FlowDialect.md"),
+        (
+            ["-gen-dialect-doc"],
+            "FlowDialect.md",
+        ),
     ],
     tblgen = "@llvm-project//mlir:mlir-tblgen",
     td_file = "FlowOps.td",
diff --git a/iree/compiler/Dialect/Flow/Transforms/BUILD b/iree/compiler/Dialect/Flow/Transforms/BUILD
index 73d9eb4..8d42e05 100644
--- a/iree/compiler/Dialect/Flow/Transforms/BUILD
+++ b/iree/compiler/Dialect/Flow/Transforms/BUILD
@@ -12,7 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-load("//build_tools/bazel:tblgen.bzl", "gentbl")
+load("//build_tools/bazel:tblgen.bzl", "gentbl_cc_library")
 load("//iree:build_defs.oss.bzl", "iree_cmake_extra_content")
 
 package(
@@ -21,11 +21,11 @@
     licenses = ["notice"],  # Apache 2.0
 )
 
-gentbl(
+gentbl_cc_library(
     name = "Passes_inc_gen",
     tbl_outs = [
         (
-            "-gen-pass-decls",
+            ["-gen-pass-decls"],
             "Passes.h.inc",
         ),
     ],
diff --git a/iree/compiler/Dialect/HAL/IR/BUILD b/iree/compiler/Dialect/HAL/IR/BUILD
index f6a656f..a92d17e 100644
--- a/iree/compiler/Dialect/HAL/IR/BUILD
+++ b/iree/compiler/Dialect/HAL/IR/BUILD
@@ -13,7 +13,7 @@
 # limitations under the License.
 
 load("//build_tools/bazel:iree_tablegen_doc.bzl", "iree_tablegen_doc")
-load("//build_tools/bazel:tblgen.bzl", "gentbl")
+load("//build_tools/bazel:tblgen.bzl", "gentbl_cc_library")
 load("//build_tools/bazel:enforce_glob.bzl", "enforce_glob")
 
 package(
@@ -100,13 +100,25 @@
     ],
 )
 
-gentbl(
+gentbl_cc_library(
     name = "HALInterfacesGen",
     tbl_outs = [
-        ("-gen-op-interface-decls", "HALOpInterfaces.h.inc"),
-        ("-gen-op-interface-defs", "HALOpInterfaces.cpp.inc"),
-        ("-gen-type-interface-decls", "HALTypeInterfaces.h.inc"),
-        ("-gen-type-interface-defs", "HALTypeInterfaces.cpp.inc"),
+        (
+            ["-gen-op-interface-decls"],
+            "HALOpInterfaces.h.inc",
+        ),
+        (
+            ["-gen-op-interface-defs"],
+            "HALOpInterfaces.cpp.inc",
+        ),
+        (
+            ["-gen-type-interface-decls"],
+            "HALTypeInterfaces.h.inc",
+        ),
+        (
+            ["-gen-type-interface-defs"],
+            "HALTypeInterfaces.cpp.inc",
+        ),
     ],
     tblgen = "@llvm-project//mlir:mlir-tblgen",
     td_file = "HALInterfaces.td",
@@ -118,11 +130,17 @@
     ],
 )
 
-gentbl(
+gentbl_cc_library(
     name = "HALOpsGen",
     tbl_outs = [
-        ("-gen-op-decls", "HALOps.h.inc"),
-        ("-gen-op-defs", "HALOps.cpp.inc"),
+        (
+            ["-gen-op-decls"],
+            "HALOps.h.inc",
+        ),
+        (
+            ["-gen-op-defs"],
+            "HALOps.cpp.inc",
+        ),
     ],
     tblgen = "@llvm-project//mlir:mlir-tblgen",
     td_file = "HALOps.td",
@@ -136,11 +154,17 @@
     ],
 )
 
-gentbl(
+gentbl_cc_library(
     name = "HALStructsGen",
     tbl_outs = [
-        ("-gen-iree-struct-attr-decls", "HALStructs.h.inc"),
-        ("-gen-iree-struct-attr-defs", "HALStructs.cpp.inc"),
+        (
+            ["-gen-iree-struct-attr-decls"],
+            "HALStructs.h.inc",
+        ),
+        (
+            ["-gen-iree-struct-attr-defs"],
+            "HALStructs.cpp.inc",
+        ),
     ],
     tblgen = "//iree/tools:iree-tblgen",
     td_file = "HALBase.td",
@@ -151,11 +175,17 @@
     ],
 )
 
-gentbl(
+gentbl_cc_library(
     name = "HALTypesGen",
     tbl_outs = [
-        ("-gen-enum-decls", "HALEnums.h.inc"),
-        ("-gen-enum-defs", "HALEnums.cpp.inc"),
+        (
+            ["-gen-enum-decls"],
+            "HALEnums.h.inc",
+        ),
+        (
+            ["-gen-enum-defs"],
+            "HALEnums.cpp.inc",
+        ),
     ],
     tblgen = "@llvm-project//mlir:mlir-tblgen",
     td_file = "HALBase.td",
@@ -170,7 +200,10 @@
 iree_tablegen_doc(
     name = "HALDialectDocGen",
     tbl_outs = [
-        ("-gen-dialect-doc", "HALDialect.md"),
+        (
+            ["-gen-dialect-doc"],
+            "HALDialect.md",
+        ),
     ],
     tblgen = "@llvm-project//mlir:mlir-tblgen",
     td_file = "HALOps.td",
diff --git a/iree/compiler/Dialect/IREE/IR/BUILD b/iree/compiler/Dialect/IREE/IR/BUILD
index 455f461..a1108df 100644
--- a/iree/compiler/Dialect/IREE/IR/BUILD
+++ b/iree/compiler/Dialect/IREE/IR/BUILD
@@ -13,7 +13,7 @@
 # limitations under the License.
 
 load("//build_tools/bazel:iree_tablegen_doc.bzl", "iree_tablegen_doc")
-load("//build_tools/bazel:tblgen.bzl", "gentbl")
+load("//build_tools/bazel:tblgen.bzl", "gentbl_cc_library")
 load("//build_tools/bazel:enforce_glob.bzl", "enforce_glob")
 
 package(
@@ -65,11 +65,17 @@
     ],
 )
 
-gentbl(
+gentbl_cc_library(
     name = "IREEInterfacesGen",
     tbl_outs = [
-        ("-gen-op-interface-decls", "IREEOpInterfaces.h.inc"),
-        ("-gen-op-interface-defs", "IREEOpInterfaces.cpp.inc"),
+        (
+            ["-gen-op-interface-decls"],
+            "IREEOpInterfaces.h.inc",
+        ),
+        (
+            ["-gen-op-interface-defs"],
+            "IREEOpInterfaces.cpp.inc",
+        ),
     ],
     tblgen = "@llvm-project//mlir:mlir-tblgen",
     td_file = "IREEInterfaces.td",
@@ -79,11 +85,17 @@
     ],
 )
 
-gentbl(
+gentbl_cc_library(
     name = "IREEOpsGen",
     tbl_outs = [
-        ("-gen-op-decls", "IREEOps.h.inc"),
-        ("-gen-op-defs", "IREEOps.cpp.inc"),
+        (
+            ["-gen-op-decls"],
+            "IREEOps.h.inc",
+        ),
+        (
+            ["-gen-op-defs"],
+            "IREEOps.cpp.inc",
+        ),
     ],
     tblgen = "@llvm-project//mlir:mlir-tblgen",
     td_file = "IREEOps.td",
@@ -97,7 +109,10 @@
 iree_tablegen_doc(
     name = "IREEDialectDocGen",
     tbl_outs = [
-        ("-gen-dialect-doc", "IREEDialect.md"),
+        (
+            ["-gen-dialect-doc"],
+            "IREEDialect.md",
+        ),
     ],
     tblgen = "@llvm-project//mlir:mlir-tblgen",
     td_file = "IREEOps.td",
diff --git a/iree/compiler/Dialect/Modules/Check/IR/BUILD b/iree/compiler/Dialect/Modules/Check/IR/BUILD
index 5ca6664..84de61f 100644
--- a/iree/compiler/Dialect/Modules/Check/IR/BUILD
+++ b/iree/compiler/Dialect/Modules/Check/IR/BUILD
@@ -13,7 +13,7 @@
 # limitations under the License.
 
 load("//build_tools/bazel:iree_tablegen_doc.bzl", "iree_tablegen_doc")
-load("//build_tools/bazel:tblgen.bzl", "gentbl")
+load("//build_tools/bazel:tblgen.bzl", "gentbl_cc_library")
 load("//build_tools/bazel:enforce_glob.bzl", "enforce_glob")
 
 package(
@@ -69,11 +69,17 @@
     ],
 )
 
-gentbl(
+gentbl_cc_library(
     name = "check_ops_gen",
     tbl_outs = [
-        ("-gen-op-decls", "CheckOps.h.inc"),
-        ("-gen-op-defs", "CheckOps.cpp.inc"),
+        (
+            ["-gen-op-decls"],
+            "CheckOps.h.inc",
+        ),
+        (
+            ["-gen-op-defs"],
+            "CheckOps.cpp.inc",
+        ),
     ],
     tblgen = "@llvm-project//mlir:mlir-tblgen",
     td_file = "CheckOps.td",
@@ -88,7 +94,10 @@
 iree_tablegen_doc(
     name = "CheckDialectDocGen",
     tbl_outs = [
-        ("-gen-dialect-doc", "CheckDialect.md"),
+        (
+            ["-gen-dialect-doc"],
+            "CheckDialect.md",
+        ),
     ],
     tblgen = "@llvm-project//mlir:mlir-tblgen",
     td_file = "CheckOps.td",
diff --git a/iree/compiler/Dialect/Modules/Strings/IR/BUILD b/iree/compiler/Dialect/Modules/Strings/IR/BUILD
index e5a5fa4..f39f489 100644
--- a/iree/compiler/Dialect/Modules/Strings/IR/BUILD
+++ b/iree/compiler/Dialect/Modules/Strings/IR/BUILD
@@ -13,7 +13,7 @@
 # limitations under the License.
 
 load("//build_tools/bazel:iree_tablegen_doc.bzl", "iree_tablegen_doc")
-load("//build_tools/bazel:tblgen.bzl", "gentbl")
+load("//build_tools/bazel:tblgen.bzl", "gentbl_cc_library")
 load("//build_tools/bazel:enforce_glob.bzl", "enforce_glob")
 
 package(
@@ -81,11 +81,17 @@
     ],
 )
 
-gentbl(
+gentbl_cc_library(
     name = "Ops_gen",
     tbl_outs = [
-        ("-gen-op-decls", "Ops.h.inc"),
-        ("-gen-op-defs", "Ops.cc.inc"),
+        (
+            ["-gen-op-decls"],
+            "Ops.h.inc",
+        ),
+        (
+            ["-gen-op-defs"],
+            "Ops.cc.inc",
+        ),
     ],
     tblgen = "@llvm-project//mlir:mlir-tblgen",
     td_file = "Ops.td",
@@ -100,7 +106,10 @@
 iree_tablegen_doc(
     name = "DialectDocGen",
     tbl_outs = [
-        ("-gen-dialect-doc", "StringsDialect.md"),
+        (
+            ["-gen-dialect-doc"],
+            "StringsDialect.md",
+        ),
     ],
     tblgen = "@llvm-project//mlir:mlir-tblgen",
     td_file = "Ops.td",
diff --git a/iree/compiler/Dialect/Modules/TensorList/IR/BUILD b/iree/compiler/Dialect/Modules/TensorList/IR/BUILD
index ac7a903..774d0a4 100644
--- a/iree/compiler/Dialect/Modules/TensorList/IR/BUILD
+++ b/iree/compiler/Dialect/Modules/TensorList/IR/BUILD
@@ -13,7 +13,7 @@
 # limitations under the License.
 
 load("//build_tools/bazel:iree_tablegen_doc.bzl", "iree_tablegen_doc")
-load("//build_tools/bazel:tblgen.bzl", "gentbl")
+load("//build_tools/bazel:tblgen.bzl", "gentbl_cc_library")
 load("//build_tools/bazel:enforce_glob.bzl", "enforce_glob")
 
 package(
@@ -81,11 +81,17 @@
     ],
 )
 
-gentbl(
+gentbl_cc_library(
     name = "TensorListOpsGen",
     tbl_outs = [
-        ("-gen-op-decls", "TensorListOps.h.inc"),
-        ("-gen-op-defs", "TensorListOps.cpp.inc"),
+        (
+            ["-gen-op-decls"],
+            "TensorListOps.h.inc",
+        ),
+        (
+            ["-gen-op-defs"],
+            "TensorListOps.cpp.inc",
+        ),
     ],
     tblgen = "@llvm-project//mlir:mlir-tblgen",
     td_file = "TensorListOps.td",
@@ -100,7 +106,10 @@
 iree_tablegen_doc(
     name = "TensorListDialectDocGen",
     tbl_outs = [
-        ("-gen-dialect-doc", "TensorListDialect.md"),
+        (
+            ["-gen-dialect-doc"],
+            "TensorListDialect.md",
+        ),
     ],
     tblgen = "@llvm-project//mlir:mlir-tblgen",
     td_file = "TensorListOps.td",
diff --git a/iree/compiler/Dialect/Shape/IR/BUILD b/iree/compiler/Dialect/Shape/IR/BUILD
index e403bca..3c2157d 100644
--- a/iree/compiler/Dialect/Shape/IR/BUILD
+++ b/iree/compiler/Dialect/Shape/IR/BUILD
@@ -13,7 +13,7 @@
 # limitations under the License.
 
 load("//build_tools/bazel:iree_tablegen_doc.bzl", "iree_tablegen_doc")
-load("//build_tools/bazel:tblgen.bzl", "gentbl")
+load("//build_tools/bazel:tblgen.bzl", "gentbl_cc_library")
 load("//build_tools/bazel:enforce_glob.bzl", "enforce_glob")
 
 package(
@@ -76,11 +76,17 @@
     ],
 )
 
-gentbl(
+gentbl_cc_library(
     name = "ShapeInterfacesGen",
     tbl_outs = [
-        ("-gen-op-interface-decls", "ShapeInterfaces.h.inc"),
-        ("-gen-op-interface-defs", "ShapeInterfaces.cpp.inc"),
+        (
+            ["-gen-op-interface-decls"],
+            "ShapeInterfaces.h.inc",
+        ),
+        (
+            ["-gen-op-interface-defs"],
+            "ShapeInterfaces.cpp.inc",
+        ),
     ],
     tblgen = "@llvm-project//mlir:mlir-tblgen",
     td_file = "ShapeInterfaces.td",
@@ -92,11 +98,17 @@
     ],
 )
 
-gentbl(
+gentbl_cc_library(
     name = "ShapeOpsGen",
     tbl_outs = [
-        ("-gen-op-decls", "ShapeOps.h.inc"),
-        ("-gen-op-defs", "ShapeOps.cpp.inc"),
+        (
+            ["-gen-op-decls"],
+            "ShapeOps.h.inc",
+        ),
+        (
+            ["-gen-op-defs"],
+            "ShapeOps.cpp.inc",
+        ),
     ],
     tblgen = "@llvm-project//mlir:mlir-tblgen",
     td_file = "ShapeOps.td",
@@ -114,7 +126,10 @@
 iree_tablegen_doc(
     name = "ShapeDialectDocGen",
     tbl_outs = [
-        ("-gen-dialect-doc", "ShapeDialect.md"),
+        (
+            ["-gen-dialect-doc"],
+            "ShapeDialect.md",
+        ),
     ],
     tblgen = "@llvm-project//mlir:mlir-tblgen",
     td_file = "ShapeOps.td",
diff --git a/iree/compiler/Dialect/VM/IR/BUILD b/iree/compiler/Dialect/VM/IR/BUILD
index 207dcd2..a212c32 100644
--- a/iree/compiler/Dialect/VM/IR/BUILD
+++ b/iree/compiler/Dialect/VM/IR/BUILD
@@ -13,7 +13,7 @@
 # limitations under the License.
 
 load("//build_tools/bazel:iree_tablegen_doc.bzl", "iree_tablegen_doc")
-load("//build_tools/bazel:tblgen.bzl", "gentbl")
+load("//build_tools/bazel:tblgen.bzl", "gentbl_cc_library")
 load("//build_tools/bazel:enforce_glob.bzl", "enforce_glob")
 
 package(
@@ -81,11 +81,17 @@
     ],
 )
 
-gentbl(
+gentbl_cc_library(
     name = "VMEnumsGen",
     tbl_outs = [
-        ("-gen-enum-decls", "VMEnums.h.inc"),
-        ("-gen-enum-defs", "VMEnums.cpp.inc"),
+        (
+            ["-gen-enum-decls"],
+            "VMEnums.h.inc",
+        ),
+        (
+            ["-gen-enum-defs"],
+            "VMEnums.cpp.inc",
+        ),
     ],
     tblgen = "@llvm-project//mlir:mlir-tblgen",
     td_file = "VMBase.td",
@@ -97,11 +103,17 @@
     ],
 )
 
-gentbl(
+gentbl_cc_library(
     name = "VMOpsGen",
     tbl_outs = [
-        ("-gen-op-decls", "VMOps.h.inc"),
-        ("-gen-op-defs", "VMOps.cpp.inc"),
+        (
+            ["-gen-op-decls"],
+            "VMOps.h.inc",
+        ),
+        (
+            ["-gen-op-defs"],
+            "VMOps.cpp.inc",
+        ),
     ],
     tblgen = "@llvm-project//mlir:mlir-tblgen",
     td_file = "VMOps.td",
@@ -116,10 +128,13 @@
     ],
 )
 
-gentbl(
+gentbl_cc_library(
     name = "VMOpEncoderGen",
     tbl_outs = [
-        ("-gen-iree-vm-op-encoder-defs", "VMOpEncoder.cpp.inc"),
+        (
+            ["-gen-iree-vm-op-encoder-defs"],
+            "VMOpEncoder.cpp.inc",
+        ),
     ],
     tblgen = "//iree/tools:iree-tblgen",
     td_file = "VMOps.td",
@@ -134,11 +149,17 @@
     ],
 )
 
-gentbl(
+gentbl_cc_library(
     name = "VMOpInterfaceGen",
     tbl_outs = [
-        ("-gen-op-interface-decls", "VMOpInterface.h.inc"),
-        ("-gen-op-interface-defs", "VMOpInterface.cpp.inc"),
+        (
+            ["-gen-op-interface-decls"],
+            "VMOpInterface.h.inc",
+        ),
+        (
+            ["-gen-op-interface-defs"],
+            "VMOpInterface.cpp.inc",
+        ),
     ],
     tblgen = "@llvm-project//mlir:mlir-tblgen",
     td_file = "VMBase.td",
@@ -149,11 +170,17 @@
     ],
 )
 
-gentbl(
+gentbl_cc_library(
     name = "VMStructsGen",
     tbl_outs = [
-        ("-gen-iree-struct-attr-decls", "VMStructs.h.inc"),
-        ("-gen-iree-struct-attr-defs", "VMStructs.cpp.inc"),
+        (
+            ["-gen-iree-struct-attr-decls"],
+            "VMStructs.h.inc",
+        ),
+        (
+            ["-gen-iree-struct-attr-defs"],
+            "VMStructs.cpp.inc",
+        ),
     ],
     tblgen = "//iree/tools:iree-tblgen",
     td_file = "VMBase.td",
@@ -167,7 +194,10 @@
 iree_tablegen_doc(
     name = "VMDialectDocGen",
     tbl_outs = [
-        ("-gen-dialect-doc", "VMDialect.md"),
+        (
+            ["-gen-dialect-doc"],
+            "VMDialect.md",
+        ),
     ],
     tblgen = "@llvm-project//mlir:mlir-tblgen",
     td_file = "VMOps.td",
diff --git a/iree/compiler/Dialect/VMLA/IR/BUILD b/iree/compiler/Dialect/VMLA/IR/BUILD
index 365d43e..d648708 100644
--- a/iree/compiler/Dialect/VMLA/IR/BUILD
+++ b/iree/compiler/Dialect/VMLA/IR/BUILD
@@ -13,7 +13,7 @@
 # limitations under the License.
 
 load("//build_tools/bazel:iree_tablegen_doc.bzl", "iree_tablegen_doc")
-load("//build_tools/bazel:tblgen.bzl", "gentbl")
+load("//build_tools/bazel:tblgen.bzl", "gentbl_cc_library")
 load("//build_tools/bazel:enforce_glob.bzl", "enforce_glob")
 
 package(
@@ -89,11 +89,17 @@
     ],
 )
 
-gentbl(
+gentbl_cc_library(
     name = "VMLAEnumsGen",
     tbl_outs = [
-        ("-gen-enum-decls", "VMLAEnums.h.inc"),
-        ("-gen-enum-defs", "VMLAEnums.cpp.inc"),
+        (
+            ["-gen-enum-decls"],
+            "VMLAEnums.h.inc",
+        ),
+        (
+            ["-gen-enum-defs"],
+            "VMLAEnums.cpp.inc",
+        ),
     ],
     tblgen = "@llvm-project//mlir:mlir-tblgen",
     td_file = "VMLABase.td",
@@ -106,11 +112,17 @@
     ],
 )
 
-gentbl(
+gentbl_cc_library(
     name = "VMLAOpsGen",
     tbl_outs = [
-        ("-gen-op-decls", "VMLAOps.h.inc"),
-        ("-gen-op-defs", "VMLAOps.cpp.inc"),
+        (
+            ["-gen-op-decls"],
+            "VMLAOps.h.inc",
+        ),
+        (
+            ["-gen-op-defs"],
+            "VMLAOps.cpp.inc",
+        ),
     ],
     tblgen = "@llvm-project//mlir:mlir-tblgen",
     td_file = "VMLAOps.td",
@@ -123,11 +135,17 @@
     ],
 )
 
-gentbl(
+gentbl_cc_library(
     name = "VMLAOpInterfaceGen",
     tbl_outs = [
-        ("-gen-op-interface-decls", "VMLAOpInterface.h.inc"),
-        ("-gen-op-interface-defs", "VMLAOpInterface.cpp.inc"),
+        (
+            ["-gen-op-interface-decls"],
+            "VMLAOpInterface.h.inc",
+        ),
+        (
+            ["-gen-op-interface-defs"],
+            "VMLAOpInterface.cpp.inc",
+        ),
     ],
     tblgen = "@llvm-project//mlir:mlir-tblgen",
     td_file = "VMLABase.td",
@@ -142,7 +160,10 @@
 iree_tablegen_doc(
     name = "VMLADialecDocGen",
     tbl_outs = [
-        ("-gen-dialect-doc", "VMLADialect.md"),
+        (
+            ["-gen-dialect-doc"],
+            "VMLADialect.md",
+        ),
     ],
     tblgen = "@llvm-project//mlir:mlir-tblgen",
     td_file = "VMLAOps.td",
diff --git a/iree/compiler/Dialect/Vulkan/IR/BUILD b/iree/compiler/Dialect/Vulkan/IR/BUILD
index 9b9220b..ad153f4 100644
--- a/iree/compiler/Dialect/Vulkan/IR/BUILD
+++ b/iree/compiler/Dialect/Vulkan/IR/BUILD
@@ -12,7 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-load("//build_tools/bazel:tblgen.bzl", "gentbl")
+load("//build_tools/bazel:tblgen.bzl", "gentbl_cc_library")
 load("//build_tools/bazel:enforce_glob.bzl", "enforce_glob")
 
 package(
@@ -59,11 +59,17 @@
     ],
 )
 
-gentbl(
+gentbl_cc_library(
     name = "VulkanAttrsGen",
     tbl_outs = [
-        ("-gen-struct-attr-decls", "VulkanAttributes.h.inc"),
-        ("-gen-struct-attr-defs", "VulkanAttributes.cpp.inc"),
+        (
+            ["-gen-struct-attr-decls"],
+            "VulkanAttributes.h.inc",
+        ),
+        (
+            ["-gen-struct-attr-defs"],
+            "VulkanAttributes.cpp.inc",
+        ),
     ],
     tblgen = "@llvm-project//mlir:mlir-tblgen",
     td_file = "VulkanAttributes.td",
@@ -73,11 +79,17 @@
     ],
 )
 
-gentbl(
+gentbl_cc_library(
     name = "VulkanEnumsGen",
     tbl_outs = [
-        ("-gen-enum-decls", "VulkanEnums.h.inc"),
-        ("-gen-enum-defs", "VulkanEnums.cpp.inc"),
+        (
+            ["-gen-enum-decls"],
+            "VulkanEnums.h.inc",
+        ),
+        (
+            ["-gen-enum-defs"],
+            "VulkanEnums.cpp.inc",
+        ),
     ],
     tblgen = "@llvm-project//mlir:mlir-tblgen",
     td_file = "VulkanBase.td",
diff --git a/iree/samples/custom_modules/dialect/BUILD b/iree/samples/custom_modules/dialect/BUILD
index d46610b..16cc5de 100644
--- a/iree/samples/custom_modules/dialect/BUILD
+++ b/iree/samples/custom_modules/dialect/BUILD
@@ -13,7 +13,7 @@
 # limitations under the License.
 
 load("//build_tools/embed_data:build_defs.bzl", "c_embed_data")
-load("//build_tools/bazel:tblgen.bzl", "gentbl")
+load("//build_tools/bazel:tblgen.bzl", "gentbl_cc_library")
 load("//build_tools/bazel:enforce_glob.bzl", "enforce_glob")
 
 package(
@@ -58,11 +58,17 @@
     ],
 )
 
-gentbl(
+gentbl_cc_library(
     name = "custom_ops_gen",
     tbl_outs = [
-        ("-gen-op-decls", "custom_ops.h.inc"),
-        ("-gen-op-defs", "custom_ops.cc.inc"),
+        (
+            ["-gen-op-decls"],
+            "custom_ops.h.inc",
+        ),
+        (
+            ["-gen-op-defs"],
+            "custom_ops.cc.inc",
+        ),
     ],
     tblgen = "@llvm-project//mlir:mlir-tblgen",
     td_file = "custom_ops.td",