CMake support for iree::compiler::Dialect
In the Bazel configuration `iree-translate` depends on `"//iree/compiler/Dialect/VM/Target/Bytecode"`. This further pulls in several other dependencies. Right now, the build fails witt
```
[ 96%] Building VMEnums.h.inc...
mlir-tblgen: Unknown command line argument '-gen-iree-vm-op-encoder-defs'. Try: '../../../../../third_party/llvm-project/llvm/bin/mlir-tblgen --help'
mlir-tblgen: Did you mean '--gen-op-interface-defs'?
make[2]: *** [iree/compiler/Dialect/VM/IR/CMakeFiles/iree_compiler_Dialect_VM_IR_IR.dir/build.make:72: iree/compiler/Dialect/VM/IR/VMOpEncoder.cpp.inc] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [CMakeFiles/Makefile2:29821: iree/compiler/Dialect/VM/IR/CMakeFiles/iree_compiler_Dialect_VM_IR_IR.dir/all] Error 2
make: *** [Makefile:152: all] Error 2
```
This is because `iree-tblgen` has to be run and not `mlir-tblgen`. Within this context I noticed the comment "Runs iree-tablegen to produce some artifacts." in `iree_tablegen_library`. So is there a way to exec `iree-tblgen` instead of `mlir-tblgen` which I have overlooked or is the comment wrong? If the latter is true, do we need *another* `iree_tablegen_library` function which really runs `iree-tblgen` or do somebody sees a simple way how to fix this?
Closes #165
COPYBARA_INTEGRATE_REVIEW=https://github.com/google/iree/pull/165 from marbre:cmake-4 dbacc0aed2aa0de1b540b3fa4de53721f6355963
PiperOrigin-RevId: 284992923
diff --git a/build_tools/cmake/iree_tablegen_library.cmake b/build_tools/cmake/iree_tablegen_library.cmake
index 705e214..55e72e6 100644
--- a/build_tools/cmake/iree_tablegen_library.cmake
+++ b/build_tools/cmake/iree_tablegen_library.cmake
@@ -21,7 +21,7 @@
cmake_parse_arguments(
_RULE
"TESTONLY"
- "NAME"
+ "NAME;TBLGEN"
"SRCS;OUTS"
${ARGN}
)
@@ -31,6 +31,12 @@
iree_package_name(_PACKAGE_NAME)
set(_NAME "${_PACKAGE_NAME}_${_RULE_NAME}")
+ if(${_RULE_TBLGEN} MATCHES "IREE")
+ set(_TBLGEN "IREE")
+ else()
+ set(_TBLGEN "MLIR")
+ endif()
+
set(LLVM_TARGET_DEFINITIONS ${_RULE_SRCS})
set(_INCLUDE_DIRS ${IREE_COMMON_INCLUDE_DIRS})
list(APPEND _INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR})
@@ -41,7 +47,7 @@
list(REMOVE_AT _RULE_OUTS 0)
list(GET _RULE_OUTS 0 _FILE)
list(REMOVE_AT _RULE_OUTS 0)
- tablegen(MLIR ${_FILE} ${_COMMAND} ${_INCLUDE_DIRS})
+ tablegen(${_TBLGEN} ${_FILE} ${_COMMAND} ${_INCLUDE_DIRS})
list(APPEND _OUTPUTS ${CMAKE_CURRENT_BINARY_DIR}/${_FILE})
endwhile()
add_custom_target(${_NAME}_target DEPENDS ${_OUTPUTS})
diff --git a/iree/compiler/CMakeLists.txt b/iree/compiler/CMakeLists.txt
index 0a42596..d929bc2 100644
--- a/iree/compiler/CMakeLists.txt
+++ b/iree/compiler/CMakeLists.txt
@@ -12,6 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+add_subdirectory(Dialect)
add_subdirectory(IR)
add_subdirectory(Serialization)
add_subdirectory(Transforms)
diff --git a/iree/compiler/Dialect/CMakeLists.txt b/iree/compiler/Dialect/CMakeLists.txt
new file mode 100644
index 0000000..5cb3c3e
--- /dev/null
+++ b/iree/compiler/Dialect/CMakeLists.txt
@@ -0,0 +1,51 @@
+# Copyright 2019 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+add_subdirectory(Flow/Analysis)
+add_subdirectory(Flow/Conversion/HLOToFlow)
+add_subdirectory(Flow/Conversion/StandardToFlow)
+add_subdirectory(Flow/IR)
+add_subdirectory(Flow/Transforms)
+add_subdirectory(Flow/Utils)
+
+add_subdirectory(HAL/Conversion/FlowToHAL)
+add_subdirectory(HAL/Conversion/HALToVM)
+add_subdirectory(HAL/IR)
+add_subdirectory(HAL/Target)
+add_subdirectory(HAL/Transforms)
+add_subdirectory(HAL/Utils)
+
+add_subdirectory(VM/Analysis)
+add_subdirectory(VM/IR)
+add_subdirectory(VM/Target/Bytecode)
+add_subdirectory(VM/Tools)
+add_subdirectory(VM/Transforms)
+
+iree_cc_library(
+ NAME
+ Dialect
+ HDRS
+ "IREEDialect.h"
+ "Traits.h"
+ "Types.h"
+ SRCS
+ "IREEDialect.cpp"
+ DEPS
+ LLVMSupport
+ MLIRIR
+ MLIRParser
+ MLIRSupport
+ ALWAYSLINK
+ PUBLIC
+)
diff --git a/iree/compiler/Dialect/Flow/Analysis/CMakeLists.txt b/iree/compiler/Dialect/Flow/Analysis/CMakeLists.txt
new file mode 100644
index 0000000..f2a52c3
--- /dev/null
+++ b/iree/compiler/Dialect/Flow/Analysis/CMakeLists.txt
@@ -0,0 +1,35 @@
+# Copyright 2019 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+iree_cc_library(
+ NAME
+ Analysis
+ HDRS
+ "Dispatchability.h"
+ SRCS
+ "Dispatchability.cpp"
+ "DispatchabilityTest.cpp"
+ DEPS
+ iree::compiler::Dialect
+ iree::compiler::Dialect::Flow::IR
+ LLVMSupport
+ MLIRIR
+ MLIRPass
+ MLIRStandardOps
+ MLIRSupport
+ MLIRTransforms
+ tensorflow::mlir_xla
+ ALWAYSLINK
+ PUBLIC
+)
diff --git a/iree/compiler/Dialect/Flow/Conversion/HLOToFlow/CMakeLists.txt b/iree/compiler/Dialect/Flow/Conversion/HLOToFlow/CMakeLists.txt
new file mode 100644
index 0000000..d3f67b4
--- /dev/null
+++ b/iree/compiler/Dialect/Flow/Conversion/HLOToFlow/CMakeLists.txt
@@ -0,0 +1,32 @@
+# Copyright 2019 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+iree_cc_library(
+ NAME
+ HLOToFlow
+ HDRS
+ "ConvertHLOToFlow.h"
+ SRCS
+ "ConvertHLOToFlow.cpp"
+ DEPS
+ iree::compiler::Dialect
+ iree::compiler::Dialect::Flow::IR
+ MLIRIR
+ MLIRPass
+ MLIRStandardOps
+ MLIRTransforms
+ tensorflow::mlir_xla
+ ALWAYSLINK
+ PUBLIC
+)
diff --git a/iree/compiler/Dialect/Flow/Conversion/StandardToFlow/CMakeLists.txt b/iree/compiler/Dialect/Flow/Conversion/StandardToFlow/CMakeLists.txt
new file mode 100644
index 0000000..98bc7d9
--- /dev/null
+++ b/iree/compiler/Dialect/Flow/Conversion/StandardToFlow/CMakeLists.txt
@@ -0,0 +1,31 @@
+# Copyright 2019 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+iree_cc_library(
+ NAME
+ StandardToFlow
+ HDRS
+ "ConvertStandardToFlow.h"
+ SRCS
+ "ConvertStandardToFlow.cpp"
+ DEPS
+ iree::compiler::Dialect
+ iree::compiler::Dialect::Flow::IR
+ MLIRIR
+ MLIRPass
+ MLIRStandardOps
+ MLIRTransforms
+ ALWAYSLINK
+ PUBLIC
+)
diff --git a/iree/compiler/Dialect/Flow/IR/CMakeLists.txt b/iree/compiler/Dialect/Flow/IR/CMakeLists.txt
new file mode 100644
index 0000000..2537e62
--- /dev/null
+++ b/iree/compiler/Dialect/Flow/IR/CMakeLists.txt
@@ -0,0 +1,75 @@
+# Copyright 2019 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+iree_cc_library(
+ NAME
+ IR
+ HDRS
+ "FlowDialect.h"
+ "FlowEnums.h.inc"
+ "FlowOpInterface.h.inc"
+ "FlowOps.h"
+ "FlowOps.h.inc"
+ "FlowTypes.h"
+ SRCS
+ "FlowDialect.cpp"
+ "FlowEnums.cpp.inc"
+ "FlowOpFolders.cpp"
+ "FlowOpInterface.cpp.inc"
+ "FlowOps.cpp"
+ "FlowOps.cpp.inc"
+ "FlowTypes.cpp"
+ DEPS
+ FlowEnumsGen
+ FlowOpInterfaceGen
+ FlowOpsGen
+ iree::compiler::Dialect
+ LLVMSupport
+ MLIRIR
+ MLIRStandardOps
+ MLIRSupport
+ MLIRTransformUtils
+ ALWAYSLINK
+ PUBLIC
+)
+
+iree_tablegen_library(
+ NAME
+ FlowEnumsGen
+ SRCS
+ FlowBase.td
+ OUTS
+ -gen-enum-decls FlowEnums.h.inc
+ -gen-enum-defs FlowEnums.cpp.inc
+)
+
+iree_tablegen_library(
+ NAME
+ FlowOpInterfaceGen
+ SRCS
+ FlowBase.td
+ OUTS
+ -gen-op-interface-decls FlowOpInterface.h.inc
+ -gen-op-interface-defs FlowOpInterface.cpp.inc
+)
+
+iree_tablegen_library(
+ NAME
+ FlowOpsGen
+ SRCS
+ FlowOps.td
+ OUTS
+ -gen-op-decls FlowOps.h.inc
+ -gen-op-defs FlowOps.cpp.inc
+)
diff --git a/iree/compiler/Dialect/Flow/Transforms/CMakeLists.txt b/iree/compiler/Dialect/Flow/Transforms/CMakeLists.txt
new file mode 100644
index 0000000..0ba3d67
--- /dev/null
+++ b/iree/compiler/Dialect/Flow/Transforms/CMakeLists.txt
@@ -0,0 +1,50 @@
+# Copyright 2019 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+iree_cc_library(
+ NAME
+ Transforms
+ HDRS
+ "Passes.h"
+ SRCS
+ "AssignExecutableWorkloads.cpp"
+ "DispatchabilityAnalysis.cpp"
+ "FlattenTuplesInCFG.cpp"
+ "FoldCompatibleDispatchRegions.cpp"
+ "FormStreams.cpp"
+ "IdentifyDispatchRegions.cpp"
+ "IdentifyReductionRegions.cpp"
+ "OutlineDispatchRegions.cpp"
+ "OutlineReductionRegions.cpp"
+ "Passes.cpp"
+ "PrePostPartitioningConversion.cpp"
+ "RematerializeDispatchConstants.cpp"
+ DEPS
+ iree::compiler::Dialect::Flow::Analysis
+ iree::compiler::Dialect::Flow::Conversion::HLOToFlow
+ iree::compiler::Dialect::Flow::Conversion::StandardToFlow
+ iree::compiler::Dialect::Flow::IR
+ iree::compiler::Dialect::Flow::Utils
+ iree::compiler::Utils
+ LLVMSupport
+ MLIRIR
+ MLIRPass
+ MLIRStandardOps
+ MLIRSupport
+ MLIRTransformUtils
+ MLIRTransforms
+ tensorflow::mlir_xla
+ ALWAYSLINK
+ PUBLIC
+)
diff --git a/iree/compiler/Dialect/Flow/Utils/CMakeLists.txt b/iree/compiler/Dialect/Flow/Utils/CMakeLists.txt
new file mode 100644
index 0000000..83df7d4
--- /dev/null
+++ b/iree/compiler/Dialect/Flow/Utils/CMakeLists.txt
@@ -0,0 +1,33 @@
+# Copyright 2019 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+iree_cc_library(
+ NAME
+ Utils
+ HDRS
+ "DispatchUtils.h"
+ "WorkloadUtils.h"
+ SRCS
+ "DispatchUtils.cpp"
+ "WorkloadUtils.cpp"
+ DEPS
+ iree::compiler::Dialect::Flow::IR
+ LLVMSupport
+ MLIRIR
+ MLIRStandardOps
+ MLIRSupport
+ tensorflow::mlir_xla
+ ALWAYSLINK
+ PUBLIC
+)
diff --git a/iree/compiler/Dialect/HAL/Conversion/FlowToHAL/CMakeLists.txt b/iree/compiler/Dialect/HAL/Conversion/FlowToHAL/CMakeLists.txt
new file mode 100644
index 0000000..5ece09f
--- /dev/null
+++ b/iree/compiler/Dialect/HAL/Conversion/FlowToHAL/CMakeLists.txt
@@ -0,0 +1,40 @@
+# Copyright 2019 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+iree_cc_library(
+ NAME
+ FlowToHAL
+ HDRS
+ "ConvertFlowToHAL.h"
+ SRCS
+ "ConvertFlowToHAL.cpp"
+ "ConvertStreamOps.cpp"
+ "ConvertStructuralOps.cpp"
+ "ConvertTensorOps.cpp"
+ "ConvertVariableOps.cpp"
+ DEPS
+ iree::compiler::Dialect
+ iree::compiler::Dialect::Flow::IR
+ iree::compiler::Dialect::HAL::IR
+ iree::compiler::Dialect::HAL::Target::ExecutableTarget
+ iree::compiler::Dialect::HAL::Utils
+ iree::compiler::Dialect::HAL::IR
+ LLVMSupport
+ MLIRIR
+ MLIRPass
+ MLIRStandardOps
+ MLIRTransforms
+ ALWAYSLINK
+ PUBLIC
+)
diff --git a/iree/compiler/Dialect/HAL/Conversion/HALToVM/CMakeLists.txt b/iree/compiler/Dialect/HAL/Conversion/HALToVM/CMakeLists.txt
new file mode 100644
index 0000000..fa4ce25
--- /dev/null
+++ b/iree/compiler/Dialect/HAL/Conversion/HALToVM/CMakeLists.txt
@@ -0,0 +1,33 @@
+# Copyright 2019 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+iree_cc_library(
+ NAME
+ HALtoVM
+ HDRS
+ "ConvertHALToVM.h"
+ SRCS
+ "ConvertHALToVM.cpp"
+ "ConvertHALToVMPass.cpp"
+ DEPS
+ iree::compiler::Dialect
+ iree::compiler::Dialect::HAL::IR
+ iree::compiler::Dialect::VM::IR
+ MLIRIR
+ MLIRPass
+ MLIRStandardOps
+ MLIRTransforms
+ ALWAYSLINK
+ PUBLIC
+)
diff --git a/iree/compiler/Dialect/HAL/IR/CMakeLists.txt b/iree/compiler/Dialect/HAL/IR/CMakeLists.txt
new file mode 100644
index 0000000..8721d08
--- /dev/null
+++ b/iree/compiler/Dialect/HAL/IR/CMakeLists.txt
@@ -0,0 +1,75 @@
+# Copyright 2019 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+iree_cc_library(
+ NAME
+ IR
+ HDRS
+ "HALDialect.h"
+ "HALEnums.h.inc"
+ "HALOpInterface.h.inc"
+ "HALOps.h"
+ "HALOps.h.inc"
+ "HALTypes.h"
+ SRCS
+ "HALDialect.cpp"
+ "HALEnums.cpp.inc"
+ "HALOpFolders.cpp"
+ "HALOpInterface.cpp.inc"
+ "HALOps.cpp"
+ "HALOps.cpp.inc"
+ "HALTypes.cpp"
+ DEPS
+ HALEnumsGen
+ HALOpInterfaceGen
+ HALOpsGen
+ iree::compiler::Dialect
+ LLVMSupport
+ MLIRIR
+ MLIRStandardOps
+ MLIRSupport
+ MLIRTransformUtils
+ ALWAYSLINK
+ PUBLIC
+)
+
+iree_tablegen_library(
+ NAME
+ HALEnumsGen
+ SRCS
+ HALBase.td
+ OUTS
+ -gen-enum-decls HALEnums.h.inc
+ -gen-enum-defs HALEnums.cpp.inc
+)
+
+iree_tablegen_library(
+ NAME
+ HALOpInterfaceGen
+ SRCS
+ HALBase.td
+ OUTS
+ -gen-op-interface-decls HALOpInterface.h.inc
+ -gen-op-interface-defs HALOpInterface.cpp.inc
+)
+
+iree_tablegen_library(
+ NAME
+ HALOpsGen
+ SRCS
+ HALOps.td
+ OUTS
+ -gen-op-decls HALOps.h.inc
+ -gen-op-defs HALOps.cpp.inc
+)
diff --git a/iree/compiler/Dialect/HAL/Target/CMakeLists.txt b/iree/compiler/Dialect/HAL/Target/CMakeLists.txt
new file mode 100644
index 0000000..c5e6206
--- /dev/null
+++ b/iree/compiler/Dialect/HAL/Target/CMakeLists.txt
@@ -0,0 +1,34 @@
+# Copyright 2019 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+iree_cc_library(
+ NAME
+ ExecutableTarget
+ HDRS
+ "ExecutableTarget.h"
+ "LegacyUtil.h"
+ SRCS
+ "ExecutableTarget.cpp"
+ "LegacyUtil.cpp"
+ DEPS
+ iree::compiler::Dialect::Flow::IR
+ iree::compiler::Dialect::HAL::IR
+ iree::compiler::IR
+ iree::compiler::Utils
+ LLVMSupport
+ MLIRIR
+ MLIRStandardOps
+ ALWAYSLINK
+ PUBLIC
+)
diff --git a/iree/compiler/Dialect/HAL/Target/VulkanSPIRV/CMakeLists.txt b/iree/compiler/Dialect/HAL/Target/VulkanSPIRV/CMakeLists.txt
new file mode 100644
index 0000000..965d1f8
--- /dev/null
+++ b/iree/compiler/Dialect/HAL/Target/VulkanSPIRV/CMakeLists.txt
@@ -0,0 +1,39 @@
+# Copyright 2019 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+iree_cc_library(
+ NAME
+ VulkanSPIRV
+ HDRS
+ "VulkanSPIRVTarget.h"
+ SRCS
+ "VulkanSPIRVTarget.cpp"
+ DEPS
+ iree::compiler::Dialect::Flow::IR
+ iree::compiler::Dialect::HAL:Target::ExecutableTarget
+ iree::compiler::IR
+ iree::compiler::Translation::SPIRV
+ iree::schemas
+ iree::schemas::spirv_executable_def_cc_fbs
+ flatbuffers
+ LLVMSupport
+ MLIRIR
+ MLIRPass
+ MLIRSPIRVDialect
+ MLIRSPIRVSerialization
+ MLIRSupport
+ tensorflow::mlir_xla
+ ALWAYSLINK
+ PUBLIC
+)
diff --git a/iree/compiler/Dialect/HAL/Transforms/CMakeLists.txt b/iree/compiler/Dialect/HAL/Transforms/CMakeLists.txt
new file mode 100644
index 0000000..d7dde57
--- /dev/null
+++ b/iree/compiler/Dialect/HAL/Transforms/CMakeLists.txt
@@ -0,0 +1,36 @@
+# Copyright 2019 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+iree_cc_library(
+ NAME
+ Transforms
+ HDRS
+ "Passes.h"
+ SRCS
+ "Passes.cpp"
+ "TranslateExecutables.cpp"
+ DEPS
+ iree::compiler::Dialect::Flow::IR
+ iree::compiler::Dialect::HAL::Conversion::FlowToHAL
+ iree::compiler::Dialect::HAL::IR
+ iree::compiler::Dialect::HAL::Target::ExecutableTarget
+ LLVMSupport
+ MLIRIR
+ MLIRPass
+ MLIRStandardOps
+ MLIRSupport
+ MLIRTransforms
+ ALWAYSLINK
+ PUBLIC
+)
diff --git a/iree/compiler/Dialect/HAL/Utils/CMakeLists.txt b/iree/compiler/Dialect/HAL/Utils/CMakeLists.txt
new file mode 100644
index 0000000..28e65b4
--- /dev/null
+++ b/iree/compiler/Dialect/HAL/Utils/CMakeLists.txt
@@ -0,0 +1,29 @@
+# Copyright 2019 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+iree_cc_library(
+ NAME
+ Utils
+ HDRS
+ "TypeUtils.h"
+ SRCS
+ "TypeUtils.cpp"
+ DEPS
+ iree::compiler::Dialect::HAL::IR
+ MLIRIR
+ MLIRStandardOps
+ MLIRTransforms
+ ALWAYSLINK
+ PUBLIC
+)
diff --git a/iree/compiler/Dialect/VM/Analysis/CMakeLists.txt b/iree/compiler/Dialect/VM/Analysis/CMakeLists.txt
new file mode 100644
index 0000000..1c335db
--- /dev/null
+++ b/iree/compiler/Dialect/VM/Analysis/CMakeLists.txt
@@ -0,0 +1,35 @@
+# Copyright 2019 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+iree_cc_library(
+ NAME
+ Analysis
+ HDRS
+ "RegisterAllocation.h"
+ "ValueLiveness.h"
+ SRCS
+ "RegisterAllocation.cpp"
+ "RegisterAllocationTest.cpp"
+ "ValueLiveness.cpp"
+ "ValueLivenessTest.cpp"
+ DEPS
+ iree::compiler::Dialect
+ iree::compiler::Dialect::VM::IR
+ LLVMSupport
+ MLIRIR
+ MLIRParser
+ MLIRSupport
+ ALWAYSLINK
+ PUBLIC
+)
diff --git a/iree/compiler/Dialect/VM/Conversion/CMakeLists.txt b/iree/compiler/Dialect/VM/Conversion/CMakeLists.txt
new file mode 100644
index 0000000..e81845a
--- /dev/null
+++ b/iree/compiler/Dialect/VM/Conversion/CMakeLists.txt
@@ -0,0 +1,31 @@
+# Copyright 2019 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+iree_cc_library(
+ NAME
+ ImportUtils
+ HDRS
+ "ImportUtils.h"
+ SRCS
+ "ImportUtils.cpp"
+ DEPS
+ iree::compiler::Dialect
+ iree::compiler::Dialect::VM:IR
+ MLIRIR
+ MLIRParser
+ MLIRSupport
+ MLIRTransforms
+ ALWAYSLINK
+ PUBLIC
+)
diff --git a/iree/compiler/Dialect/VM/Conversion/StandardToVM/CMakeLists.txt b/iree/compiler/Dialect/VM/Conversion/StandardToVM/CMakeLists.txt
new file mode 100644
index 0000000..e8ae38d
--- /dev/null
+++ b/iree/compiler/Dialect/VM/Conversion/StandardToVM/CMakeLists.txt
@@ -0,0 +1,35 @@
+# Copyright 2019 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+iree_cc_library(
+ NAME
+ StandardToVM
+ HDRS
+ "ConvertStandardToVM.h"
+ SRCS
+ "ConvertStandardToVM.cpp"
+ "ConvertStandardToVMPass.cpp"
+ DEPS
+ iree::compiler::Dialect
+ iree::compiler::Dialect::VM:IR
+ LLVMSupport
+ MLIRIR
+ MLIRPass
+ MLIRStandardOps
+ MLIRSupport
+ MLIRTransformUtils
+ MLIRTransforms
+ ALWAYSLINK
+ PUBLIC
+)
diff --git a/iree/compiler/Dialect/VM/IR/CMakeLists.txt b/iree/compiler/Dialect/VM/IR/CMakeLists.txt
new file mode 100644
index 0000000..770825b
--- /dev/null
+++ b/iree/compiler/Dialect/VM/IR/CMakeLists.txt
@@ -0,0 +1,90 @@
+# Copyright 2019 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+iree_cc_library(
+ NAME
+ IR
+ HDRS
+ "VMDialect.h"
+ "VMEnums.h.inc"
+ "VMFuncEncoder.h"
+ "VMOpInterface.h.inc"
+ "VMOps.h"
+ "VMOps.h.inc"
+ "VMTraits.h"
+ "VMTypes.h"
+ SRCS
+ "VMDialect.cpp"
+ "VMEnums.cpp.inc"
+ "VMOpEncoder.cpp.inc"
+ "VMOpFolders.cpp"
+ "VMOpInterface.cpp.inc"
+ "VMOps.cpp"
+ "VMOps.cpp.inc"
+ "VMTypes.cpp"
+ DEPS
+ VMEnumsGen
+ VMOpEncoderGen
+ VMOpInterfaceGen
+ VMOpsGen
+ iree::compiler::Dialect
+ LLVMSupport
+ MLIRIR
+ MLIRStandardOps
+ MLIRSupport
+ MLIRTransformUtils
+ ALWAYSLINK
+ PUBLIC
+)
+
+iree_tablegen_library(
+ NAME
+ VMEnumsGen
+ SRCS
+ VMBase.td
+ OUTS
+ -gen-enum-decls VMEnums.h.inc
+ -gen-enum-defs VMEnums.cpp.inc
+)
+
+iree_tablegen_library(
+ NAME
+ VMOpsGen
+ SRCS
+ VMOps.td
+ OUTS
+ -gen-op-decls VMOps.h.inc
+ -gen-op-defs VMOps.cpp.inc
+)
+
+iree_tablegen_library(
+ NAME
+ VMOpEncoderGen
+ SRCS
+ VMOps.td
+ OUTS
+ -gen-iree-vm-op-encoder-defs VMOpEncoder.cpp.inc
+ TBLGEN
+ IREE
+)
+
+iree_tablegen_library(
+ NAME
+ VMOpInterfaceGen
+ SRCS
+ VMBase.td
+ OUTS
+ -gen-op-interface-decls VMOpInterface.h.inc
+ -gen-op-interface-defs VMOpInterface.cpp.inc
+)
diff --git a/iree/compiler/Dialect/VM/Target/Bytecode/CMakeLists.txt b/iree/compiler/Dialect/VM/Target/Bytecode/CMakeLists.txt
new file mode 100644
index 0000000..138db13
--- /dev/null
+++ b/iree/compiler/Dialect/VM/Target/Bytecode/CMakeLists.txt
@@ -0,0 +1,41 @@
+# Copyright 2019 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+iree_cc_library(
+ NAME
+ Bytecode
+ HDRS
+ "BytecodeModuleTarget.h"
+ SRCS
+ "BytecodeEncoder.cpp"
+ "BytecodeEncoder.h"
+ "BytecodeModuleTarget.cpp"
+ "ConstantEncoder.cpp"
+ "ConstantEncoder.h"
+ "TranslationRegistration.cpp"
+ DEPS
+ iree::compiler::Dialect
+ iree::compiler::Dialect::VM::Analysis
+ iree::compiler::Dialect::VM::IR
+ iree::compiler::Dialect::VM::Transforms
+ iree::schemas::bytecode_module_def_cc_fbs
+ LLVMSupport
+ MLIRIR
+ MLIRPass
+ MLIRSupport
+ MLIRTransforms
+ MLIRTranslation
+ ALWAYSLINK
+ PUBLIC
+)
diff --git a/iree/compiler/Dialect/VM/Tools/CMakeLists.txt b/iree/compiler/Dialect/VM/Tools/CMakeLists.txt
new file mode 100644
index 0000000..a66a7bb
--- /dev/null
+++ b/iree/compiler/Dialect/VM/Tools/CMakeLists.txt
@@ -0,0 +1,28 @@
+# Copyright 2019 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+iree_cc_library(
+ NAME
+ Tools
+ SRCS
+ "VMOpEncoderGen.cpp"
+ "VMOpTableGen.cpp"
+ DEPS
+ LLVMSupport
+ LLVMTableGen
+ MLIRSupport
+ LLVMMLIRTableGen
+ ALWAYSLINK
+ PUBLIC
+)
diff --git a/iree/compiler/Dialect/VM/Transforms/CMakeLists.txt b/iree/compiler/Dialect/VM/Transforms/CMakeLists.txt
new file mode 100644
index 0000000..1fd4a59
--- /dev/null
+++ b/iree/compiler/Dialect/VM/Transforms/CMakeLists.txt
@@ -0,0 +1,32 @@
+# Copyright 2019 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+iree_cc_library(
+ NAME
+ Transforms
+ HDRS
+ "Passes.h"
+ SRCS
+ "OrdinalAllocationPass.cpp"
+ DEPS
+ iree::compiler::Dialect::VM::IR
+ LLVMSupport
+ MLIRIR
+ MLIRPass
+ MLIRSupport
+ MLIRTransformUtils
+ MLIRTransforms
+ ALWAYSLINK
+ PUBLIC
+)
diff --git a/iree/schemas/CMakeLists.txt b/iree/schemas/CMakeLists.txt
index d9a8abc..edb0898 100644
--- a/iree/schemas/CMakeLists.txt
+++ b/iree/schemas/CMakeLists.txt
@@ -63,6 +63,14 @@
flatbuffer_cc_library(
NAME
+ bytecode_module_def_cc_fbs
+ SRC
+ "bytecode_module_def.fbs"
+ PUBLIC
+)
+
+flatbuffer_cc_library(
+ NAME
debug_service_cc_fbs
SRCS
"debug_service.fbs"