diff --git a/mlir/lib/Analysis/CMakeLists.txt b/mlir/lib/Analysis/CMakeLists.txt
--- a/mlir/lib/Analysis/CMakeLists.txt
+++ b/mlir/lib/Analysis/CMakeLists.txt
@@ -20,6 +20,9 @@
 
   ADDITIONAL_HEADER_DIRS
   ${MLIR_MAIN_INCLUDE_DIR}/mlir/Analysis
+  DEPENDS
+  MLIRCallInterfacesIncGen
+  MLIRLoopLikeInterfaceIncGen
   )
 
 target_link_libraries(MLIRAnalysis
@@ -40,6 +43,8 @@
 
   ADDITIONAL_HEADER_DIRS
   ${MLIR_MAIN_INCLUDE_DIR}/mlir/Analysis
+  DEPENDS
+  MLIRCallInterfacesIncGen
   )
 
 target_link_libraries(MLIRLoopAnalysis
diff --git a/mlir/lib/Conversion/AVX512ToLLVM/CMakeLists.txt b/mlir/lib/Conversion/AVX512ToLLVM/CMakeLists.txt
--- a/mlir/lib/Conversion/AVX512ToLLVM/CMakeLists.txt
+++ b/mlir/lib/Conversion/AVX512ToLLVM/CMakeLists.txt
@@ -6,6 +6,7 @@
 
   DEPENDS
   MLIRConversionPassIncGen
+  MLIRSideEffectOpInterfacesIncGen
 )
 
 target_link_libraries(MLIRAVX512ToLLVM
diff --git a/mlir/lib/Conversion/AffineToStandard/CMakeLists.txt b/mlir/lib/Conversion/AffineToStandard/CMakeLists.txt
--- a/mlir/lib/Conversion/AffineToStandard/CMakeLists.txt
+++ b/mlir/lib/Conversion/AffineToStandard/CMakeLists.txt
@@ -6,6 +6,7 @@
 
   DEPENDS
   MLIRConversionPassIncGen
+  MLIRSideEffectOpInterfacesIncGen
 )
 target_link_libraries(
   MLIRAffineToStandard
diff --git a/mlir/lib/Conversion/GPUToCUDA/CMakeLists.txt b/mlir/lib/Conversion/GPUToCUDA/CMakeLists.txt
--- a/mlir/lib/Conversion/GPUToCUDA/CMakeLists.txt
+++ b/mlir/lib/Conversion/GPUToCUDA/CMakeLists.txt
@@ -20,6 +20,7 @@
 
   DEPENDS
   MLIRConversionPassIncGen
+  MLIRSideEffectOpInterfacesIncGen
 )
 target_link_libraries(MLIRGPUtoCUDATransforms
   PUBLIC
diff --git a/mlir/lib/Conversion/GPUToSPIRV/CMakeLists.txt b/mlir/lib/Conversion/GPUToSPIRV/CMakeLists.txt
--- a/mlir/lib/Conversion/GPUToSPIRV/CMakeLists.txt
+++ b/mlir/lib/Conversion/GPUToSPIRV/CMakeLists.txt
@@ -9,6 +9,7 @@
   DEPENDS
   MLIRConversionPassIncGen
   MLIRGPUToSPIRVIncGen
+  MLIRSideEffectOpInterfacesIncGen
   )
 
 target_link_libraries(MLIRGPUtoSPIRVTransforms
diff --git a/mlir/lib/Conversion/GPUToVulkan/CMakeLists.txt b/mlir/lib/Conversion/GPUToVulkan/CMakeLists.txt
--- a/mlir/lib/Conversion/GPUToVulkan/CMakeLists.txt
+++ b/mlir/lib/Conversion/GPUToVulkan/CMakeLists.txt
@@ -4,6 +4,7 @@
 
   DEPENDS
   MLIRConversionPassIncGen
+  MLIRSideEffectOpInterfacesIncGen
   )
 
 target_link_libraries(MLIRGPUtoVulkanTransforms
diff --git a/mlir/lib/Conversion/LinalgToLLVM/CMakeLists.txt b/mlir/lib/Conversion/LinalgToLLVM/CMakeLists.txt
--- a/mlir/lib/Conversion/LinalgToLLVM/CMakeLists.txt
+++ b/mlir/lib/Conversion/LinalgToLLVM/CMakeLists.txt
@@ -6,6 +6,8 @@
 
   DEPENDS
   MLIRConversionPassIncGen
+  MLIRLoopLikeInterfaceIncGen
+  MLIRLinalgStructuredOpsInterfaceIncGen
 )
 
 target_link_libraries(MLIRLinalgToLLVM
diff --git a/mlir/lib/Conversion/LinalgToSPIRV/CMakeLists.txt b/mlir/lib/Conversion/LinalgToSPIRV/CMakeLists.txt
--- a/mlir/lib/Conversion/LinalgToSPIRV/CMakeLists.txt
+++ b/mlir/lib/Conversion/LinalgToSPIRV/CMakeLists.txt
@@ -8,6 +8,8 @@
 
   DEPENDS
   MLIRConversionPassIncGen
+  MLIRSideEffectOpInterfacesIncGen
+  MLIRLinalgStructuredOpsInterfaceIncGen
   )
 
 target_link_libraries(MLIRLinalgToSPIRVTransforms
diff --git a/mlir/lib/Conversion/LoopToStandard/CMakeLists.txt b/mlir/lib/Conversion/LoopToStandard/CMakeLists.txt
--- a/mlir/lib/Conversion/LoopToStandard/CMakeLists.txt
+++ b/mlir/lib/Conversion/LoopToStandard/CMakeLists.txt
@@ -6,6 +6,7 @@
 
   DEPENDS
   MLIRConversionPassIncGen
+  MLIRSideEffectOpInterfacesIncGen
 )
 target_link_libraries(
   MLIRLoopToStandard
diff --git a/mlir/lib/Conversion/LoopsToGPU/CMakeLists.txt b/mlir/lib/Conversion/LoopsToGPU/CMakeLists.txt
--- a/mlir/lib/Conversion/LoopsToGPU/CMakeLists.txt
+++ b/mlir/lib/Conversion/LoopsToGPU/CMakeLists.txt
@@ -7,6 +7,7 @@
 
   DEPENDS
   MLIRConversionPassIncGen
+  MLIRSideEffectOpInterfacesIncGen
 )
 target_link_libraries(MLIRLoopsToGPU
   PUBLIC
diff --git a/mlir/lib/Conversion/StandardToLLVM/CMakeLists.txt b/mlir/lib/Conversion/StandardToLLVM/CMakeLists.txt
--- a/mlir/lib/Conversion/StandardToLLVM/CMakeLists.txt
+++ b/mlir/lib/Conversion/StandardToLLVM/CMakeLists.txt
@@ -6,6 +6,8 @@
 
   DEPENDS
   MLIRConversionPassIncGen
+  MLIRCallInterfacesIncGen
+  MLIRSideEffectOpInterfacesIncGen
 )
 target_link_libraries(
   MLIRStandardToLLVM
diff --git a/mlir/lib/Conversion/StandardToSPIRV/CMakeLists.txt b/mlir/lib/Conversion/StandardToSPIRV/CMakeLists.txt
--- a/mlir/lib/Conversion/StandardToSPIRV/CMakeLists.txt
+++ b/mlir/lib/Conversion/StandardToSPIRV/CMakeLists.txt
@@ -9,6 +9,7 @@
 
   DEPENDS
   MLIRConversionPassIncGen
+  MLIRSideEffectOpInterfacesIncGen
   )
 
 target_link_libraries(MLIRStandardToSPIRVTransforms
diff --git a/mlir/lib/Conversion/StandardToStandard/CMakeLists.txt b/mlir/lib/Conversion/StandardToStandard/CMakeLists.txt
--- a/mlir/lib/Conversion/StandardToStandard/CMakeLists.txt
+++ b/mlir/lib/Conversion/StandardToStandard/CMakeLists.txt
@@ -3,6 +3,8 @@
 
   ADDITIONAL_HEADER_DIRS
   ${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/StandardToStandard
+  DEPENDS
+  MLIRSideEffectOpInterfacesIncGen
   )
 target_link_libraries(MLIRStandardToStandard
   PUBLIC
diff --git a/mlir/lib/Conversion/VectorToLLVM/CMakeLists.txt b/mlir/lib/Conversion/VectorToLLVM/CMakeLists.txt
--- a/mlir/lib/Conversion/VectorToLLVM/CMakeLists.txt
+++ b/mlir/lib/Conversion/VectorToLLVM/CMakeLists.txt
@@ -6,6 +6,7 @@
 
   DEPENDS
   MLIRConversionPassIncGen
+  MLIRSideEffectOpInterfacesIncGen
 )
 
 target_link_libraries(MLIRVectorToLLVM
diff --git a/mlir/lib/Conversion/VectorToLoops/CMakeLists.txt b/mlir/lib/Conversion/VectorToLoops/CMakeLists.txt
--- a/mlir/lib/Conversion/VectorToLoops/CMakeLists.txt
+++ b/mlir/lib/Conversion/VectorToLoops/CMakeLists.txt
@@ -3,6 +3,8 @@
 
   ADDITIONAL_HEADER_DIRS
   ${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/VectorToLoops
+  DEPENDS
+  MLIRSideEffectOpInterfacesIncGen
 )
 
 target_link_libraries(MLIRVectorToLoops
diff --git a/mlir/lib/Dialect/AVX512/CMakeLists.txt b/mlir/lib/Dialect/AVX512/CMakeLists.txt
--- a/mlir/lib/Dialect/AVX512/CMakeLists.txt
+++ b/mlir/lib/Dialect/AVX512/CMakeLists.txt
@@ -6,6 +6,7 @@
 
   DEPENDS
   MLIRAVX512IncGen
+  MLIRSideEffectOpInterfacesIncGen
   )
 target_link_libraries(MLIRAVX512
   PUBLIC
diff --git a/mlir/lib/Dialect/Affine/Utils/CMakeLists.txt b/mlir/lib/Dialect/Affine/Utils/CMakeLists.txt
--- a/mlir/lib/Dialect/Affine/Utils/CMakeLists.txt
+++ b/mlir/lib/Dialect/Affine/Utils/CMakeLists.txt
@@ -3,7 +3,8 @@
 
   ADDITIONAL_HEADER_DIRS
   ${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/Affine
-
+  DEPENDS
+  MLIRSideEffectOpInterfacesIncGen
   )
 target_link_libraries(MLIRAffineUtils
   PUBLIC
diff --git a/mlir/lib/Dialect/GPU/CMakeLists.txt b/mlir/lib/Dialect/GPU/CMakeLists.txt
--- a/mlir/lib/Dialect/GPU/CMakeLists.txt
+++ b/mlir/lib/Dialect/GPU/CMakeLists.txt
@@ -13,6 +13,7 @@
   MLIRGPUPassIncGen
   MLIRParallelLoopMapperAttrGen
   MLIRParallelLoopMapperEnumsGen
+  MLIRSideEffectOpInterfacesIncGen
   )
 target_link_libraries(MLIRGPU
   PUBLIC
diff --git a/mlir/lib/Dialect/LLVMIR/CMakeLists.txt b/mlir/lib/Dialect/LLVMIR/CMakeLists.txt
--- a/mlir/lib/Dialect/LLVMIR/CMakeLists.txt
+++ b/mlir/lib/Dialect/LLVMIR/CMakeLists.txt
@@ -9,6 +9,7 @@
   DEPENDS
   MLIRLLVMOpsIncGen
   MLIRLLVMConversionsIncGen
+  MLIRSideEffectOpInterfacesIncGen
   )
 target_link_libraries(MLIRLLVMIR
   PUBLIC
@@ -35,6 +36,7 @@
   DEPENDS
   MLIRLLVMAVX512IncGen
   MLIRLLVMAVX512ConversionsIncGen
+  MLIRSideEffectOpInterfacesIncGen
   )
 target_link_libraries(MLIRLLVMAVX512
   PUBLIC
@@ -55,6 +57,7 @@
   DEPENDS
   MLIRNVVMOpsIncGen
   MLIRNVVMConversionsIncGen
+  MLIRSideEffectOpInterfacesIncGen
   )
 target_link_libraries(MLIRNVVMIR
   PUBLIC
@@ -75,6 +78,7 @@
   DEPENDS
   MLIRROCDLOpsIncGen
   MLIRROCDLConversionsIncGen
+  MLIRSideEffectOpInterfacesIncGen
   )
 target_link_libraries(MLIRROCDLIR
   PUBLIC
diff --git a/mlir/lib/Dialect/Linalg/Analysis/CMakeLists.txt b/mlir/lib/Dialect/Linalg/Analysis/CMakeLists.txt
--- a/mlir/lib/Dialect/Linalg/Analysis/CMakeLists.txt
+++ b/mlir/lib/Dialect/Linalg/Analysis/CMakeLists.txt
@@ -6,6 +6,7 @@
 
   DEPENDS
   intrinsics_gen
+  MLIRLinalgStructuredOpsInterfaceIncGen
   )
 
 target_link_libraries(MLIRLinalgAnalysis
diff --git a/mlir/lib/Dialect/Linalg/EDSC/CMakeLists.txt b/mlir/lib/Dialect/Linalg/EDSC/CMakeLists.txt
--- a/mlir/lib/Dialect/Linalg/EDSC/CMakeLists.txt
+++ b/mlir/lib/Dialect/Linalg/EDSC/CMakeLists.txt
@@ -6,6 +6,7 @@
 
   DEPENDS
   intrinsics_gen
+  MLIRLinalgStructuredOpsInterfaceIncGen
   )
 
 target_link_libraries(MLIRLinalgEDSC
diff --git a/mlir/lib/Dialect/Linalg/IR/CMakeLists.txt b/mlir/lib/Dialect/Linalg/IR/CMakeLists.txt
--- a/mlir/lib/Dialect/Linalg/IR/CMakeLists.txt
+++ b/mlir/lib/Dialect/Linalg/IR/CMakeLists.txt
@@ -7,8 +7,6 @@
 
   DEPENDS
   intrinsics_gen
-  )
-add_dependencies(MLIRLinalgOps
   MLIRLinalgOpsIncGen
   MLIRLinalgStructuredOpsIncGen
   MLIRLinalgStructuredOpsInterfaceIncGen
diff --git a/mlir/lib/Dialect/Linalg/Utils/CMakeLists.txt b/mlir/lib/Dialect/Linalg/Utils/CMakeLists.txt
--- a/mlir/lib/Dialect/Linalg/Utils/CMakeLists.txt
+++ b/mlir/lib/Dialect/Linalg/Utils/CMakeLists.txt
@@ -5,6 +5,7 @@
   ${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/Linalg
   DEPENDS
   intrinsics_gen
+  MLIRLinalgStructuredOpsInterfaceIncGen
   )
 
 target_link_libraries(MLIRLinalgUtils
diff --git a/mlir/lib/Dialect/LoopOps/CMakeLists.txt b/mlir/lib/Dialect/LoopOps/CMakeLists.txt
--- a/mlir/lib/Dialect/LoopOps/CMakeLists.txt
+++ b/mlir/lib/Dialect/LoopOps/CMakeLists.txt
@@ -8,6 +8,7 @@
 
   DEPENDS
   MLIRLoopOpsIncGen
+  MLIRLoopLikeInterfaceIncGen
   )
 target_link_libraries(MLIRLoopOps
   PUBLIC
diff --git a/mlir/lib/ExecutionEngine/CMakeLists.txt b/mlir/lib/ExecutionEngine/CMakeLists.txt
--- a/mlir/lib/ExecutionEngine/CMakeLists.txt
+++ b/mlir/lib/ExecutionEngine/CMakeLists.txt
@@ -12,6 +12,8 @@
 
   ADDITIONAL_HEADER_DIRS
   ${MLIR_MAIN_INCLUDE_DIR}/mlir/ExecutionEngine
+  DEPENDS
+  intrinsics_gen
   )
 target_link_libraries(MLIRExecutionEngine
   PUBLIC
diff --git a/mlir/lib/Parser/CMakeLists.txt b/mlir/lib/Parser/CMakeLists.txt
--- a/mlir/lib/Parser/CMakeLists.txt
+++ b/mlir/lib/Parser/CMakeLists.txt
@@ -5,6 +5,8 @@
 
   ADDITIONAL_HEADER_DIRS
   ${MLIR_MAIN_INCLUDE_DIR}/mlir/Parser
+  DEPENDS
+  MLIROpAsmInterfacesIncGen
   )
 target_link_libraries(MLIRParser
   PUBLIC
diff --git a/mlir/lib/Pass/CMakeLists.txt b/mlir/lib/Pass/CMakeLists.txt
--- a/mlir/lib/Pass/CMakeLists.txt
+++ b/mlir/lib/Pass/CMakeLists.txt
@@ -4,6 +4,8 @@
 
   ADDITIONAL_HEADER_DIRS
   ${MLIR_MAIN_INCLUDE_DIR}/mlir/Pass
+  DEPENDS
+  MLIRCallInterfacesIncGen
   )
 target_link_libraries(MLIRPass
   PUBLIC
diff --git a/mlir/lib/Target/CMakeLists.txt b/mlir/lib/Target/CMakeLists.txt
--- a/mlir/lib/Target/CMakeLists.txt
+++ b/mlir/lib/Target/CMakeLists.txt
@@ -6,6 +6,7 @@
   ${MLIR_MAIN_INCLUDE_DIR}/mlir/Target/LLVMIR
   DEPENDS
   intrinsics_gen
+  MLIRCallInterfacesIncGen
   )
 target_link_libraries(MLIRTargetLLVMIRModuleTranslation
   PUBLIC