From b89e0c2dec6b795cf3eb141324ab81a50d472407 Mon Sep 17 00:00:00 2001
From: erwei-xilinx <erwei.wang@amd.com>
Date: Thu, 9 Jan 2025 01:07:54 -0800
Subject: [PATCH] Bump mlir-air to c78cf3fb0c8c147d519692952995ba7413604c16

---
 .../plugins/target/AMD-AIE/air/CMakeLists.txt | 19 +++++++++++++++++++
 .../iree-amd-aie/Transforms/Passes.cpp        |  9 +++++++--
 third_party/mlir-air                          |  2 +-
 3 files changed, 27 insertions(+), 3 deletions(-)

diff --git a/compiler/plugins/target/AMD-AIE/air/CMakeLists.txt b/compiler/plugins/target/AMD-AIE/air/CMakeLists.txt
index 8dfe5a24c..8747087d1 100644
--- a/compiler/plugins/target/AMD-AIE/air/CMakeLists.txt
+++ b/compiler/plugins/target/AMD-AIE/air/CMakeLists.txt
@@ -329,6 +329,25 @@ iree_cc_library(
     MLIRSupport
 )
 
+replace_string_in_file(
+  ${IREE_MLIR_AIR_SOURCE_DIR}/lib/Transform/AIRDependencyScheduleOpt.cpp
+  "aie/Dialect/AIE/IR" "aie")
+replace_string_in_file(
+  ${IREE_MLIR_AIR_SOURCE_DIR}/lib/Transform/AIRDependencyScheduleOpt.cpp
+  "aie/Dialect/AIEX/IR" "aie")
+replace_string_in_file(
+  ${IREE_MLIR_AIR_SOURCE_DIR}/lib/Transform/AIRDependencyScheduleOpt.cpp
+  "AIE::getTargetModel(*device)"
+  "getDeviceModel(*device)")
+replace_string_in_file(
+  ${IREE_MLIR_AIR_SOURCE_DIR}/lib/Transform/AIRDependencyScheduleOpt.cpp
+  "isa<AIE::AIE1TargetModel>(getDeviceModel(*device))"
+  "false")
+replace_string_in_file(
+  ${IREE_MLIR_AIR_SOURCE_DIR}/lib/Transform/AIRDependencyScheduleOpt.cpp
+  "isa<AIE::AIE1TargetModel>(getDeviceModel(*device))"
+  "true")
+
 ###############################################################################
 # AIR Passes
 ###############################################################################
diff --git a/compiler/plugins/target/AMD-AIE/iree-amd-aie/Transforms/Passes.cpp b/compiler/plugins/target/AMD-AIE/iree-amd-aie/Transforms/Passes.cpp
index 62fbe0813..9c58f42ed 100644
--- a/compiler/plugins/target/AMD-AIE/iree-amd-aie/Transforms/Passes.cpp
+++ b/compiler/plugins/target/AMD-AIE/iree-amd-aie/Transforms/Passes.cpp
@@ -809,8 +809,7 @@ void addMLIRAIRLoweringPasses(OpPassManager &passManager, AMDAIEDevice device,
   passManager.addPass(createCSEPass());
   passManager.addPass(createCanonicalizerPass());
   passManager.addPass(createCSEPass());
-  passManager.addNestedPass<func::FuncOp>(
-      xilinx::air::createAIRSegmentLoopFusion());
+  passManager.addNestedPass<func::FuncOp>(xilinx::air::createAIRLoopFusion());
 
   passManager.addPass(
       xilinx::air::createAIRLabelScfForLoopForPingPongPattern());
@@ -863,6 +862,12 @@ void addMLIRAIRLoweringPasses(OpPassManager &passManager, AMDAIEDevice device,
   }
   passManager.addPass(createCanonicalizerPass());
   passManager.addPass(xilinx::air::createAIRLoweringPass());
+  {
+    xilinx::air::AIROptimizeShimDMABDsOptions options;
+    options.clDevice = stringifyEnum(device);
+    passManager.addNestedPass<func::FuncOp>(
+        xilinx::air::createAIROptimizeShimDMABDs(options));
+  }
   {
     xilinx::air::AffineLoopOptPassOptions options;
     // tile_sizes contains a list of N tiling factors for the N innermost loop
diff --git a/third_party/mlir-air b/third_party/mlir-air
index 7904ea742..c78cf3fb0 160000
--- a/third_party/mlir-air
+++ b/third_party/mlir-air
@@ -1 +1 @@
-Subproject commit 7904ea742ee37f7020dea85376f20d9aec04a377
+Subproject commit c78cf3fb0c8c147d519692952995ba7413604c16