Merge pull request #6392 from marbre/build-emitc

Refactor building and registering EmitC
diff --git a/iree/compiler/Dialect/VM/Conversion/VMToEmitC/CMakeLists.txt b/iree/compiler/Dialect/VM/Conversion/VMToEmitC/CMakeLists.txt
index 185ae84..8388fe9 100644
--- a/iree/compiler/Dialect/VM/Conversion/VMToEmitC/CMakeLists.txt
+++ b/iree/compiler/Dialect/VM/Conversion/VMToEmitC/CMakeLists.txt
@@ -6,30 +6,27 @@
 
 if(${IREE_ENABLE_EMITC})
   iree_add_all_subdirs()
-  
+
   iree_cc_library(
     NAME
       VMToEmitC
     HDRS
       "ConvertVMToEmitC.h"
-      "EmitCTypeConverter.h"
       "DropExcludedExports.h"
+      "EmitCTypeConverter.h"
     SRCS
       "ConvertVMToEmitC.cpp"
       "DropExcludedExports.cpp"
     DEPS
+      MLIREmitC
       MLIRIR
       MLIRPass
-      MLIREmitC
       MLIRTransforms
       iree::compiler::Dialect::IREE::Conversion::PreserveCompilerHints
       iree::compiler::Dialect::IREE::IR
       iree::compiler::Dialect::VM::Analysis
       iree::compiler::Dialect::VM::IR
       iree::compiler::Dialect::VM::Utils::CallingConvention
-    INCLUDES
-      "${PROJECT_SOURCE_DIR}/third_party/mlir-emitc/include"
-      "${PROJECT_BINARY_DIR}/third_party/mlir-emitc/include"
     PUBLIC
   )
 endif()
diff --git a/iree/compiler/Dialect/VM/Conversion/VMToEmitC/test/CMakeLists.txt b/iree/compiler/Dialect/VM/Conversion/VMToEmitC/test/CMakeLists.txt
index d5cc7b4..d333208 100644
--- a/iree/compiler/Dialect/VM/Conversion/VMToEmitC/test/CMakeLists.txt
+++ b/iree/compiler/Dialect/VM/Conversion/VMToEmitC/test/CMakeLists.txt
@@ -6,12 +6,28 @@
 
 iree_add_all_subdirs()
 
-file(GLOB _GLOB_X_MLIR LIST_DIRECTORIES false RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} CONFIGURE_DEPENDS *.mlir)
 iree_lit_test_suite(
   NAME
     lit
   SRCS
-    "${_GLOB_X_MLIR}"
+    "arithmetic_ops.mlir"
+    "arithmetic_ops_f32.mlir"
+    "arithmetic_ops_i64.mlir"
+    "assignment_ops.mlir"
+    "assignment_ops_f32.mlir"
+    "assignment_ops_i64.mlir"
+    "comparison_ops.mlir"
+    "comparison_ops_f32.mlir"
+    "comparison_ops_i64.mlir"
+    "const_ops.mlir"
+    "const_ops_f32.mlir"
+    "const_ops_i64.mlir"
+    "conversion_ops.mlir"
+    "conversion_ops_f32.mlir"
+    "conversion_ops_i64.mlir"
+    "shift_ops.mlir"
+    "shift_ops_i64.mlir"
+    "type_conversion.mlir"
   DATA
     iree::tools::IreeFileCheck
     iree::tools::iree-opt
diff --git a/iree/tools/CMakeLists.txt b/iree/tools/CMakeLists.txt
index 2bee9c0..84f66eb 100644
--- a/iree/tools/CMakeLists.txt
+++ b/iree/tools/CMakeLists.txt
@@ -44,7 +44,7 @@
 endif()
 
 if(IREE_ENABLE_EMITC)
-  set(IREE_OPT_CONDITIONAL_DEPS
+  set(IREE_EMITC_CONDITIONAL_DEP
     MLIREmitC
   )
   set(IREE_TRANSLATE_CONDITIONAL_DEPS
@@ -331,7 +331,7 @@
       MLIRIR
       MLIROptLib
       MLIRSupport
-      ${IREE_OPT_CONDITIONAL_DEPS}
+      ${IREE_EMITC_CONDITIONAL_DEP}
     PUBLIC
   )
 
@@ -395,7 +395,7 @@
       MLIRIR
       MLIRLspServerLib
       MLIRSupport
-      ${IREE_OPT_CONDITIONAL_DEPS}
+      ${IREE_EMITC_CONDITIONAL_DEP}
     PUBLIC
   )
 
diff --git a/iree/tools/init_dialects.h b/iree/tools/init_dialects.h
index e1f22ca..1da6f2b 100644
--- a/iree/tools/init_dialects.h
+++ b/iree/tools/init_dialects.h
@@ -17,10 +17,6 @@
 #include "iree/tools/init_mlir_dialects.h"
 #include "iree/tools/init_xla_dialects.h"
 
-#ifdef IREE_HAVE_EMITC_DIALECT
-#include "emitc/InitDialect.h"
-#endif  // IREE_HAVE_EMITC_DIALECT
-
 namespace mlir {
 namespace iree_compiler {
 
@@ -29,10 +25,6 @@
   registerMlirDialects(registry);
   mlir::registerXLADialects(registry);
   mlir::iree_compiler::registerIreeCompilerModuleDialects(registry);
-
-#ifdef IREE_HAVE_EMITC_DIALECT
-  mlir::registerEmitCDialect(registry);
-#endif  // IREE_HAVE_EMITC_DIALECT
 }
 
 }  // namespace iree_compiler
diff --git a/iree/tools/init_mlir_dialects.h b/iree/tools/init_mlir_dialects.h
index 70f3ce3..67853c3 100644
--- a/iree/tools/init_mlir_dialects.h
+++ b/iree/tools/init_mlir_dialects.h
@@ -28,6 +28,10 @@
 #include "mlir/Dialect/Vector/VectorOps.h"
 #include "mlir/IR/Dialect.h"
 
+#ifdef IREE_HAVE_EMITC_DIALECT
+#include "mlir/Dialect/EmitC/IR/EmitC.h"
+#endif  // IREE_HAVE_EMITC_DIALECT
+
 namespace mlir {
 
 // Add all the MLIR dialects to the provided registry.
@@ -48,6 +52,10 @@
                   tosa::TosaDialect,
                   shape::ShapeDialect>();
   // clang-format on
+
+#ifdef IREE_HAVE_EMITC_DIALECT
+  registry.insert<emitc::EmitCDialect>();
+#endif  // IREE_HAVE_EMITC_DIALECT
 }
 
 }  // namespace mlir
diff --git a/iree/tools/iree-translate-main.cc b/iree/tools/iree-translate-main.cc
index c56682a..746e376 100644
--- a/iree/tools/iree-translate-main.cc
+++ b/iree/tools/iree-translate-main.cc
@@ -44,7 +44,6 @@
 #include "mlir/Translation.h"
 
 #ifdef IREE_HAVE_EMITC_DIALECT
-#include "emitc/InitDialect.h"
 #include "emitc/InitTranslation.h"
 #endif  // IREE_HAVE_EMITC_DIALECT
 
@@ -67,9 +66,6 @@
   mlir::DialectRegistry registry;
   mlir::registerMlirDialects(registry);
   mlir::registerLLVMDialectTranslation(registry);
-#ifdef IREE_HAVE_EMITC_DIALECT
-  mlir::registerEmitCDialect(registry);
-#endif  // IREE_HAVE_EMITC_DIALECT
   mlir::registerXLADialects(registry);
   mlir::iree_compiler::registerIreeDialects(registry);
   mlir::iree_compiler::registerIreeCompilerModuleDialects(registry);