diff --git a/.gitmodules b/.gitmodules index eced95dd8e8..16a05854a91 100644 --- a/.gitmodules +++ b/.gitmodules @@ -14,3 +14,6 @@ [submodule "third_party/aie_api"] path = third_party/aie_api url = https://github.com/jgmelber/aie_api +[submodule "third_party/mlir-python-extras"] + path = third_party/mlir-python-extras + url = https://github.com/erwei-xilinx/mlir-python-extras.git diff --git a/lib/Dialect/AIE/Transforms/AIEObjectFifoStatefulTransform.cpp b/lib/Dialect/AIE/Transforms/AIEObjectFifoStatefulTransform.cpp index aebb0127aa8..34d144d5a06 100644 --- a/lib/Dialect/AIE/Transforms/AIEObjectFifoStatefulTransform.cpp +++ b/lib/Dialect/AIE/Transforms/AIEObjectFifoStatefulTransform.cpp @@ -1242,10 +1242,7 @@ struct AIEObjectFifoStatefulTransformPass int64_t tripCount = 0; if (remLoop.getSingleLowerBound() && remLoop.getSingleUpperBound() && remLoop.getSingleStep()) { - tripCount = constantTripCount(*(remLoop.getSingleLowerBound()), - *(remLoop.getSingleUpperBound()), - *(remLoop.getSingleStep())) - .value_or(0); + tripCount = remLoop.getStaticTripCount()->getSExtValue(); } int unrollFactor = computeLCM(objFifoSizes); // also counts original loop body diff --git a/lib/Dialect/AIEVec/Transforms/CMakeLists.txt b/lib/Dialect/AIEVec/Transforms/CMakeLists.txt index f869ea1db09..3846a916dd5 100644 --- a/lib/Dialect/AIEVec/Transforms/CMakeLists.txt +++ b/lib/Dialect/AIEVec/Transforms/CMakeLists.txt @@ -28,5 +28,4 @@ add_mlir_dialect_library(MLIRAIEVecTransforms LINK_LIBS PUBLIC MLIRIR MLIRPass - MLIRAIEVecUtils - MLIRCopyOpInterface) + MLIRAIEVecUtils) diff --git a/lib/Dialect/AIEVec/Transforms/CopyRemoval.cpp b/lib/Dialect/AIEVec/Transforms/CopyRemoval.cpp index 6b2be9d75cb..0ace1fcaeef 100644 --- a/lib/Dialect/AIEVec/Transforms/CopyRemoval.cpp +++ b/lib/Dialect/AIEVec/Transforms/CopyRemoval.cpp @@ -8,7 +8,7 @@ #include "aie/Dialect/AIEVec/Pipelines/Passes.h" -#include "mlir/Interfaces/CopyOpInterface.h" +#include "mlir/Dialect/MemRef/IR/MemRef.h" #include "mlir/Interfaces/SideEffectInterfaces.h" #include "mlir/Pass/Pass.h" @@ -55,7 +55,7 @@ class CopyRemovalPass : public PassWrapper> { MLIR_DEFINE_EXPLICIT_INTERNAL_INLINE_TYPE_ID(CopyRemovalPass) void runOnOperation() override { - getOperation()->walk([&](CopyOpInterface copyOp) { + getOperation()->walk([&](memref::CopyOp copyOp) { reuseCopySourceAsTarget(copyOp); reuseCopyTargetAsSource(copyOp); }); @@ -159,7 +159,7 @@ class CopyRemovalPass : public PassWrapper> { /// TODO: Alias analysis is not available at the moment. Currently, we check /// if there are any operations with memory effects between copy and /// deallocation operations. - void reuseCopySourceAsTarget(CopyOpInterface copyOp) { + void reuseCopySourceAsTarget(memref::CopyOp copyOp) { if (eraseList.count(copyOp)) return; @@ -210,7 +210,7 @@ class CopyRemovalPass : public PassWrapper> { /// TODO: Alias analysis is not available at the moment. Currently, we check /// if there are any operations with memory effects between copy and /// deallocation operations. - void reuseCopyTargetAsSource(CopyOpInterface copyOp) { + void reuseCopyTargetAsSource(memref::CopyOp copyOp) { if (eraseList.count(copyOp)) return; diff --git a/lib/Dialect/AIEVec/Transforms/VectorToAIEVecConversions.cpp b/lib/Dialect/AIEVec/Transforms/VectorToAIEVecConversions.cpp index d119db49e83..cec976589b7 100644 --- a/lib/Dialect/AIEVec/Transforms/VectorToAIEVecConversions.cpp +++ b/lib/Dialect/AIEVec/Transforms/VectorToAIEVecConversions.cpp @@ -510,7 +510,7 @@ struct FoldVectorExtractAndSplatToAIEBroadcast if (!extOp) return failure(); - auto src = extOp.getVector(); + auto src = extOp.getSource(); auto pos = extOp.getStaticPosition(); int64_t posVal = pos[0]; auto srcVecType = cast(src.getType()); @@ -978,7 +978,7 @@ struct FoldSplatToFMAOp : OpConversionPattern { if (!extOp) return failure(); - auto rhs = extOp.getVector(); + auto rhs = extOp.getSource(); auto concatVecType = cast(concatOp.getResult().getType()); auto zvec = rewriter.create( concatOp.getLoc(), lhs.getType(), rewriter.getZeroAttr(lhs.getType())); @@ -1854,7 +1854,7 @@ struct LowerVectorExtractStridedSliceOpAIEv1Pattern int64_t offset = cast(adaptor.getOffsets()[0]).getInt(); auto selectOp = rewriter.create( - extractOp.getLoc(), vType, adaptor.getVector(), + extractOp.getLoc(), vType, adaptor.getSource(), buildAttributeListForRotationSelectOp(rewriter, vType, offset)); rewriter.replaceOpWithNewOp( extractOp, extractOp.getType(), selectOp.getResult(), @@ -1872,7 +1872,7 @@ struct LowerVectorExtractStridedSliceOpAIE2Pattern LogicalResult matchAndRewrite(vector::ExtractStridedSliceOp extractOp, OpAdaptor adaptor, ConversionPatternRewriter &rewriter) const override { - auto vType = cast(adaptor.getVector().getType()); + auto vType = cast(adaptor.getSource().getType()); if (vType.getRank() != 1) return failure(); @@ -1890,11 +1890,11 @@ struct LowerVectorExtractStridedSliceOpAIE2Pattern auto bottomHalf = rewriter .create( extractOp.getLoc(), shortVecType, - adaptor.getVector(), rewriter.getI8IntegerAttr(0)) + adaptor.getSource(), rewriter.getI8IntegerAttr(0)) .getResult(); auto topHalf = rewriter .create(extractOp.getLoc(), shortVecType, - adaptor.getVector(), + adaptor.getSource(), rewriter.getI8IntegerAttr(1)) .getResult(); int64_t offset = cast(adaptor.getOffsets()[0]).getInt(); diff --git a/python/requirements_dev.txt b/python/requirements_dev.txt index d9896cb1786..ad91483fd7d 100644 --- a/python/requirements_dev.txt +++ b/python/requirements_dev.txt @@ -3,7 +3,7 @@ pybind11>=2.9.0, <=2.10.3 setuptools>=61.0 wheel pre-commit -nanobind>=2.5 +nanobind>=2.9 lit matplotlib # lit requires psutil to set timeouts diff --git a/python/requirements_extras.txt b/python/requirements_extras.txt index d7317f5742b..b8938704634 100644 --- a/python/requirements_extras.txt +++ b/python/requirements_extras.txt @@ -1,4 +1,4 @@ # This can't go in the normal requirements file because the way the wheels build parses requirements.txt # does not support github packages -git+https://github.com/makslevental/mlir-python-extras@ba2e6fe --f https://github.com/llvm/eudsl/releases/expanded_assets/latest \ No newline at end of file + +-e ./third_party/mlir-python-extras -f https://github.com/llvm/eudsl/releases/expanded_assets/latest diff --git a/third_party/mlir-python-extras b/third_party/mlir-python-extras new file mode 160000 index 00000000000..a801853ac0e --- /dev/null +++ b/third_party/mlir-python-extras @@ -0,0 +1 @@ +Subproject commit a801853ac0eef50a0f2779cfbbd7dabc931806ee diff --git a/utils/clone-llvm.sh b/utils/clone-llvm.sh index 7aee16e9a2e..c1da571dce6 100755 --- a/utils/clone-llvm.sh +++ b/utils/clone-llvm.sh @@ -13,8 +13,8 @@ ##===----------------------------------------------------------------------===## # The LLVM commit to use. -LLVM_PROJECT_COMMIT=064f02dac0c81c19350a74415b3245f42fed09dc -DATETIME=2025090500 +LLVM_PROJECT_COMMIT=37637120af80672002a97c330077e31df7432261 +DATETIME=2025100118 WHEEL_VERSION=22.0.0.$DATETIME+${LLVM_PROJECT_COMMIT:0:8} ############################################################################################