diff --git a/include/aie/Dialect/AIE/Transforms/AIEPasses.h b/include/aie/Dialect/AIE/Transforms/AIEPasses.h index c936bb96f56..7911f56c56f 100644 --- a/include/aie/Dialect/AIE/Transforms/AIEPasses.h +++ b/include/aie/Dialect/AIE/Transforms/AIEPasses.h @@ -20,9 +20,8 @@ namespace xilinx::AIE { -#define GEN_PASS_DECL_AIECORETOSTANDARD -#define GEN_PASS_DECL_AIEASSIGNBUFFERADDRESSES -#define GEN_PASS_CLASSES +#define GEN_PASS_DECL +#define GEN_PASS_DEF_AIEROUTEPATHFINDERFLOWS #include "aie/Dialect/AIE/Transforms/AIEPasses.h.inc" std::unique_ptr> @@ -78,7 +77,8 @@ createAIETraceRegPackWritesPass(); /// 3. rewrite flows to stream-switches using 'weights' from analysis pass. /// 4. check a region is legal /// 5. rewrite stream-switches (within a bounding box) back to flows -struct AIEPathfinderPass : AIERoutePathfinderFlowsBase { +struct AIEPathfinderPass + : impl::AIERoutePathfinderFlowsBase { AIEPathfinderPass() = default; diff --git a/include/aie/Dialect/AIEVec/Analysis/Passes.h b/include/aie/Dialect/AIEVec/Analysis/Passes.h index bac73e739a9..d310118ff8f 100644 --- a/include/aie/Dialect/AIEVec/Analysis/Passes.h +++ b/include/aie/Dialect/AIEVec/Analysis/Passes.h @@ -31,7 +31,6 @@ namespace xilinx { namespace aievec { #define GEN_PASS_DECL -#define GEN_PASS_CLASSES #include "aie/Dialect/AIEVec/Analysis/Passes.h.inc" std::unique_ptr createAIEVecConvolutionAnalysisPass(); diff --git a/include/aie/Dialect/AIEVec/Transforms/Passes.h b/include/aie/Dialect/AIEVec/Transforms/Passes.h index a61c2a90321..ddf113200ac 100644 --- a/include/aie/Dialect/AIEVec/Transforms/Passes.h +++ b/include/aie/Dialect/AIEVec/Transforms/Passes.h @@ -62,7 +62,6 @@ namespace xilinx { namespace aievec { #define GEN_PASS_DECL -#define GEN_PASS_CLASSES #include "aie/Dialect/AIEVec/Transforms/Passes.h.inc" std::unique_ptr createAIEVectorizePass(); diff --git a/include/aie/Dialect/AIEX/Transforms/AIEXPasses.h b/include/aie/Dialect/AIEX/Transforms/AIEXPasses.h index 0c50363ac8b..9de3bfd59e6 100644 --- a/include/aie/Dialect/AIEX/Transforms/AIEXPasses.h +++ b/include/aie/Dialect/AIEX/Transforms/AIEXPasses.h @@ -17,7 +17,7 @@ namespace xilinx::AIEX { -#define GEN_PASS_CLASSES +#define GEN_PASS_DECL #include "aie/Dialect/AIEX/Transforms/AIEXPasses.h.inc" std::unique_ptr> createAIECreateCoresPass(); diff --git a/lib/Conversion/AIEToConfiguration/AIEToConfiguration.cpp b/lib/Conversion/AIEToConfiguration/AIEToConfiguration.cpp index c407086fd95..4cf93cd63b2 100644 --- a/lib/Conversion/AIEToConfiguration/AIEToConfiguration.cpp +++ b/lib/Conversion/AIEToConfiguration/AIEToConfiguration.cpp @@ -29,6 +29,12 @@ extern "C" { #include #include +namespace xilinx { +#define GEN_PASS_DEF_CONVERTAIETOCONTROLPACKETS +#define GEN_PASS_DEF_CONVERTAIETOTRANSACTION +#include "aie/Conversion/Passes.h.inc" +} // namespace xilinx + #define DEBUG_TYPE "aie-convert-to-config" using namespace mlir; @@ -842,22 +848,26 @@ struct ConvertAIEToConfigurationPass : BaseClass { struct ConvertAIEToTransactionPass : ConvertAIEToConfigurationPass< - ConvertAIEToTransactionBase, + xilinx::impl::ConvertAIEToTransactionBase< + ConvertAIEToTransactionPass>, AIE::AIEToConfigurationOutputType::Transaction> { ConvertAIEToTransactionPass() : ConvertAIEToConfigurationPass< - ConvertAIEToTransactionBase, + xilinx::impl::ConvertAIEToTransactionBase< + ConvertAIEToTransactionPass>, AIE::AIEToConfigurationOutputType::Transaction>(clElfDir, clDeviceName) {} }; struct ConvertAIEToControlPacketsPass : ConvertAIEToConfigurationPass< - ConvertAIEToControlPacketsBase, + xilinx::impl::ConvertAIEToControlPacketsBase< + ConvertAIEToControlPacketsPass>, AIE::AIEToConfigurationOutputType::ControlPacket> { ConvertAIEToControlPacketsPass() : ConvertAIEToConfigurationPass< - ConvertAIEToControlPacketsBase, + xilinx::impl::ConvertAIEToControlPacketsBase< + ConvertAIEToControlPacketsPass>, AIE::AIEToConfigurationOutputType::ControlPacket>(clElfDir, clDeviceName) {} }; diff --git a/lib/Conversion/AIEVecToLLVM/AIEVecToLLVM.cpp b/lib/Conversion/AIEVecToLLVM/AIEVecToLLVM.cpp index 5c98e45de46..d5a9d2ce665 100644 --- a/lib/Conversion/AIEVecToLLVM/AIEVecToLLVM.cpp +++ b/lib/Conversion/AIEVecToLLVM/AIEVecToLLVM.cpp @@ -25,6 +25,12 @@ #include "mlir/IR/TypeUtilities.h" #include +namespace xilinx { +using namespace mlir; // For LLVM::LLVMDialect in generated getDependentDialects +#define GEN_PASS_DEF_CONVERTAIEVECTOLLVM +#include "aie/Conversion/Passes.h.inc" +} // namespace xilinx + using namespace mlir; namespace xilinx::aievec { @@ -5669,7 +5675,7 @@ static void configureAIEVecToLLVMLegalizations(LLVMConversionTarget &target) { } struct ConvertAIEVecToLLVMPass - : ConvertAIEVecToLLVMBase { + : xilinx::impl::ConvertAIEVecToLLVMBase { ConvertAIEVecToLLVMPass() = default; ConvertAIEVecToLLVMPass(const xilinx::ConvertAIEVecToLLVMOptions &options) { aieTarget = options.aieTarget; diff --git a/lib/Conversion/PassDetail.h b/lib/Conversion/PassDetail.h index 8e51276b5d1..8121e37a8c1 100644 --- a/lib/Conversion/PassDetail.h +++ b/lib/Conversion/PassDetail.h @@ -53,8 +53,6 @@ namespace LLVM { class LLVMDialect; } // namespace LLVM -#define GEN_PASS_CLASSES -#include "aie/Conversion/Passes.h.inc" } // namespace mlir #endif // AIE_CONVERSION_PASSDETAIL_H_ diff --git a/lib/Dialect/AIE/Transforms/AIEAssignBufferDescriptorIDs.cpp b/lib/Dialect/AIE/Transforms/AIEAssignBufferDescriptorIDs.cpp index 5a4db67fa53..a7eb45338cb 100644 --- a/lib/Dialect/AIE/Transforms/AIEAssignBufferDescriptorIDs.cpp +++ b/lib/Dialect/AIE/Transforms/AIEAssignBufferDescriptorIDs.cpp @@ -14,6 +14,11 @@ #include "mlir/Pass/Pass.h" +namespace xilinx::AIE { +#define GEN_PASS_DEF_AIEASSIGNBUFFERDESCRIPTORIDS +#include "aie/Dialect/AIE/Transforms/AIEPasses.h.inc" +} // namespace xilinx::AIE + #define DEBUG_TYPE "aie-assign-bd-ids" using namespace mlir; @@ -52,7 +57,8 @@ bool BdIdGenerator::bdIdAlreadyAssigned(uint32_t bdId) { void BdIdGenerator::freeBdId(uint32_t bdId) { alreadyAssigned.erase(bdId); } struct AIEAssignBufferDescriptorIDsPass - : AIEAssignBufferDescriptorIDsBase { + : xilinx::AIE::impl::AIEAssignBufferDescriptorIDsBase< + AIEAssignBufferDescriptorIDsPass> { void runOnOperation() override { DeviceOp targetOp = getOperation(); const AIETargetModel &targetModel = targetOp.getTargetModel(); diff --git a/lib/Dialect/AIE/Transforms/AIEAssignBuffers.cpp b/lib/Dialect/AIE/Transforms/AIEAssignBuffers.cpp index 5e9b137fd4b..fe1d9be1d06 100644 --- a/lib/Dialect/AIE/Transforms/AIEAssignBuffers.cpp +++ b/lib/Dialect/AIE/Transforms/AIEAssignBuffers.cpp @@ -13,6 +13,11 @@ #include "mlir/IR/Attributes.h" +namespace xilinx::AIE { +#define GEN_PASS_DEF_AIEASSIGNBUFFERADDRESSES +#include "aie/Dialect/AIE/Transforms/AIEPasses.h.inc" +} // namespace xilinx::AIE + #define DEBUG_TYPE "aie-assign-buffers" using namespace mlir; @@ -467,7 +472,8 @@ LogicalResult checkBufferScope(BufferOp buffer, DeviceOp device) { } struct AIEAssignBufferAddressesPass - : AIEAssignBufferAddressesBase { + : xilinx::AIE::impl::AIEAssignBufferAddressesBase< + AIEAssignBufferAddressesPass> { AIEAssignBufferAddressesPass() = default; diff --git a/lib/Dialect/AIE/Transforms/AIEAssignLockIDs.cpp b/lib/Dialect/AIE/Transforms/AIEAssignLockIDs.cpp index 5f56bc35ab2..f2d25e2fb18 100644 --- a/lib/Dialect/AIE/Transforms/AIEAssignLockIDs.cpp +++ b/lib/Dialect/AIE/Transforms/AIEAssignLockIDs.cpp @@ -21,13 +21,19 @@ #include "mlir/Pass/Pass.h" #include "llvm/ADT/DenseMap.h" +namespace xilinx::AIE { +#define GEN_PASS_DEF_AIEASSIGNLOCKIDS +#include "aie/Dialect/AIE/Transforms/AIEPasses.h.inc" +} // namespace xilinx::AIE + #define DEBUG_TYPE "aie-assign-lock-ids" using namespace mlir; using namespace xilinx; using namespace xilinx::AIE; -struct AIEAssignLockIDsPass : AIEAssignLockIDsBase { +struct AIEAssignLockIDsPass + : xilinx::AIE::impl::AIEAssignLockIDsBase { void getDependentDialects(DialectRegistry ®istry) const override { registry.insert(); registry.insert(); diff --git a/lib/Dialect/AIE/Transforms/AIECanonicalizeDevice.cpp b/lib/Dialect/AIE/Transforms/AIECanonicalizeDevice.cpp index 380fee8a380..beb0a88b156 100644 --- a/lib/Dialect/AIE/Transforms/AIECanonicalizeDevice.cpp +++ b/lib/Dialect/AIE/Transforms/AIECanonicalizeDevice.cpp @@ -15,6 +15,11 @@ #include "mlir/IR/Location.h" #include "mlir/Pass/Pass.h" +namespace xilinx::AIE { +#define GEN_PASS_DEF_AIECANONICALIZEDEVICE +#include "aie/Dialect/AIE/Transforms/AIEPasses.h.inc" +} // namespace xilinx::AIE + #define DEBUG_TYPE "aie-canonicalize-device" using namespace mlir; @@ -22,7 +27,7 @@ using namespace xilinx; using namespace xilinx::AIE; struct AIECanonicalizeDevicePass - : AIECanonicalizeDeviceBase { + : xilinx::AIE::impl::AIECanonicalizeDeviceBase { void runOnOperation() override { ModuleOp moduleOp = getOperation(); diff --git a/lib/Dialect/AIE/Transforms/AIECoreToStandard.cpp b/lib/Dialect/AIE/Transforms/AIECoreToStandard.cpp index 5147e1b394b..9787efeeb6d 100644 --- a/lib/Dialect/AIE/Transforms/AIECoreToStandard.cpp +++ b/lib/Dialect/AIE/Transforms/AIECoreToStandard.cpp @@ -30,6 +30,11 @@ #include "mlir/Tools/mlir-translate/MlirTranslateMain.h" #include "mlir/Transforms/DialectConversion.h" +namespace xilinx::AIE { +#define GEN_PASS_DEF_AIECORETOSTANDARD +#include "aie/Dialect/AIE/Transforms/AIEPasses.h.inc" +} // namespace xilinx::AIE + using namespace mlir; using namespace mlir::vector; using namespace xilinx; @@ -678,7 +683,8 @@ struct AIEEventOpToStdLowering : OpConversionPattern { } }; -struct AIECoreToStandardPass : AIECoreToStandardBase { +struct AIECoreToStandardPass + : xilinx::AIE::impl::AIECoreToStandardBase { AIECoreToStandardPass() = default; AIECoreToStandardPass(const AIECoreToStandardOptions &options) { deviceName = options.deviceName; diff --git a/lib/Dialect/AIE/Transforms/AIEFindFlows.cpp b/lib/Dialect/AIE/Transforms/AIEFindFlows.cpp index 1e4ea1fb54a..157f446ac47 100644 --- a/lib/Dialect/AIE/Transforms/AIEFindFlows.cpp +++ b/lib/Dialect/AIE/Transforms/AIEFindFlows.cpp @@ -14,6 +14,11 @@ #include "mlir/IR/IRMapping.h" #include "mlir/Pass/Pass.h" +namespace xilinx::AIE { +#define GEN_PASS_DEF_AIEFINDFLOWS +#include "aie/Dialect/AIE/Transforms/AIEPasses.h.inc" +} // namespace xilinx::AIE + #define DEBUG_TYPE "aie-find-flows" using namespace mlir; @@ -265,7 +270,8 @@ static void findFlowsFrom(TileOp op, ConnectivityAnalysis &analysis, } } -struct AIEFindFlowsPass : public AIEFindFlowsBase { +struct AIEFindFlowsPass + : public xilinx::AIE::impl::AIEFindFlowsBase { void getDependentDialects(DialectRegistry ®istry) const override { registry.insert(); registry.insert(); diff --git a/lib/Dialect/AIE/Transforms/AIEGenerateColumnControlOverlay.cpp b/lib/Dialect/AIE/Transforms/AIEGenerateColumnControlOverlay.cpp index 4f33de168d1..fd6f233e039 100644 --- a/lib/Dialect/AIE/Transforms/AIEGenerateColumnControlOverlay.cpp +++ b/lib/Dialect/AIE/Transforms/AIEGenerateColumnControlOverlay.cpp @@ -17,6 +17,12 @@ #include "llvm/ADT/SmallSet.h" +namespace xilinx::AIE { +#define GEN_PASS_DEF_AIEGENERATECOLUMNCONTROLOVERLAY +#define GEN_PASS_DEF_AIEASSIGNTILECTRLIDS +#include "aie/Dialect/AIE/Transforms/AIEPasses.h.inc" +} // namespace xilinx::AIE + #define DEBUG_TYPE "aie-generate-column-control-overlay" using namespace mlir; @@ -135,7 +141,7 @@ DenseMap getRowToShimChanMap(const AIETargetModel &targetModel, } struct AIEAssignTileCtrlIDsPass - : AIEAssignTileCtrlIDsBase { + : xilinx::AIE::impl::AIEAssignTileCtrlIDsBase { void getDependentDialects(DialectRegistry ®istry) const override { registry.insert(); } @@ -179,7 +185,8 @@ struct AIEAssignTileCtrlIDsPass }; struct AIEGenerateColumnControlOverlayPass - : AIEGenerateColumnControlOverlayBase { + : xilinx::AIE::impl::AIEGenerateColumnControlOverlayBase< + AIEGenerateColumnControlOverlayPass> { void getDependentDialects(DialectRegistry ®istry) const override { registry.insert(); registry.insert(); diff --git a/lib/Dialect/AIE/Transforms/AIEHoistVectorTransferPointers.cpp b/lib/Dialect/AIE/Transforms/AIEHoistVectorTransferPointers.cpp index 0085f5877c5..303848d803b 100644 --- a/lib/Dialect/AIE/Transforms/AIEHoistVectorTransferPointers.cpp +++ b/lib/Dialect/AIE/Transforms/AIEHoistVectorTransferPointers.cpp @@ -31,6 +31,11 @@ #include "mlir/Pass/Pass.h" #include "mlir/Transforms/GreedyPatternRewriteDriver.h" +namespace xilinx::AIE { +#define GEN_PASS_DEF_AIEHOISTVECTORTRANSFERPOINTERS +#include "aie/Dialect/AIE/Transforms/AIEPasses.h.inc" +} // namespace xilinx::AIE + #define DEBUG_TYPE "aie-hoist-vector-transfer-pointers" using namespace mlir; @@ -557,7 +562,8 @@ struct HoistVectorTransferPointersPattern //===----------------------------------------------------------------------===// struct AIEHoistVectorTransferPointersPass - : AIEHoistVectorTransferPointersBase { + : xilinx::AIE::impl::AIEHoistVectorTransferPointersBase< + AIEHoistVectorTransferPointersPass> { void getDependentDialects(DialectRegistry ®istry) const override { registry.insert { +struct AIELocalizeLocksPass + : xilinx::AIE::impl::AIELocalizeLocksBase { void getDependentDialects(DialectRegistry ®istry) const override { registry.insert(); } diff --git a/lib/Dialect/AIE/Transforms/AIELowerCascadeFlows.cpp b/lib/Dialect/AIE/Transforms/AIELowerCascadeFlows.cpp index 07fd57ddbdf..4ef0bbc73a4 100644 --- a/lib/Dialect/AIE/Transforms/AIELowerCascadeFlows.cpp +++ b/lib/Dialect/AIE/Transforms/AIELowerCascadeFlows.cpp @@ -16,6 +16,11 @@ #include "llvm/ADT/Twine.h" +namespace xilinx::AIE { +#define GEN_PASS_DEF_AIELOWERCASCADEFLOWS +#include "aie/Dialect/AIE/Transforms/AIEPasses.h.inc" +} // namespace xilinx::AIE + #define DEBUG_TYPE "aie-lower-cascade-flows" using namespace mlir; @@ -23,7 +28,7 @@ using namespace xilinx; using namespace xilinx::AIE; struct AIELowerCascadeFlowsPass - : AIELowerCascadeFlowsBase { + : xilinx::AIE::impl::AIELowerCascadeFlowsBase { void getDependentDialects(DialectRegistry ®istry) const override { registry.insert(); } diff --git a/lib/Dialect/AIE/Transforms/AIENormalizeAddressSpaces.cpp b/lib/Dialect/AIE/Transforms/AIENormalizeAddressSpaces.cpp index cafbac8a5e3..361aa7f5a5a 100644 --- a/lib/Dialect/AIE/Transforms/AIENormalizeAddressSpaces.cpp +++ b/lib/Dialect/AIE/Transforms/AIENormalizeAddressSpaces.cpp @@ -40,8 +40,14 @@ Type memRefToDefaultAddressSpace(Type t) { #include "aie/Dialect/AIE/Transforms/AIENormalizeAddressSpaces.inc" +namespace xilinx::AIE { +#define GEN_PASS_DEF_AIENORMALIZEADDRESSSPACES +#include "aie/Dialect/AIE/Transforms/AIEPasses.h.inc" +} // namespace xilinx::AIE + struct AIENormalizeAddressSpacesPass - : AIENormalizeAddressSpacesBase { + : xilinx::AIE::impl::AIENormalizeAddressSpacesBase< + AIENormalizeAddressSpacesPass> { void getDependentDialects(DialectRegistry ®istry) const override { registry.insert(); } diff --git a/lib/Dialect/AIE/Transforms/AIEObjectFifoRegisterProcess.cpp b/lib/Dialect/AIE/Transforms/AIEObjectFifoRegisterProcess.cpp index f9466f27c1d..a304954b898 100644 --- a/lib/Dialect/AIE/Transforms/AIEObjectFifoRegisterProcess.cpp +++ b/lib/Dialect/AIE/Transforms/AIEObjectFifoRegisterProcess.cpp @@ -24,6 +24,11 @@ #include +namespace xilinx::AIE { +#define GEN_PASS_DEF_AIEOBJECTFIFOREGISTERPROCESS +#include "aie/Dialect/AIE/Transforms/AIEPasses.h.inc" +} // namespace xilinx::AIE + using namespace mlir; using namespace xilinx; using namespace xilinx::AIE; @@ -34,7 +39,8 @@ using namespace xilinx::AIE; // Register objectFifos Pass //===----------------------------------------------------------------------===// struct AIEObjectFifoRegisterProcessPass - : AIEObjectFifoRegisterProcessBase { + : xilinx::AIE::impl::AIEObjectFifoRegisterProcessBase< + AIEObjectFifoRegisterProcessPass> { scf::ForOp createForLoop(OpBuilder &builder, int length) { auto lowerBound = arith::ConstantOp::create( diff --git a/lib/Dialect/AIE/Transforms/AIEObjectFifoStatefulTransform.cpp b/lib/Dialect/AIE/Transforms/AIEObjectFifoStatefulTransform.cpp index ad8a91a0d8c..95c459e9503 100644 --- a/lib/Dialect/AIE/Transforms/AIEObjectFifoStatefulTransform.cpp +++ b/lib/Dialect/AIE/Transforms/AIEObjectFifoStatefulTransform.cpp @@ -30,6 +30,11 @@ #include +namespace xilinx::AIE { +#define GEN_PASS_DEF_AIEOBJECTFIFOSTATEFULTRANSFORM +#include "aie/Dialect/AIE/Transforms/AIEPasses.h.inc" +} // namespace xilinx::AIE + using namespace mlir; using namespace xilinx; using namespace xilinx::AIE; @@ -165,7 +170,8 @@ class DMAChannelAnalysis { // Create objectFifos Pass //===----------------------------------------------------------------------===// struct AIEObjectFifoStatefulTransformPass - : AIEObjectFifoStatefulTransformBase { + : xilinx::AIE::impl::AIEObjectFifoStatefulTransformBase< + AIEObjectFifoStatefulTransformPass> { DenseMap> buffersPerFifo; // maps each objFifo to its corresponding buffer DenseMap> diff --git a/lib/Dialect/AIE/Transforms/AIETraceToConfig.cpp b/lib/Dialect/AIE/Transforms/AIETraceToConfig.cpp index 2a3c1c18a42..8a83333a780 100644 --- a/lib/Dialect/AIE/Transforms/AIETraceToConfig.cpp +++ b/lib/Dialect/AIE/Transforms/AIETraceToConfig.cpp @@ -16,13 +16,20 @@ #include "mlir/IR/Attributes.h" #include "mlir/Pass/Pass.h" +namespace xilinx::AIE { +#define GEN_PASS_DEF_AIETRACETOCONFIG +#define GEN_PASS_DEF_AIETRACEREGPACKWRITES +#include "aie/Dialect/AIE/Transforms/AIEPasses.h.inc" +} // namespace xilinx::AIE + using namespace mlir; using namespace xilinx; using namespace xilinx::AIE; namespace { -struct AIETraceToConfigPass : AIETraceToConfigBase { +struct AIETraceToConfigPass + : xilinx::AIE::impl::AIETraceToConfigBase { void runOnOperation() override { DeviceOp device = getOperation(); OpBuilder builder(device); @@ -406,7 +413,7 @@ xilinx::AIE::createAIETraceToConfigPass() { namespace { struct AIETraceRegPackWritesPass - : AIETraceRegPackWritesBase { + : xilinx::AIE::impl::AIETraceRegPackWritesBase { void runOnOperation() override { DeviceOp device = getOperation(); const auto &targetModel = device.getTargetModel(); diff --git a/lib/Dialect/AIE/Transforms/AIEVectorOpt.cpp b/lib/Dialect/AIE/Transforms/AIEVectorOpt.cpp index f300ac66aed..81a57d7bbf9 100644 --- a/lib/Dialect/AIE/Transforms/AIEVectorOpt.cpp +++ b/lib/Dialect/AIE/Transforms/AIEVectorOpt.cpp @@ -19,13 +19,19 @@ #include "mlir/Pass/Pass.h" #include "mlir/Transforms/DialectConversion.h" +namespace xilinx::AIE { +#define GEN_PASS_DEF_AIEVECTOROPT +#include "aie/Dialect/AIE/Transforms/AIEPasses.h.inc" +} // namespace xilinx::AIE + #define DEBUG_TYPE "aie-vector-opt" using namespace mlir; using namespace xilinx; using namespace xilinx::AIE; -struct AIEVectorOptPass : AIEVectorOptBase { +struct AIEVectorOptPass + : xilinx::AIE::impl::AIEVectorOptBase { void getDependentDialects(DialectRegistry ®istry) const override { registry.insert(); registry.insert(); diff --git a/lib/Dialect/AIE/Transforms/AIEVectorTransferLowering.cpp b/lib/Dialect/AIE/Transforms/AIEVectorTransferLowering.cpp index c59711851c7..d2f29d98f94 100644 --- a/lib/Dialect/AIE/Transforms/AIEVectorTransferLowering.cpp +++ b/lib/Dialect/AIE/Transforms/AIEVectorTransferLowering.cpp @@ -25,6 +25,11 @@ #include "mlir/Transforms/DialectConversion.h" #include "mlir/Transforms/GreedyPatternRewriteDriver.h" +namespace xilinx::AIE { +#define GEN_PASS_DEF_AIEVECTORTRANSFERLOWERING +#include "aie/Dialect/AIE/Transforms/AIEPasses.h.inc" +} // namespace xilinx::AIE + #define DEBUG_TYPE "aie-vector-transfer-opt" using namespace mlir; @@ -34,7 +39,8 @@ using namespace xilinx::AIE; namespace { struct AIEVectorTransferLoweringPass - : AIEVectorTransferLoweringBase { + : xilinx::AIE::impl::AIEVectorTransferLoweringBase< + AIEVectorTransferLoweringPass> { AIEVectorTransferLoweringPass() = default; AIEVectorTransferLoweringPass(const AIEVectorTransferLoweringPass &pass) : AIEVectorTransferLoweringPass() {} diff --git a/lib/Dialect/AIEVec/Transforms/AIEVectorize.cpp b/lib/Dialect/AIEVec/Transforms/AIEVectorize.cpp index 1bd342b3c8a..2584d7c4bd6 100644 --- a/lib/Dialect/AIEVec/Transforms/AIEVectorize.cpp +++ b/lib/Dialect/AIEVec/Transforms/AIEVectorize.cpp @@ -31,6 +31,11 @@ #include "llvm/ADT/SmallSet.h" +namespace xilinx::aievec { +#define GEN_PASS_DEF_AIEVECTORIZE +#include "aie/Dialect/AIEVec/Transforms/Passes.h.inc" +} // namespace xilinx::aievec + using namespace llvm; using namespace mlir; using namespace arith; @@ -2963,7 +2968,7 @@ static void reassociateOpsInFunc(func::FuncOp func, VectState *state) { reassociateAddOpInFunc(func, state); } -struct AIEVectorize : AIEVectorizeBase { +struct AIEVectorize : xilinx::aievec::impl::AIEVectorizeBase { AIEVectorize() = default; void runOnOperation() override; }; diff --git a/lib/Dialect/AIEVec/Transforms/FoldMulAddChainToConvOp.cpp b/lib/Dialect/AIEVec/Transforms/FoldMulAddChainToConvOp.cpp index 9660c7b218d..b20251187e5 100644 --- a/lib/Dialect/AIEVec/Transforms/FoldMulAddChainToConvOp.cpp +++ b/lib/Dialect/AIEVec/Transforms/FoldMulAddChainToConvOp.cpp @@ -526,7 +526,8 @@ void populateAIEVecConvOpTransformationPatterns(RewritePatternSet &patterns, shiftParam); } -struct AIEVecConvAnalysis : public AIEVecConvAnalysisBase { +struct AIEVecConvAnalysis + : public xilinx::aievec::impl::AIEVecConvAnalysisBase { AIEVecConvAnalysis() = default; using ConvMacChain = LongestConvMACChainAnalysis::ConvMacChain; using ConvMacChainGroupList = diff --git a/lib/Dialect/AIEX/Transforms/AIEAssignRuntimeSequenceBDIDs.cpp b/lib/Dialect/AIEX/Transforms/AIEAssignRuntimeSequenceBDIDs.cpp index ed83968a87d..2649f516477 100644 --- a/lib/Dialect/AIEX/Transforms/AIEAssignRuntimeSequenceBDIDs.cpp +++ b/lib/Dialect/AIEX/Transforms/AIEAssignRuntimeSequenceBDIDs.cpp @@ -16,12 +16,18 @@ #include "mlir/Pass/Pass.h" #include "llvm/ADT/TypeSwitch.h" +namespace xilinx::AIEX { +#define GEN_PASS_DEF_AIEASSIGNRUNTIMESEQUENCEBDIDS +#include "aie/Dialect/AIEX/Transforms/AIEXPasses.h.inc" +} // namespace xilinx::AIEX + using namespace mlir; using namespace xilinx; using namespace xilinx::AIEX; struct AIEAssignRuntimeSequenceBDIDsPass - : AIEAssignRuntimeSequenceBDIDsBase { + : xilinx::AIEX::impl::AIEAssignRuntimeSequenceBDIDsBase< + AIEAssignRuntimeSequenceBDIDsPass> { BdIdGenerator & getGeneratorForTile(AIE::TileOp tile, diff --git a/lib/Dialect/AIEX/Transforms/AIECreateBroadcastPacket.cpp b/lib/Dialect/AIEX/Transforms/AIECreateBroadcastPacket.cpp index 6f96c143adf..a981c7728de 100644 --- a/lib/Dialect/AIEX/Transforms/AIECreateBroadcastPacket.cpp +++ b/lib/Dialect/AIEX/Transforms/AIECreateBroadcastPacket.cpp @@ -20,6 +20,11 @@ #include "llvm/ADT/Twine.h" +namespace xilinx::AIEX { +#define GEN_PASS_DEF_AIEBROADCASTPACKET +#include "aie/Dialect/AIEX/Transforms/AIEXPasses.h.inc" +} // namespace xilinx::AIEX + #define DEBUG_TYPE "aie-create-lower-packet" using namespace mlir; @@ -46,7 +51,8 @@ struct AIEOpRemoval : public OpConversionPattern { }; struct AIEBroadcastPacketPass - : public AIEBroadcastPacketBase { + : public xilinx::AIEX::impl::AIEBroadcastPacketBase< + AIEBroadcastPacketPass> { void runOnOperation() override { DeviceOp device = getOperation(); diff --git a/lib/Dialect/AIEX/Transforms/AIECreateCores.cpp b/lib/Dialect/AIEX/Transforms/AIECreateCores.cpp index 668cbc1e392..3974d8b248f 100644 --- a/lib/Dialect/AIEX/Transforms/AIECreateCores.cpp +++ b/lib/Dialect/AIEX/Transforms/AIECreateCores.cpp @@ -21,6 +21,11 @@ #include "mlir/Tools/mlir-translate/MlirTranslateMain.h" #include "mlir/Transforms/DialectConversion.h" +namespace xilinx::AIEX { +#define GEN_PASS_DEF_AIECREATECORES +#include "aie/Dialect/AIEX/Transforms/AIEXPasses.h.inc" +} // namespace xilinx::AIEX + using namespace mlir; using namespace xilinx; using namespace xilinx::AIE; @@ -65,7 +70,8 @@ struct RemoveAIECalls : public OpConversionPattern { } }; -struct AIECreateCoresPass : public AIECreateCoresBase { +struct AIECreateCoresPass + : public xilinx::AIEX::impl::AIECreateCoresBase { void runOnOperation() override { DeviceOp device = getOperation(); diff --git a/lib/Dialect/AIEX/Transforms/AIECreateLocks.cpp b/lib/Dialect/AIEX/Transforms/AIECreateLocks.cpp index d8e1feaa53b..8566a3f48cc 100644 --- a/lib/Dialect/AIEX/Transforms/AIECreateLocks.cpp +++ b/lib/Dialect/AIEX/Transforms/AIECreateLocks.cpp @@ -19,6 +19,11 @@ #include "mlir/Tools/mlir-translate/MlirTranslateMain.h" #include "mlir/Transforms/DialectConversion.h" +namespace xilinx::AIEX { +#define GEN_PASS_DEF_AIECREATELOCKS +#include "aie/Dialect/AIEX/Transforms/AIEXPasses.h.inc" +} // namespace xilinx::AIEX + #define DEBUG_TYPE "aie-create-locks" using namespace mlir; @@ -131,7 +136,8 @@ static int getLockID(DenseMap, int> &locks, return -1; } -struct AIECreateLocksPass : public AIECreateLocksBase { +struct AIECreateLocksPass + : public xilinx::AIEX::impl::AIECreateLocksBase { void runOnOperation() override { DeviceOp device = getOperation(); diff --git a/lib/Dialect/AIEX/Transforms/AIECtrlPacketToDma.cpp b/lib/Dialect/AIEX/Transforms/AIECtrlPacketToDma.cpp index ef037c1f203..bbe5d6fd31a 100644 --- a/lib/Dialect/AIEX/Transforms/AIECtrlPacketToDma.cpp +++ b/lib/Dialect/AIEX/Transforms/AIECtrlPacketToDma.cpp @@ -19,6 +19,12 @@ #include "llvm/ADT/TypeSwitch.h" +namespace xilinx::AIEX { +#define GEN_PASS_DEF_AIECTRLPACKETTODMA +#define GEN_PASS_DEF_AIECTRLPACKETINFERTILES +#include "aie/Dialect/AIEX/Transforms/AIEXPasses.h.inc" +} // namespace xilinx::AIEX + #define DEBUG_TYPE "aie-ctrl-packet-to-dma" using namespace mlir; @@ -27,7 +33,8 @@ using namespace xilinx::AIE; using namespace xilinx::AIEX; struct AIECtrlPacketInferTilesPass - : AIECtrlPacketInferTilesBase { + : xilinx::AIEX::impl::AIECtrlPacketInferTilesBase< + AIECtrlPacketInferTilesPass> { void runOnOperation() override { DeviceOp device = getOperation(); const auto &targetModel = device.getTargetModel(); @@ -53,7 +60,8 @@ struct AIECtrlPacketInferTilesPass } }; -struct AIECtrlPacketToDmaPass : AIECtrlPacketToDmaBase { +struct AIECtrlPacketToDmaPass + : xilinx::AIEX::impl::AIECtrlPacketToDmaBase { void runOnOperation() override { DeviceOp device = getOperation(); const auto &targetModel = device.getTargetModel(); diff --git a/lib/Dialect/AIEX/Transforms/AIEDMATasksToNPU.cpp b/lib/Dialect/AIEX/Transforms/AIEDMATasksToNPU.cpp index 3de822b3a12..de568a31699 100644 --- a/lib/Dialect/AIEX/Transforms/AIEDMATasksToNPU.cpp +++ b/lib/Dialect/AIEX/Transforms/AIEDMATasksToNPU.cpp @@ -21,6 +21,11 @@ #include "mlir/Transforms/DialectConversion.h" #include "llvm/ADT/TypeSwitch.h" +namespace xilinx::AIEX { +#define GEN_PASS_DEF_AIEDMATASKSTONPU +#include "aie/Dialect/AIEX/Transforms/AIEXPasses.h.inc" +} // namespace xilinx::AIEX + using namespace mlir; using namespace xilinx; using namespace xilinx::AIEX; @@ -79,7 +84,8 @@ struct DMAAwaitTaskOpPattern : OpConversionPattern { } }; -struct AIEDMATasksToNPUPass : AIEDMATasksToNPUBase { +struct AIEDMATasksToNPUPass + : xilinx::AIEX::impl::AIEDMATasksToNPUBase { bool shouldSkipBlock(Block &block) { // Allow blocks in the input IR that contain nothing but a next_bd operation diff --git a/lib/Dialect/AIEX/Transforms/AIEDmaToNpu.cpp b/lib/Dialect/AIEX/Transforms/AIEDmaToNpu.cpp index 50e162d789b..4d91607011f 100644 --- a/lib/Dialect/AIEX/Transforms/AIEDmaToNpu.cpp +++ b/lib/Dialect/AIEX/Transforms/AIEDmaToNpu.cpp @@ -20,6 +20,11 @@ #include #include +namespace xilinx::AIEX { +#define GEN_PASS_DEF_AIEDMATONPU +#include "aie/Dialect/AIEX/Transforms/AIEXPasses.h.inc" +} // namespace xilinx::AIEX + using namespace mlir; using namespace xilinx; using namespace xilinx::AIEX; @@ -697,7 +702,7 @@ struct WriteBdToBlockWritePattern : OpConversionPattern { } }; -struct AIEDmaToNpuPass : AIEDmaToNpuBase { +struct AIEDmaToNpuPass : xilinx::AIEX::impl::AIEDmaToNpuBase { void getDependentDialects(DialectRegistry ®istry) const override { registry.insert(); diff --git a/lib/Dialect/AIEX/Transforms/AIEExpandLoadPdi.cpp b/lib/Dialect/AIEX/Transforms/AIEExpandLoadPdi.cpp index 7910dcb83f6..beb68c77304 100644 --- a/lib/Dialect/AIEX/Transforms/AIEExpandLoadPdi.cpp +++ b/lib/Dialect/AIEX/Transforms/AIEExpandLoadPdi.cpp @@ -25,6 +25,11 @@ #include "llvm/ADT/StringRef.h" #include "llvm/Support/raw_ostream.h" +namespace xilinx::AIEX { +#define GEN_PASS_DEF_AIEEXPANDLOADPDI +#include "aie/Dialect/AIEX/Transforms/AIEXPasses.h.inc" +} // namespace xilinx::AIEX + #define DEBUG_TYPE "aie-expand-load-pdi" using namespace mlir; @@ -100,7 +105,7 @@ static LogicalResult transformLoadPdi(NpuLoadPdiOp loadPdiOp, ModuleOp moduleOp, } struct AIEExpandLoadPdiPass - : public AIEExpandLoadPdiBase { + : public xilinx::AIEX::impl::AIEExpandLoadPdiBase { void getDependentDialects(DialectRegistry ®istry) const override { registry .insert(); diff --git a/lib/Dialect/AIEX/Transforms/AIEHerdRouting.cpp b/lib/Dialect/AIEX/Transforms/AIEHerdRouting.cpp index e1237f7e2d0..da549558cfa 100644 --- a/lib/Dialect/AIEX/Transforms/AIEHerdRouting.cpp +++ b/lib/Dialect/AIEX/Transforms/AIEHerdRouting.cpp @@ -17,6 +17,11 @@ #include "mlir/Tools/mlir-translate/MlirTranslateMain.h" #include "mlir/Transforms/DialectConversion.h" +namespace xilinx::AIEX { +#define GEN_PASS_DEF_AIEHERDROUTING +#include "aie/Dialect/AIEX/Transforms/AIEXPasses.h.inc" +} // namespace xilinx::AIEX + #define DEBUG_TYPE "aie-herd-routing" using namespace mlir; @@ -184,7 +189,8 @@ void buildRoute(int xSrc, int ySrc, int xDest, int yDest, {lastPort, Port{destBundle, destChannel}}); } -struct AIEHerdRoutingPass : AIEHerdRoutingBase { +struct AIEHerdRoutingPass + : xilinx::AIEX::impl::AIEHerdRoutingBase { void runOnOperation() override { DeviceOp device = getOperation(); diff --git a/lib/Dialect/AIEX/Transforms/AIEInlineTraceConfig.cpp b/lib/Dialect/AIEX/Transforms/AIEInlineTraceConfig.cpp index 30912becc05..e9b8dbefcb9 100644 --- a/lib/Dialect/AIEX/Transforms/AIEInlineTraceConfig.cpp +++ b/lib/Dialect/AIEX/Transforms/AIEInlineTraceConfig.cpp @@ -17,6 +17,11 @@ #include "mlir/IR/Attributes.h" #include "mlir/Pass/Pass.h" +namespace xilinx::AIEX { +#define GEN_PASS_DEF_AIEXINLINETRACECONFIG +#include "aie/Dialect/AIEX/Transforms/AIEXPasses.h.inc" +} // namespace xilinx::AIEX + using namespace mlir; using namespace xilinx; using namespace xilinx::AIE; @@ -25,7 +30,7 @@ using namespace xilinx::AIEX; namespace { struct AIEInlineTraceConfigPass - : AIEXInlineTraceConfigBase { + : xilinx::AIEX::impl::AIEXInlineTraceConfigBase { void runOnOperation() override { AIE::DeviceOp device = getOperation(); const auto &targetModel = device.getTargetModel(); diff --git a/lib/Dialect/AIEX/Transforms/AIELowerMemcpy.cpp b/lib/Dialect/AIEX/Transforms/AIELowerMemcpy.cpp index 3e78b21237c..3047dd57eab 100644 --- a/lib/Dialect/AIEX/Transforms/AIELowerMemcpy.cpp +++ b/lib/Dialect/AIEX/Transforms/AIELowerMemcpy.cpp @@ -23,6 +23,11 @@ #include "mlir/Tools/mlir-translate/MlirTranslateMain.h" #include "mlir/Transforms/DialectConversion.h" +namespace xilinx::AIEX { +#define GEN_PASS_DEF_AIELOWERMEMCPY +#include "aie/Dialect/AIEX/Transforms/AIEXPasses.h.inc" +} // namespace xilinx::AIEX + using namespace mlir; using namespace xilinx; using namespace xilinx::AIE; @@ -97,7 +102,8 @@ struct LowerAIEMemcpy : public OpConversionPattern { } }; -struct AIELowerMemcpyPass : public AIELowerMemcpyBase { +struct AIELowerMemcpyPass + : public xilinx::AIEX::impl::AIELowerMemcpyBase { void runOnOperation() override { DeviceOp device = getOperation(); diff --git a/lib/Dialect/AIEX/Transforms/AIELowerMulticast.cpp b/lib/Dialect/AIEX/Transforms/AIELowerMulticast.cpp index 0a96bd3ab76..e21c1a54843 100644 --- a/lib/Dialect/AIEX/Transforms/AIELowerMulticast.cpp +++ b/lib/Dialect/AIEX/Transforms/AIELowerMulticast.cpp @@ -20,6 +20,11 @@ #include "llvm/ADT/Twine.h" +namespace xilinx::AIEX { +#define GEN_PASS_DEF_AIEMULTICAST +#include "aie/Dialect/AIEX/Transforms/AIEXPasses.h.inc" +} // namespace xilinx::AIEX + #define DEBUG_TYPE "aie-lower-multicast" using namespace mlir; @@ -45,7 +50,8 @@ struct AIEOpRemoval : public OpConversionPattern { } }; -struct AIELowerMulticastPass : public AIEMulticastBase { +struct AIELowerMulticastPass + : public xilinx::AIEX::impl::AIEMulticastBase { void runOnOperation() override { DeviceOp device = getOperation(); diff --git a/lib/Dialect/AIEX/Transforms/AIELowerSetLock.cpp b/lib/Dialect/AIEX/Transforms/AIELowerSetLock.cpp index 0ce37694744..b3f9cd88ede 100644 --- a/lib/Dialect/AIEX/Transforms/AIELowerSetLock.cpp +++ b/lib/Dialect/AIEX/Transforms/AIELowerSetLock.cpp @@ -16,6 +16,11 @@ #include "mlir/Pass/Pass.h" #include "mlir/Transforms/DialectConversion.h" +namespace xilinx::AIEX { +#define GEN_PASS_DEF_AIELOWERSETLOCK +#include "aie/Dialect/AIEX/Transforms/AIEXPasses.h.inc" +} // namespace xilinx::AIEX + #define DEBUG_TYPE "aie-lower-set-lock" using namespace mlir; @@ -58,7 +63,8 @@ struct SetLockToWrite32Pattern : OpConversionPattern { }; }; -struct AIELowerSetLockPass : public AIELowerSetLockBase { +struct AIELowerSetLockPass + : public xilinx::AIEX::impl::AIELowerSetLockBase { void runOnOperation() override { DeviceOp device = getOperation(); diff --git a/lib/Dialect/AIEX/Transforms/AIEMaterializeBDChains.cpp b/lib/Dialect/AIEX/Transforms/AIEMaterializeBDChains.cpp index 2d9b60eff0b..c9dc528dc8c 100644 --- a/lib/Dialect/AIEX/Transforms/AIEMaterializeBDChains.cpp +++ b/lib/Dialect/AIEX/Transforms/AIEMaterializeBDChains.cpp @@ -20,6 +20,11 @@ #include "mlir/Transforms/DialectConversion.h" #include "mlir/Transforms/GreedyPatternRewriteDriver.h" +namespace xilinx::AIEX { +#define GEN_PASS_DEF_AIEMATERIALIZEBDCHAINS +#include "aie/Dialect/AIEX/Transforms/AIEXPasses.h.inc" +} // namespace xilinx::AIEX + using namespace mlir; using namespace xilinx; using namespace xilinx::AIEX; @@ -114,7 +119,8 @@ struct DMAInlineBDChainPattern : RewritePattern { }; struct AIEMaterializeBDChainsPass - : AIEMaterializeBDChainsBase { + : xilinx::AIEX::impl::AIEMaterializeBDChainsBase< + AIEMaterializeBDChainsPass> { void runOnOperation() override { MLIRContext *ctx = &getContext(); diff --git a/lib/Dialect/AIEX/Transforms/AIEMaterializeRuntimeSequences.cpp b/lib/Dialect/AIEX/Transforms/AIEMaterializeRuntimeSequences.cpp index 8b184893475..c4cbb8b6b6d 100644 --- a/lib/Dialect/AIEX/Transforms/AIEMaterializeRuntimeSequences.cpp +++ b/lib/Dialect/AIEX/Transforms/AIEMaterializeRuntimeSequences.cpp @@ -24,6 +24,11 @@ #include "mlir/Transforms/GreedyPatternRewriteDriver.h" #include "mlir/Transforms/WalkPatternRewriteDriver.h" +namespace xilinx::AIEX { +#define GEN_PASS_DEF_AIEMATERIALIZERUNTIMESEQUENCES +#include "aie/Dialect/AIEX/Transforms/AIEXPasses.h.inc" +} // namespace xilinx::AIEX + #define DEBUG_TYPE "aie-materialize-runtime-sequence" using namespace mlir; @@ -502,7 +507,8 @@ struct InlineRuntimeCallsPattern : RewritePattern { }; struct AIEMaterializeRuntimeSequencesPass - : AIEMaterializeRuntimeSequencesBase { + : xilinx::AIEX::impl::AIEMaterializeRuntimeSequencesBase< + AIEMaterializeRuntimeSequencesPass> { void runOnOperation() override { ModuleOp moduleOp = getOperation(); diff --git a/lib/Dialect/AIEX/Transforms/AIENpuToCert.cpp b/lib/Dialect/AIEX/Transforms/AIENpuToCert.cpp index 1680b7045c5..47861a63cec 100644 --- a/lib/Dialect/AIEX/Transforms/AIENpuToCert.cpp +++ b/lib/Dialect/AIEX/Transforms/AIENpuToCert.cpp @@ -20,6 +20,12 @@ #include #include +namespace xilinx::AIEX { +#define GEN_PASS_DEF_AIENPUTOCERT +#define GEN_PASS_DEF_AIECERTPAGES +#include "aie/Dialect/AIEX/Transforms/AIEXPasses.h.inc" +} // namespace xilinx::AIEX + using namespace mlir; using namespace xilinx; @@ -406,7 +412,8 @@ struct SplitNpuBlockWriteOpPattern : OpRewritePattern { } }; -struct AIENpuToCertPass : AIEX::AIENpuToCertBase { +struct AIENpuToCertPass + : xilinx::AIEX::impl::AIENpuToCertBase { void runOnOperation() override { ConversionTarget target(getContext()); target.addIllegalOp(); @@ -573,7 +580,8 @@ struct SplitCertJobOpPattern : OpRewritePattern { } }; -struct AIECertPagesPass : AIEX::AIECertPagesBase { +struct AIECertPagesPass + : xilinx::AIEX::impl::AIECertPagesBase { void runOnOperation() override { // First apply the blockwrite splitting pattern RewritePatternSet p0(&getContext()); diff --git a/lib/Dialect/AIEX/Transforms/AIESubstituteShimDMAAllocations.cpp b/lib/Dialect/AIEX/Transforms/AIESubstituteShimDMAAllocations.cpp index 9850132c4b3..f1d53407b6c 100644 --- a/lib/Dialect/AIEX/Transforms/AIESubstituteShimDMAAllocations.cpp +++ b/lib/Dialect/AIEX/Transforms/AIESubstituteShimDMAAllocations.cpp @@ -21,6 +21,11 @@ #include "mlir/Transforms/GreedyPatternRewriteDriver.h" #include "llvm/ADT/TypeSwitch.h" +namespace xilinx::AIEX { +#define GEN_PASS_DEF_AIESUBSTITUTESHIMDMAALLOCATIONS +#include "aie/Dialect/AIEX/Transforms/AIEXPasses.h.inc" +} // namespace xilinx::AIEX + using namespace mlir; using namespace xilinx; using namespace xilinx::AIEX; @@ -62,7 +67,8 @@ struct DMAConfigureTaskForOpPattern }; struct AIESubstituteShimDMAAllocationsPass - : AIESubstituteShimDMAAllocationsBase { + : xilinx::AIEX::impl::AIESubstituteShimDMAAllocationsBase< + AIESubstituteShimDMAAllocationsPass> { void runOnOperation() override { AIE::DeviceOp device = getOperation(); diff --git a/lib/Dialect/AIEX/Transforms/AIETransformBfpTypes.cpp b/lib/Dialect/AIEX/Transforms/AIETransformBfpTypes.cpp index 2656cc55e21..70bb64324a0 100644 --- a/lib/Dialect/AIEX/Transforms/AIETransformBfpTypes.cpp +++ b/lib/Dialect/AIEX/Transforms/AIETransformBfpTypes.cpp @@ -24,6 +24,11 @@ #include "llvm/IR/Type.h" #include "llvm/Support/raw_ostream.h" +namespace xilinx::AIEX { +#define GEN_PASS_DEF_AIETRANSFORMBFPTYPES +#include "aie/Dialect/AIEX/Transforms/AIEXPasses.h.inc" +} // namespace xilinx::AIEX + #define DEBUG_TYPE "transform-bfp-types" using namespace mlir; @@ -206,7 +211,8 @@ class BfpToIntegerConversionPattern : public ConversionPattern { }; class AIETransformBfpTypesPass - : public AIETransformBfpTypesBase { + : public xilinx::AIEX::impl::AIETransformBfpTypesBase< + AIETransformBfpTypesPass> { public: void runOnOperation() override { DeviceOp device = getOperation(); diff --git a/lib/Dialect/AIEX/Transforms/AIETxnToControlPacket.cpp b/lib/Dialect/AIEX/Transforms/AIETxnToControlPacket.cpp index c4d3fb9296f..06852d01b73 100644 --- a/lib/Dialect/AIEX/Transforms/AIETxnToControlPacket.cpp +++ b/lib/Dialect/AIEX/Transforms/AIETxnToControlPacket.cpp @@ -18,6 +18,12 @@ #include +namespace xilinx::AIEX { +#define GEN_PASS_DEF_AIELEGALIZECONTROLPACKET +#define GEN_PASS_DEF_AIETXNTOCONTROLPACKET +#include "aie/Dialect/AIEX/Transforms/AIEXPasses.h.inc" +} // namespace xilinx::AIEX + #define DEBUG_TYPE "aie-txn-to-control" using namespace mlir; @@ -123,7 +129,8 @@ struct ControlPacketSplitPattern }; struct AIETxnToControlPacketPass - : public AIEX::AIETxnToControlPacketBase { + : public xilinx::AIEX::impl::AIETxnToControlPacketBase< + AIETxnToControlPacketPass> { void runOnOperation() override { AIE::DeviceOp device = getOperation(); @@ -141,7 +148,8 @@ struct AIETxnToControlPacketPass }; struct AIELegalizeControlPacketPass - : public AIEX::AIELegalizeControlPacketBase { + : public xilinx::AIEX::impl::AIELegalizeControlPacketBase< + AIELegalizeControlPacketPass> { void runOnOperation() override { AIE::DeviceOp device = getOperation(); diff --git a/lib/Dialect/AIEX/Transforms/AIEXToStandard.cpp b/lib/Dialect/AIEX/Transforms/AIEXToStandard.cpp index 36be025dd9c..131fad0b794 100644 --- a/lib/Dialect/AIEX/Transforms/AIEXToStandard.cpp +++ b/lib/Dialect/AIEX/Transforms/AIEXToStandard.cpp @@ -18,6 +18,11 @@ #include "mlir/Tools/mlir-translate/MlirTranslateMain.h" #include "mlir/Transforms/DialectConversion.h" +namespace xilinx::AIEX { +#define GEN_PASS_DEF_AIEXTOSTANDARD +#include "aie/Dialect/AIEX/Transforms/AIEXPasses.h.inc" +} // namespace xilinx::AIEX + using namespace mlir; using namespace xilinx; using namespace xilinx::AIE; @@ -41,7 +46,8 @@ struct AIEXOpRemoval : OpConversionPattern { } }; -struct AIEXToStandardPass : AIEXToStandardBase { +struct AIEXToStandardPass + : xilinx::AIEX::impl::AIEXToStandardBase { void runOnOperation() override { ModuleOp m = getOperation(); diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt index 81e203ad748..c09b51ed147 100644 --- a/python/CMakeLists.txt +++ b/python/CMakeLists.txt @@ -225,9 +225,6 @@ if (AIE_ENABLE_PYTHON_PASSES) PRIVATE_LINK_LIBS ${_py_libs} - - PYTHON_BINDINGS_LIBRARY - nanobind ) target_include_directories( AIEPythonExtensions.MLIR @@ -322,8 +319,6 @@ else () AIECAPI PRIVATE_LINK_LIBS LLVMSupport - PYTHON_BINDINGS_LIBRARY - nanobind ) if(AIE_ENABLE_XRT_PYTHON_BINDINGS) @@ -340,8 +335,6 @@ else () LLVMSupport xrt_coreutil uuid - PYTHON_BINDINGS_LIBRARY - nanobind ) target_include_directories(AIEPythonExtensions.XRT INTERFACE ${XRT_INCLUDE_DIR}) target_link_directories(AIEPythonExtensions.XRT INTERFACE ${XRT_LIB_DIR}) diff --git a/python/helpers/dialects/scf.py b/python/helpers/dialects/scf.py index f64cd1d3341..b43a051163a 100644 --- a/python/helpers/dialects/scf.py +++ b/python/helpers/dialects/scf.py @@ -1,8 +1,7 @@ import numpy as np from typing import Sequence -from ...ir import InsertionPoint, Value -from ...dialects.linalg.opdsl.lang.emitter import _is_index_type +from ...ir import IndexType, InsertionPoint, Value from ...dialects.scf import IfOp, ForOp, yield_ from ...extras.dialects.arith import constant, index_cast from ...extras.util import get_user_code_loc @@ -48,7 +47,7 @@ def _for( p = p.item() if isinstance(p, np.integer) or isinstance(p, int): p = constant(p, index=True) - elif not _is_index_type(p.type): + elif not isinstance(p.type, IndexType): p = index_cast(p, to=T.index()) params[i] = p @@ -72,7 +71,7 @@ def _for( def if_(cond, hasElse=True, insert_yield=True, loc=None, ip=None): if loc is None: loc = get_user_code_loc() - if_op = IfOp(cond, hasElse=hasElse, loc=loc, ip=ip) + if_op = IfOp(cond, has_else=hasElse, loc=loc, ip=ip) with InsertionPoint(if_op.thenRegion.blocks[0]): yield if_op if insert_yield: diff --git a/python/requirements.txt b/python/requirements.txt index 9caee14e430..d6cd1c5d060 100644 --- a/python/requirements.txt +++ b/python/requirements.txt @@ -4,6 +4,6 @@ numpy>=1.19.5, <2.0 # 2.1 would be nice for typing improvements, but it doesn't rich ml_dtypes cloudpickle # required by eudsl when it is vendored instead of installed -eudsl-python-extras==0.1.0.20251215.1715+3c7ac1b \ +eudsl-python-extras==0.1.0.20260211.1045+549fd26 \ --config-settings="EUDSL_PYTHON_EXTRAS_HOST_PACKAGE_PREFIX=aie" -f https://llvm.github.io/eudsl diff --git a/utils/clone-llvm.sh b/utils/clone-llvm.sh index d3fb7fe0e8c..1204105f1e0 100755 --- a/utils/clone-llvm.sh +++ b/utils/clone-llvm.sh @@ -13,9 +13,9 @@ ##===----------------------------------------------------------------------===## # The LLVM commit to use. -LLVM_PROJECT_COMMIT=ebf5d9ef7de29b55fd9e9d504f83689b4013e0de -DATETIME=2025120518 -WHEEL_VERSION=22.0.0.$DATETIME+${LLVM_PROJECT_COMMIT:0:8} +LLVM_PROJECT_COMMIT=979132a02d146ec79e2f046e31877516d7f32d20 +DATETIME=2026021717 +WHEEL_VERSION=23.0.0.$DATETIME+${LLVM_PROJECT_COMMIT:0:8} ############################################################################################ # The way to bump `LLVM_PROJECT_COMMIT` diff --git a/utils/mlir_aie_wheels/vendor_eudsl.py b/utils/mlir_aie_wheels/vendor_eudsl.py index 52f9c34d781..d8baeabb4df 100644 --- a/utils/mlir_aie_wheels/vendor_eudsl.py +++ b/utils/mlir_aie_wheels/vendor_eudsl.py @@ -90,6 +90,15 @@ def install_eudsl(req_file, target_dir): print(f"ERROR: {util_path} not found!", file=sys.stderr) sys.exit(1) + # Fix np.bool deprecation (removed in numpy 1.24) + with open(util_path) as f: + util_content = f.read() + if "np.bool:" in util_content: + util_content = util_content.replace("np.bool:", "np.bool_:") + with open(util_path, "w") as f: + f.write(util_content) + print(f"Patched np.bool -> np.bool_ in {util_path}", file=sys.stderr) + def main(): parser = argparse.ArgumentParser(description="Vendor eudsl-python-extras")