Skip to content

Lower allreduce #144716

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 7 commits into from
Jun 23, 2025
Merged

Lower allreduce #144716

merged 7 commits into from
Jun 23, 2025

Conversation

fschlimb
Copy link
Contributor

a "git pull" messed up the previous #144060. The difference to #144060 is that I applied separated conversion and rewrite patterns in the pass and I renamed the reduction op as aws nit-requested..

@tkarna

@llvmbot
Copy link
Member

llvmbot commented Jun 18, 2025

@llvm/pr-subscribers-mlir

Author: Frank Schlimbach (fschlimb)

Changes

a "git pull" messed up the previous #144060. The difference to #144060 is that I applied separated conversion and rewrite patterns in the pass and I renamed the reduction op as aws nit-requested..

@tkarna


Patch is 67.37 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/144716.diff

14 Files Affected:

  • (modified) mlir/include/mlir/Conversion/Passes.td (+2)
  • (modified) mlir/include/mlir/Dialect/MPI/IR/MPI.h (+1)
  • (modified) mlir/include/mlir/Dialect/MPI/IR/MPI.td (+1-1)
  • (modified) mlir/include/mlir/Dialect/MPI/IR/MPIOps.td (+7-5)
  • (modified) mlir/include/mlir/Dialect/Mesh/IR/MeshOps.h (+5)
  • (modified) mlir/include/mlir/Dialect/Mesh/IR/MeshOps.td (+2-2)
  • (modified) mlir/include/mlir/Dialect/Mesh/Transforms/Simplifications.h (+5-5)
  • (modified) mlir/include/mlir/Dialect/Mesh/Transforms/Transforms.h (+5)
  • (modified) mlir/lib/Conversion/MPIToLLVM/MPIToLLVM.cpp (+31-31)
  • (modified) mlir/lib/Conversion/MeshToMPI/MeshToMPI.cpp (+132-39)
  • (modified) mlir/lib/Dialect/MPI/IR/MPIOps.cpp (+35)
  • (modified) mlir/lib/Dialect/Mesh/IR/MeshOps.cpp (+23)
  • (modified) mlir/lib/Dialect/Mesh/Transforms/Transforms.cpp (+16-6)
  • (modified) mlir/test/Conversion/MeshToMPI/convert-mesh-to-mpi.mlir (+207-150)
diff --git a/mlir/include/mlir/Conversion/Passes.td b/mlir/include/mlir/Conversion/Passes.td
index b496ee0114910..5a864865adffc 100644
--- a/mlir/include/mlir/Conversion/Passes.td
+++ b/mlir/include/mlir/Conversion/Passes.td
@@ -905,6 +905,8 @@ def ConvertMeshToMPIPass : Pass<"convert-mesh-to-mpi"> {
     shard/partition sizes depend on the rank.
   }];
   let dependentDialects = [
+    "affine::AffineDialect",
+    "arith::ArithDialect",
     "memref::MemRefDialect",
     "mpi::MPIDialect",
     "scf::SCFDialect",
diff --git a/mlir/include/mlir/Dialect/MPI/IR/MPI.h b/mlir/include/mlir/Dialect/MPI/IR/MPI.h
index f06b911ce3fe3..2b6743cd008c6 100644
--- a/mlir/include/mlir/Dialect/MPI/IR/MPI.h
+++ b/mlir/include/mlir/Dialect/MPI/IR/MPI.h
@@ -12,6 +12,7 @@
 #include "mlir/IR/Dialect.h"
 #include "mlir/IR/OpDefinition.h"
 #include "mlir/IR/OpImplementation.h"
+#include "mlir/Interfaces/SideEffectInterfaces.h"
 
 //===----------------------------------------------------------------------===//
 // MPIDialect
diff --git a/mlir/include/mlir/Dialect/MPI/IR/MPI.td b/mlir/include/mlir/Dialect/MPI/IR/MPI.td
index f2837e71df060..0c62a1794e19e 100644
--- a/mlir/include/mlir/Dialect/MPI/IR/MPI.td
+++ b/mlir/include/mlir/Dialect/MPI/IR/MPI.td
@@ -230,7 +230,7 @@ def MPI_OpMinloc : I32EnumAttrCase<"MPI_MINLOC", 11, "MPI_MINLOC">;
 def MPI_OpMaxloc : I32EnumAttrCase<"MPI_MAXLOC", 12, "MPI_MAXLOC">;
 def MPI_OpReplace : I32EnumAttrCase<"MPI_REPLACE", 13, "MPI_REPLACE">;
 
-def MPI_OpClassEnum : I32EnumAttr<"MPI_OpClassEnum", "MPI operation class", [
+def MPI_ReductionOpEnum : I32EnumAttr<"MPI_ReductionOpEnum", "MPI operation class", [
       MPI_OpNull,
       MPI_OpMax,
       MPI_OpMin,
diff --git a/mlir/include/mlir/Dialect/MPI/IR/MPIOps.td b/mlir/include/mlir/Dialect/MPI/IR/MPIOps.td
index d78aa92d201e7..935e0f785ef0c 100644
--- a/mlir/include/mlir/Dialect/MPI/IR/MPIOps.td
+++ b/mlir/include/mlir/Dialect/MPI/IR/MPIOps.td
@@ -11,6 +11,7 @@
 
 include "mlir/Dialect/MPI/IR/MPI.td"
 include "mlir/Dialect/MPI/IR/MPITypes.td"
+include "mlir/Interfaces/SideEffectInterfaces.td"
 
 class MPI_Op<string mnemonic, list<Trait> traits = []>
     : Op<MPI_Dialect, mnemonic, traits>;
@@ -41,7 +42,7 @@ def MPI_InitOp : MPI_Op<"init", []> {
 // CommWorldOp
 //===----------------------------------------------------------------------===//
 
-def MPI_CommWorldOp : MPI_Op<"comm_world", []> {
+def MPI_CommWorldOp : MPI_Op<"comm_world", [Pure]> {
   let summary = "Get the World communicator, equivalent to `MPI_COMM_WORLD`";
   let description = [{
     This operation returns the predefined MPI_COMM_WORLD communicator.
@@ -56,7 +57,7 @@ def MPI_CommWorldOp : MPI_Op<"comm_world", []> {
 // CommRankOp
 //===----------------------------------------------------------------------===//
 
-def MPI_CommRankOp : MPI_Op<"comm_rank", []> {
+def MPI_CommRankOp : MPI_Op<"comm_rank", [Pure]> {
   let summary = "Get the current rank, equivalent to "
                 "`MPI_Comm_rank(comm, &rank)`";
   let description = [{
@@ -72,13 +73,14 @@ def MPI_CommRankOp : MPI_Op<"comm_rank", []> {
   );
 
   let assemblyFormat = "`(` $comm `)` attr-dict `:` type(results)";
+  let hasCanonicalizer = 1;
 }
 
 //===----------------------------------------------------------------------===//
 // CommSizeOp
 //===----------------------------------------------------------------------===//
 
-def MPI_CommSizeOp : MPI_Op<"comm_size", []> {
+def MPI_CommSizeOp : MPI_Op<"comm_size", [Pure]> {
   let summary = "Get the size of the group associated to the communicator, "
                 "equivalent to `MPI_Comm_size(comm, &size)`";
   let description = [{
@@ -100,7 +102,7 @@ def MPI_CommSizeOp : MPI_Op<"comm_size", []> {
 // CommSplitOp
 //===----------------------------------------------------------------------===//
 
-def MPI_CommSplitOp : MPI_Op<"comm_split", []> {
+def MPI_CommSplitOp : MPI_Op<"comm_split", [Pure]> {
   let summary = "Partition the group associated with the given communicator into "
                 "disjoint subgroups";
   let description = [{
@@ -281,7 +283,7 @@ def MPI_AllReduceOp : MPI_Op<"allreduce", []> {
   let arguments = (
     ins AnyMemRef : $sendbuf,
     AnyMemRef : $recvbuf,
-    MPI_OpClassEnum : $op,
+    MPI_ReductionOpEnum : $op,
     MPI_Comm : $comm
   );
 
diff --git a/mlir/include/mlir/Dialect/Mesh/IR/MeshOps.h b/mlir/include/mlir/Dialect/Mesh/IR/MeshOps.h
index 3878505f8f93f..c4d512b60bc51 100644
--- a/mlir/include/mlir/Dialect/Mesh/IR/MeshOps.h
+++ b/mlir/include/mlir/Dialect/Mesh/IR/MeshOps.h
@@ -212,6 +212,11 @@ void maybeInsertSourceShardingAnnotation(MeshSharding sharding,
                                          OpOperand &operand,
                                          OpBuilder &builder);
 
+/// Converts a vector of OpFoldResults (ints) into vector of Values of the
+/// provided type.
+SmallVector<Value> getMixedAsValues(OpBuilder b, const Location &loc,
+                                    llvm::ArrayRef<int64_t> statics,
+                                    ValueRange dynamics, Type type = Type());
 } // namespace mesh
 } // namespace mlir
 
diff --git a/mlir/include/mlir/Dialect/Mesh/IR/MeshOps.td b/mlir/include/mlir/Dialect/Mesh/IR/MeshOps.td
index f59c4c4c67517..ac05ee243d7be 100644
--- a/mlir/include/mlir/Dialect/Mesh/IR/MeshOps.td
+++ b/mlir/include/mlir/Dialect/Mesh/IR/MeshOps.td
@@ -584,11 +584,11 @@ def Mesh_AllReduceOp : Mesh_CollectiveCommunicationOpBase<"all_reduce", [
     ```
   }];
   let arguments = !con(commonArgs, (ins
-    AnyRankedTensor:$input,
+    AnyTypeOf<[AnyMemRef, AnyRankedTensor]>:$input,
     DefaultValuedAttr<Mesh_ReductionKindAttr, "::mlir::mesh::ReductionKind::Sum">:$reduction
   ));
   let results = (outs
-    AnyRankedTensor:$result
+    AnyTypeOf<[AnyMemRef, AnyRankedTensor]>:$result
   );
   let assemblyFormat = [{
     $input `on` $mesh (`mesh_axes` `=` $mesh_axes^)? (`reduction` `=` $reduction^)?
diff --git a/mlir/include/mlir/Dialect/Mesh/Transforms/Simplifications.h b/mlir/include/mlir/Dialect/Mesh/Transforms/Simplifications.h
index c64da29ca6412..3f1041cb25103 100644
--- a/mlir/include/mlir/Dialect/Mesh/Transforms/Simplifications.h
+++ b/mlir/include/mlir/Dialect/Mesh/Transforms/Simplifications.h
@@ -62,9 +62,9 @@ void populateAllReduceEndomorphismSimplificationPatterns(
   auto isEndomorphismOp = [reduction](Operation *op,
                                       std::optional<Operation *> referenceOp) {
     auto allReduceOp = llvm::dyn_cast<AllReduceOp>(op);
-    if (!allReduceOp ||
-        allReduceOp.getInput().getType().getElementType() !=
-            allReduceOp.getResult().getType().getElementType() ||
+    auto inType = cast<ShapedType>(allReduceOp.getInput().getType());
+    auto outType = cast<ShapedType>(allReduceOp.getResult().getType());
+    if (!allReduceOp || inType.getElementType() != outType.getElementType() ||
         allReduceOp.getReduction() != reduction) {
       return false;
     }
@@ -83,9 +83,9 @@ void populateAllReduceEndomorphismSimplificationPatterns(
     }
 
     auto refAllReduceOp = llvm::dyn_cast<AllReduceOp>(referenceOp.value());
+    auto refType = cast<ShapedType>(refAllReduceOp.getResult().getType());
     return refAllReduceOp->getAttrs() == allReduceOp->getAttrs() &&
-           allReduceOp.getInput().getType().getElementType() ==
-               refAllReduceOp.getInput().getType().getElementType();
+           inType.getElementType() == refType.getElementType();
   };
   auto isAlgebraicOp = [](Operation *op) {
     return static_cast<bool>(llvm::dyn_cast<AlgebraicOp>(op));
diff --git a/mlir/include/mlir/Dialect/Mesh/Transforms/Transforms.h b/mlir/include/mlir/Dialect/Mesh/Transforms/Transforms.h
index be82e2af399dc..f46c0db846088 100644
--- a/mlir/include/mlir/Dialect/Mesh/Transforms/Transforms.h
+++ b/mlir/include/mlir/Dialect/Mesh/Transforms/Transforms.h
@@ -42,6 +42,11 @@ createCollectiveProcessGroupSize(MeshOp mesh, ArrayRef<MeshAxis> axes,
 TypedValue<IndexType> createProcessLinearIndex(StringRef mesh,
                                                ArrayRef<MeshAxis> meshAxes,
                                                ImplicitLocOpBuilder &builder);
+// Get process linear index from a multi-index along the given mesh axes .
+TypedValue<IndexType>
+createProcessLinearIndex(StringRef mesh, ValueRange processInGroupMultiIndex,
+                         ArrayRef<MeshAxis> meshAxes,
+                         ImplicitLocOpBuilder &builder);
 
 } // namespace mesh
 } // namespace mlir
diff --git a/mlir/lib/Conversion/MPIToLLVM/MPIToLLVM.cpp b/mlir/lib/Conversion/MPIToLLVM/MPIToLLVM.cpp
index 5575b295ae20a..d4deff5b88070 100644
--- a/mlir/lib/Conversion/MPIToLLVM/MPIToLLVM.cpp
+++ b/mlir/lib/Conversion/MPIToLLVM/MPIToLLVM.cpp
@@ -116,7 +116,7 @@ class MPIImplTraits {
   /// enum value.
   virtual Value getMPIOp(const Location loc,
                          ConversionPatternRewriter &rewriter,
-                         mpi::MPI_OpClassEnum opAttr) = 0;
+                         mpi::MPI_ReductionOpEnum opAttr) = 0;
 };
 
 //===----------------------------------------------------------------------===//
@@ -199,49 +199,49 @@ class MPICHImplTraits : public MPIImplTraits {
   }
 
   Value getMPIOp(const Location loc, ConversionPatternRewriter &rewriter,
-                 mpi::MPI_OpClassEnum opAttr) override {
+                 mpi::MPI_ReductionOpEnum opAttr) override {
     int32_t op = MPI_NO_OP;
     switch (opAttr) {
-    case mpi::MPI_OpClassEnum::MPI_OP_NULL:
+    case mpi::MPI_ReductionOpEnum::MPI_OP_NULL:
       op = MPI_NO_OP;
       break;
-    case mpi::MPI_OpClassEnum::MPI_MAX:
+    case mpi::MPI_ReductionOpEnum::MPI_MAX:
       op = MPI_MAX;
       break;
-    case mpi::MPI_OpClassEnum::MPI_MIN:
+    case mpi::MPI_ReductionOpEnum::MPI_MIN:
       op = MPI_MIN;
       break;
-    case mpi::MPI_OpClassEnum::MPI_SUM:
+    case mpi::MPI_ReductionOpEnum::MPI_SUM:
       op = MPI_SUM;
       break;
-    case mpi::MPI_OpClassEnum::MPI_PROD:
+    case mpi::MPI_ReductionOpEnum::MPI_PROD:
       op = MPI_PROD;
       break;
-    case mpi::MPI_OpClassEnum::MPI_LAND:
+    case mpi::MPI_ReductionOpEnum::MPI_LAND:
       op = MPI_LAND;
       break;
-    case mpi::MPI_OpClassEnum::MPI_BAND:
+    case mpi::MPI_ReductionOpEnum::MPI_BAND:
       op = MPI_BAND;
       break;
-    case mpi::MPI_OpClassEnum::MPI_LOR:
+    case mpi::MPI_ReductionOpEnum::MPI_LOR:
       op = MPI_LOR;
       break;
-    case mpi::MPI_OpClassEnum::MPI_BOR:
+    case mpi::MPI_ReductionOpEnum::MPI_BOR:
       op = MPI_BOR;
       break;
-    case mpi::MPI_OpClassEnum::MPI_LXOR:
+    case mpi::MPI_ReductionOpEnum::MPI_LXOR:
       op = MPI_LXOR;
       break;
-    case mpi::MPI_OpClassEnum::MPI_BXOR:
+    case mpi::MPI_ReductionOpEnum::MPI_BXOR:
       op = MPI_BXOR;
       break;
-    case mpi::MPI_OpClassEnum::MPI_MINLOC:
+    case mpi::MPI_ReductionOpEnum::MPI_MINLOC:
       op = MPI_MINLOC;
       break;
-    case mpi::MPI_OpClassEnum::MPI_MAXLOC:
+    case mpi::MPI_ReductionOpEnum::MPI_MAXLOC:
       op = MPI_MAXLOC;
       break;
-    case mpi::MPI_OpClassEnum::MPI_REPLACE:
+    case mpi::MPI_ReductionOpEnum::MPI_REPLACE:
       op = MPI_REPLACE;
       break;
     }
@@ -336,49 +336,49 @@ class OMPIImplTraits : public MPIImplTraits {
   }
 
   Value getMPIOp(const Location loc, ConversionPatternRewriter &rewriter,
-                 mpi::MPI_OpClassEnum opAttr) override {
+                 mpi::MPI_ReductionOpEnum opAttr) override {
     StringRef op;
     switch (opAttr) {
-    case mpi::MPI_OpClassEnum::MPI_OP_NULL:
+    case mpi::MPI_ReductionOpEnum::MPI_OP_NULL:
       op = "ompi_mpi_no_op";
       break;
-    case mpi::MPI_OpClassEnum::MPI_MAX:
+    case mpi::MPI_ReductionOpEnum::MPI_MAX:
       op = "ompi_mpi_max";
       break;
-    case mpi::MPI_OpClassEnum::MPI_MIN:
+    case mpi::MPI_ReductionOpEnum::MPI_MIN:
       op = "ompi_mpi_min";
       break;
-    case mpi::MPI_OpClassEnum::MPI_SUM:
+    case mpi::MPI_ReductionOpEnum::MPI_SUM:
       op = "ompi_mpi_sum";
       break;
-    case mpi::MPI_OpClassEnum::MPI_PROD:
+    case mpi::MPI_ReductionOpEnum::MPI_PROD:
       op = "ompi_mpi_prod";
       break;
-    case mpi::MPI_OpClassEnum::MPI_LAND:
+    case mpi::MPI_ReductionOpEnum::MPI_LAND:
       op = "ompi_mpi_land";
       break;
-    case mpi::MPI_OpClassEnum::MPI_BAND:
+    case mpi::MPI_ReductionOpEnum::MPI_BAND:
       op = "ompi_mpi_band";
       break;
-    case mpi::MPI_OpClassEnum::MPI_LOR:
+    case mpi::MPI_ReductionOpEnum::MPI_LOR:
       op = "ompi_mpi_lor";
       break;
-    case mpi::MPI_OpClassEnum::MPI_BOR:
+    case mpi::MPI_ReductionOpEnum::MPI_BOR:
       op = "ompi_mpi_bor";
       break;
-    case mpi::MPI_OpClassEnum::MPI_LXOR:
+    case mpi::MPI_ReductionOpEnum::MPI_LXOR:
       op = "ompi_mpi_lxor";
       break;
-    case mpi::MPI_OpClassEnum::MPI_BXOR:
+    case mpi::MPI_ReductionOpEnum::MPI_BXOR:
       op = "ompi_mpi_bxor";
       break;
-    case mpi::MPI_OpClassEnum::MPI_MINLOC:
+    case mpi::MPI_ReductionOpEnum::MPI_MINLOC:
       op = "ompi_mpi_minloc";
       break;
-    case mpi::MPI_OpClassEnum::MPI_MAXLOC:
+    case mpi::MPI_ReductionOpEnum::MPI_MAXLOC:
       op = "ompi_mpi_maxloc";
       break;
-    case mpi::MPI_OpClassEnum::MPI_REPLACE:
+    case mpi::MPI_ReductionOpEnum::MPI_REPLACE:
       op = "ompi_mpi_replace";
       break;
     }
diff --git a/mlir/lib/Conversion/MeshToMPI/MeshToMPI.cpp b/mlir/lib/Conversion/MeshToMPI/MeshToMPI.cpp
index 823d4d644f586..aaf1d39d48438 100644
--- a/mlir/lib/Conversion/MeshToMPI/MeshToMPI.cpp
+++ b/mlir/lib/Conversion/MeshToMPI/MeshToMPI.cpp
@@ -12,9 +12,9 @@
 
 #include "mlir/Conversion/MeshToMPI/MeshToMPI.h"
 
+#include "mlir/Dialect/Affine/IR/AffineOps.h"
 #include "mlir/Dialect/Arith/IR/Arith.h"
 #include "mlir/Dialect/Bufferization/IR/Bufferization.h"
-#include "mlir/Dialect/DLTI/DLTI.h"
 #include "mlir/Dialect/Func/IR/FuncOps.h"
 #include "mlir/Dialect/Func/Transforms/FuncConversions.h"
 #include "mlir/Dialect/Linalg/IR/Linalg.h"
@@ -22,6 +22,8 @@
 #include "mlir/Dialect/MemRef/IR/MemRef.h"
 #include "mlir/Dialect/Mesh/IR/MeshDialect.h"
 #include "mlir/Dialect/Mesh/IR/MeshOps.h"
+#include "mlir/Dialect/Mesh/Transforms/Simplifications.h"
+#include "mlir/Dialect/Mesh/Transforms/Transforms.h"
 #include "mlir/Dialect/SCF/IR/SCF.h"
 #include "mlir/Dialect/Tensor/IR/Tensor.h"
 #include "mlir/Dialect/Utils/StaticValueUtils.h"
@@ -289,27 +291,15 @@ struct ConvertProcessMultiIndexOp
 
 class ConvertProcessLinearIndexOp
     : public OpConversionPattern<ProcessLinearIndexOp> {
-  int64_t worldRank; // rank in MPI_COMM_WORLD if available, else < 0
 
 public:
   using OpConversionPattern::OpConversionPattern;
 
-  // Constructor accepting worldRank
-  ConvertProcessLinearIndexOp(const TypeConverter &typeConverter,
-                              MLIRContext *context, int64_t worldRank = -1)
-      : OpConversionPattern(typeConverter, context), worldRank(worldRank) {}
-
   LogicalResult
   matchAndRewrite(ProcessLinearIndexOp op, OpAdaptor adaptor,
                   ConversionPatternRewriter &rewriter) const override {
-
+    // Create mpi::CommRankOp
     Location loc = op.getLoc();
-    if (worldRank >= 0) { // if rank in MPI_COMM_WORLD is known -> use it
-      rewriter.replaceOpWithNewOp<arith::ConstantIndexOp>(op, worldRank);
-      return success();
-    }
-
-    // Otherwise call create mpi::CommRankOp
     auto ctx = op.getContext();
     Value commWorld =
         rewriter.create<mpi::CommWorldOp>(loc, mpi::CommType::get(ctx));
@@ -529,6 +519,124 @@ struct ConvertShardShapeOp : public OpConversionPattern<ShardShapeOp> {
   }
 };
 
+static mpi::MPI_ReductionOpEnumAttr getMPIReductionOp(ReductionKindAttr kind) {
+  auto ctx = kind.getContext();
+  switch (kind.getValue()) {
+  case ReductionKind::Sum:
+    return mpi::MPI_ReductionOpEnumAttr::get(ctx, mpi::MPI_ReductionOpEnum::MPI_SUM);
+  case ReductionKind::Product:
+    return mpi::MPI_ReductionOpEnumAttr::get(ctx, mpi::MPI_ReductionOpEnum::MPI_PROD);
+  case ReductionKind::Min:
+    return mpi::MPI_ReductionOpEnumAttr::get(ctx, mpi::MPI_ReductionOpEnum::MPI_MIN);
+  case ReductionKind::Max:
+    return mpi::MPI_ReductionOpEnumAttr::get(ctx, mpi::MPI_ReductionOpEnum::MPI_MAX);
+  case ReductionKind::BitwiseAnd:
+    return mpi::MPI_ReductionOpEnumAttr::get(ctx, mpi::MPI_ReductionOpEnum::MPI_BAND);
+  case ReductionKind::BitwiseOr:
+    return mpi::MPI_ReductionOpEnumAttr::get(ctx, mpi::MPI_ReductionOpEnum::MPI_BOR);
+  case ReductionKind::BitwiseXor:
+    return mpi::MPI_ReductionOpEnumAttr::get(ctx, mpi::MPI_ReductionOpEnum::MPI_BXOR);
+  default:
+    assert(false && "Unknown/unsupported reduction kind");
+  }
+}
+
+struct ConvertAllReduceOp : public OpConversionPattern<AllReduceOp> {
+  using OpConversionPattern::OpConversionPattern;
+
+  LogicalResult
+  matchAndRewrite(AllReduceOp op, OpAdaptor adaptor,
+                  ConversionPatternRewriter &rewriter) const override {
+    SymbolTableCollection symbolTableCollection;
+    auto mesh = adaptor.getMesh();
+    mlir::mesh::MeshOp meshOp = getMesh(op, symbolTableCollection);
+    if (!meshOp)
+      return op->emitError() << "No mesh found for AllReduceOp";
+    if (ShapedType::isDynamicShape(meshOp.getShape()))
+      return op->emitError()
+             << "Dynamic mesh shape not supported in AllReduceOp";
+
+    ImplicitLocOpBuilder iBuilder(op.getLoc(), rewriter);
+    Value input = adaptor.getInput();
+    auto inputShape = cast<ShapedType>(input.getType()).getShape();
+
+    // If the source is a memref, cast it to a tensor.
+    if (isa<RankedTensorType>(input.getType())) {
+      auto memrefType = MemRefType::get(
+          inputShape, cast<ShapedType>(input.getType()).getElementType());
+      input = iBuilder.create<bufferization::ToBufferOp>(memrefType, input);
+    }
+    MemRefType inType = cast<MemRefType>(input.getType());
+
+    // Get the actual shape to allocate the buffer.
+    SmallVector<OpFoldResult> shape(inType.getRank());
+    for (auto i = 0; i < inType.getRank(); ++i) {
+      auto s = inputShape[i];
+      if (ShapedType::isDynamic(s))
+        shape[i] = iBuilder.create<memref::DimOp>(input, s).getResult();
+      else
+        shape[i] = iBuilder.getIndexAttr(s);
+    }
+
+    // Allocate buffer and copy input to buffer.
+    Value buffer = iBuilder.create<memref::AllocOp>(
+        shape, cast<ShapedType>(op.getType()).getElementType());
+    iBuilder.create<linalg::CopyOp>(input, buffer);
+
+    // Get an MPI_Comm_split for the AllReduce operation.
+    // The color is the linear index of the process in the mesh along the
+    // non-reduced axes. The key is the linear index of the process in the mesh
+    // along the reduced axes.
+    SmallVector<Type> indexResultTypes(meshOp.getShape().size(),
+                                       iBuilder.getIndexType());
+    SmallVector<Value> myMultiIndex =
+        iBuilder.create<ProcessMultiIndexOp>(indexResultTypes, mesh)
+            .getResult();
+    Value zero = iBuilder.create<arith::ConstantIndexOp>(0);
+    SmallVector<Value> multiKey(myMultiIndex.size(), zero);
+
+    auto redAxes = adaptor.getMeshAxes();
+    for (auto axis : redAxes) {
+      multiKey[axis] = myMultiIndex[axis];
+      myMultiIndex[axis] = zero;
+    }
+
+    Value color =
+        createProcessLinearIndex(mesh, myMultiIndex, redAxes, iBuilder);
+    color = iBuilder.create<arith::IndexCastOp>(iBuilder.getI32Type(), color);
+    Value key = createProcessLinearIndex(mesh, multiKey, redAxes, iBuilder);
+    key = iBuilder.create<arith::IndexCastOp>(iBuilder.getI32Type(), key);
+
+    // Finally split the communicator
+    auto commType = mpi::CommType::get(op->getContext());
+    Value commWorld = iBuilder.create<mpi::CommWorldOp>(commType);
+    auto comm =
+        iBuilder.create<mpi::CommSplitOp>(commType, commWorld, color, key)
+            .getNewcomm();
+
+    Value buffer1d = buffer;
+    // Collapse shape to 1d if needed
+    if (inType.getRank() > 1) {
+      ReassociationIndices reassociation(inType.getRank());
+      std::iota(reassociation.begin(), reassociation.end(), 0);
+      buffer1d = iBuilder.create<memref::CollapseShapeOp>(
+          buffer, ArrayRef<ReassociationIndices>(reassociation));
+    }
+
+    // Create the MPI AllReduce operation.
+    iBuilder.create<mpi::AllReduceOp>(
+        TypeRange(), buffer1d, buffer1d,
+        getMPIReductionOp(adaptor.getReductionA...
[truncated]

Copy link

github-actions bot commented Jun 18, 2025

✅ With the latest revision this PR passed the C/C++ code formatter.

@@ -584,11 +584,11 @@ def Mesh_AllReduceOp : Mesh_CollectiveCommunicationOpBase<"all_reduce", [
```
}];
let arguments = !con(commonArgs, (ins
AnyRankedTensor:$input,
AnyTypeOf<[AnyMemRef, AnyRankedTensor]>:$input,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder if this is the way to go, isn't the sharding dialect supposed to be tensor only? I would expect MPI to insert some bufferization dialect ops to get to the memref. Although admittedly, my knowledge here is very flaky.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The communication primitives might be added during bufferization, like through implementing the BufferizableOpInterface. Hence they must support tensors and memrefs.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

MPI dialect is strictly buffer semantics. There is no room for tensors there.

@fschlimb fschlimb merged commit 8584b21 into llvm:main Jun 23, 2025
7 checks passed
@llvm-ci
Copy link
Collaborator

llvm-ci commented Jun 23, 2025

LLVM Buildbot has detected a new failure on builder amdgpu-offload-rhel-8-cmake-build-only running on rocm-docker-rhel-8 while building mlir at step 4 "annotate".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/204/builds/13067

Here is the relevant piece of the build log for the reference
Step 4 (annotate) failure: '../llvm-zorg/zorg/buildbot/builders/annotated/amdgpu-offload-cmake.py --jobs=32' (failure)
...
[5226/7871] Linking CXX shared library lib/libMLIREmitCTransforms.so.21.0git
[5227/7871] Creating library symlink lib/libMLIREmitCTransforms.so
[5228/7871] Creating library symlink lib/libMLIRFuncTransforms.so
[5229/7871] Linking CXX shared library lib/libMLIRArmNeonTransforms.so.21.0git
[5230/7871] Creating library symlink lib/libMLIRArmNeonTransforms.so
[5231/7871] Linking CXX shared library lib/libMLIRMLProgramDialect.so.21.0git
[5232/7871] Linking CXX shared library lib/libMLIRArmSVETransforms.so.21.0git
[5233/7871] Creating library symlink lib/libMLIRMLProgramDialect.so
[5234/7871] Linking CXX shared library lib/libMLIRAMDGPUTransforms.so.21.0git
[5235/7871] Linking CXX shared library lib/libMLIRMPIDialect.so.21.0git
FAILED: lib/libMLIRMPIDialect.so.21.0git 
: && /usr/bin/c++ -fPIC -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-uninitialized -Wno-nonnull -Wno-class-memaccess -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wno-comment -Wno-misleading-indentation -fdiagnostics-color -ffunction-sections -fdata-sections -Wundef -Wno-unused-but-set-parameter -Wno-deprecated-copy -O3 -DNDEBUG  -Wl,-z,defs -Wl,-z,nodelete   -Wl,-rpath-link,/home/botworker/bbot/amdgpu-offload-rhel-8-cmake-build-only/build/./lib  -Wl,--gc-sections -shared -Wl,-soname,libMLIRMPIDialect.so.21.0git -o lib/libMLIRMPIDialect.so.21.0git tools/mlir/lib/Dialect/MPI/IR/CMakeFiles/obj.MLIRMPIDialect.dir/MPIOps.cpp.o tools/mlir/lib/Dialect/MPI/IR/CMakeFiles/obj.MLIRMPIDialect.dir/MPI.cpp.o  -Wl,-rpath,"\$ORIGIN/../lib:/home/botworker/bbot/amdgpu-offload-rhel-8-cmake-build-only/build/lib:"  lib/libMLIRMemRefDialect.so.21.0git  lib/libMLIRArithUtils.so.21.0git  lib/libMLIRComplexDialect.so.21.0git  lib/libMLIRArithDialect.so.21.0git  lib/libMLIRDialect.so.21.0git  lib/libMLIRCastInterfaces.so.21.0git  lib/libMLIRUBDialect.so.21.0git  lib/libMLIRDialectUtils.so.21.0git  lib/libMLIRInferIntRangeCommon.so.21.0git  lib/libMLIRMemorySlotInterfaces.so.21.0git  lib/libMLIRShapedOpInterfaces.so.21.0git  lib/libMLIRValueBoundsOpInterface.so.21.0git  lib/libMLIRAnalysis.so.21.0git  lib/libMLIRInferTypeOpInterface.so.21.0git  lib/libMLIRSideEffectInterfaces.so.21.0git  lib/libMLIRControlFlowInterfaces.so.21.0git  lib/libMLIRInferIntRangeInterface.so.21.0git  lib/libMLIRDataLayoutInterfaces.so.21.0git  lib/libMLIRLoopLikeInterface.so.21.0git  lib/libMLIRFunctionInterfaces.so.21.0git  lib/libMLIRCallInterfaces.so.21.0git  lib/libMLIRPresburger.so.21.0git  lib/libMLIRDestinationStyleOpInterface.so.21.0git  lib/libMLIRViewLikeInterface.so.21.0git  lib/libMLIRIR.so.21.0git  lib/libMLIRSupport.so.21.0git  -lpthread  lib/libLLVMSupport.so.21.0git  -Wl,-rpath-link,/home/botworker/bbot/amdgpu-offload-rhel-8-cmake-build-only/build/lib && :
tools/mlir/lib/Dialect/MPI/IR/CMakeFiles/obj.MLIRMPIDialect.dir/MPIOps.cpp.o: In function `(anonymous namespace)::FoldRank::matchAndRewrite(mlir::mpi::CommRankOp, mlir::PatternRewriter&) const [clone .constprop.546]':
MPIOps.cpp:(.text._ZNK12_GLOBAL__N_18FoldRank15matchAndRewriteEN4mlir3mpi10CommRankOpERNS1_15PatternRewriterE.constprop.546[_ZNK4mlir6detail31OpOrInterfaceRewritePatternBaseINS_3mpi10CommRankOpEE15matchAndRewriteEPNS_9OperationERNS_15PatternRewriterE]+0xa0): undefined reference to `mlir::dlti::query(mlir::Operation*, llvm::ArrayRef<llvm::StringRef>, bool)'
tools/mlir/lib/Dialect/MPI/IR/CMakeFiles/obj.MLIRMPIDialect.dir/MPIOps.cpp.o: In function `(anonymous namespace)::FoldRank::matchAndRewrite(mlir::mpi::CommRankOp, mlir::PatternRewriter&) const':
MPIOps.cpp:(.text._ZNK12_GLOBAL__N_18FoldRank15matchAndRewriteEN4mlir3mpi10CommRankOpERNS1_15PatternRewriterE+0xa3): undefined reference to `mlir::dlti::query(mlir::Operation*, llvm::ArrayRef<llvm::StringRef>, bool)'
collect2: error: ld returned 1 exit status
[5236/7871] Creating library symlink lib/libMLIRArmSVETransforms.so
[5237/7871] Creating library symlink lib/libMLIRAMDGPUTransforms.so
[5238/7871] Linking CXX shared library lib/libMLIRNVGPUTransforms.so.21.0git
[5239/7871] Linking CXX shared library lib/libMLIRLLVMIRTransforms.so.21.0git
[5240/7871] Linking CXX shared library lib/libMLIRBufferizationTransforms.so.21.0git
[5241/7871] Linking CXX shared library lib/libMLIRArithToEmitC.so.21.0git
[5242/7871] Linking CXX shared library lib/libMLIRAMXTransforms.so.21.0git
[5243/7871] Linking CXX shared library lib/libMLIRSCFToEmitC.so.21.0git
[5244/7871] Linking CXX shared library lib/libMLIROpenACCTransforms.so.21.0git
[5245/7871] Linking CXX shared library lib/libMLIRSCFUtils.so.21.0git
[5246/7871] Building CXX object tools/mlir/lib/Conversion/GPUToLLVMSPV/CMakeFiles/obj.MLIRGPUToLLVMSPV.dir/GPUToLLVMSPV.cpp.o
[5247/7871] Building CXX object tools/mlir/lib/Dialect/Tensor/Extensions/CMakeFiles/obj.MLIRTensorMeshShardingExtensions.dir/MeshShardingExtensions.cpp.o
[5248/7871] Building CXX object tools/mlir/lib/Dialect/Linalg/Transforms/CMakeFiles/obj.MLIRLinalgTransforms.dir/Transforms.cpp.o
[5249/7871] Building CXX object tools/mlir/lib/Dialect/Tosa/CMakeFiles/obj.MLIRTosaShardingInterfaceImpl.dir/IR/ShardingInterfaceImpl.cpp.o
[5250/7871] Building CXX object tools/mlir/lib/Dialect/Linalg/Transforms/CMakeFiles/obj.MLIRLinalgTransforms.dir/Vectorization.cpp.o
In file included from /usr/include/c++/8/cassert:44,
                 from /home/botworker/bbot/amdgpu-offload-rhel-8-cmake-build-only/llvm-project/llvm/include/llvm/Support/GenericDomTree.h:36,
                 from /home/botworker/bbot/amdgpu-offload-rhel-8-cmake-build-only/llvm-project/mlir/include/mlir/IR/Dominance.h:23,
                 from /home/botworker/bbot/amdgpu-offload-rhel-8-cmake-build-only/llvm-project/mlir/include/mlir/Interfaces/MemorySlotInterfaces.h:12,
                 from /home/botworker/bbot/amdgpu-offload-rhel-8-cmake-build-only/llvm-project/mlir/include/mlir/Dialect/MemRef/IR/MemRef.h:22,
                 from /home/botworker/bbot/amdgpu-offload-rhel-8-cmake-build-only/llvm-project/mlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h:17,
                 from /home/botworker/bbot/amdgpu-offload-rhel-8-cmake-build-only/llvm-project/mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp:19:
/home/botworker/bbot/amdgpu-offload-rhel-8-cmake-build-only/llvm-project/mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp: In function ‘mlir::Operation* createWriteOrMaskedWrite(mlir::OpBuilder&, mlir::Location, mlir::Value, mlir::Value, llvm::SmallVector<mlir::Value>, bool)’:
/home/botworker/bbot/amdgpu-offload-rhel-8-cmake-build-only/llvm-project/mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp:1656:63: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
          writeIndices.size() == static_cast<size_t>(destRank) &&
          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
              "Invalid number of write indices!");
              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
At global scope:
cc1plus: warning: unrecognized command line option ‘-Wno-deprecated-copy’
[5251/7871] Building CXX object tools/mlir/lib/Dialect/GPU/Pipelines/CMakeFiles/obj.MLIRGPUPipelines.dir/GPUToNVVMPipeline.cpp.o
[5252/7871] Building CXX object tools/mlir/lib/Conversion/GPUToROCDL/CMakeFiles/obj.MLIRGPUToROCDLTransforms.dir/LowerGpuOpsToROCDLOps.cpp.o
Step 7 (build cmake config) failure: build cmake config (failure)
...
[5226/7871] Linking CXX shared library lib/libMLIREmitCTransforms.so.21.0git
[5227/7871] Creating library symlink lib/libMLIREmitCTransforms.so
[5228/7871] Creating library symlink lib/libMLIRFuncTransforms.so
[5229/7871] Linking CXX shared library lib/libMLIRArmNeonTransforms.so.21.0git
[5230/7871] Creating library symlink lib/libMLIRArmNeonTransforms.so
[5231/7871] Linking CXX shared library lib/libMLIRMLProgramDialect.so.21.0git
[5232/7871] Linking CXX shared library lib/libMLIRArmSVETransforms.so.21.0git
[5233/7871] Creating library symlink lib/libMLIRMLProgramDialect.so
[5234/7871] Linking CXX shared library lib/libMLIRAMDGPUTransforms.so.21.0git
[5235/7871] Linking CXX shared library lib/libMLIRMPIDialect.so.21.0git
FAILED: lib/libMLIRMPIDialect.so.21.0git 
: && /usr/bin/c++ -fPIC -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-uninitialized -Wno-nonnull -Wno-class-memaccess -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wno-comment -Wno-misleading-indentation -fdiagnostics-color -ffunction-sections -fdata-sections -Wundef -Wno-unused-but-set-parameter -Wno-deprecated-copy -O3 -DNDEBUG  -Wl,-z,defs -Wl,-z,nodelete   -Wl,-rpath-link,/home/botworker/bbot/amdgpu-offload-rhel-8-cmake-build-only/build/./lib  -Wl,--gc-sections -shared -Wl,-soname,libMLIRMPIDialect.so.21.0git -o lib/libMLIRMPIDialect.so.21.0git tools/mlir/lib/Dialect/MPI/IR/CMakeFiles/obj.MLIRMPIDialect.dir/MPIOps.cpp.o tools/mlir/lib/Dialect/MPI/IR/CMakeFiles/obj.MLIRMPIDialect.dir/MPI.cpp.o  -Wl,-rpath,"\$ORIGIN/../lib:/home/botworker/bbot/amdgpu-offload-rhel-8-cmake-build-only/build/lib:"  lib/libMLIRMemRefDialect.so.21.0git  lib/libMLIRArithUtils.so.21.0git  lib/libMLIRComplexDialect.so.21.0git  lib/libMLIRArithDialect.so.21.0git  lib/libMLIRDialect.so.21.0git  lib/libMLIRCastInterfaces.so.21.0git  lib/libMLIRUBDialect.so.21.0git  lib/libMLIRDialectUtils.so.21.0git  lib/libMLIRInferIntRangeCommon.so.21.0git  lib/libMLIRMemorySlotInterfaces.so.21.0git  lib/libMLIRShapedOpInterfaces.so.21.0git  lib/libMLIRValueBoundsOpInterface.so.21.0git  lib/libMLIRAnalysis.so.21.0git  lib/libMLIRInferTypeOpInterface.so.21.0git  lib/libMLIRSideEffectInterfaces.so.21.0git  lib/libMLIRControlFlowInterfaces.so.21.0git  lib/libMLIRInferIntRangeInterface.so.21.0git  lib/libMLIRDataLayoutInterfaces.so.21.0git  lib/libMLIRLoopLikeInterface.so.21.0git  lib/libMLIRFunctionInterfaces.so.21.0git  lib/libMLIRCallInterfaces.so.21.0git  lib/libMLIRPresburger.so.21.0git  lib/libMLIRDestinationStyleOpInterface.so.21.0git  lib/libMLIRViewLikeInterface.so.21.0git  lib/libMLIRIR.so.21.0git  lib/libMLIRSupport.so.21.0git  -lpthread  lib/libLLVMSupport.so.21.0git  -Wl,-rpath-link,/home/botworker/bbot/amdgpu-offload-rhel-8-cmake-build-only/build/lib && :
tools/mlir/lib/Dialect/MPI/IR/CMakeFiles/obj.MLIRMPIDialect.dir/MPIOps.cpp.o: In function `(anonymous namespace)::FoldRank::matchAndRewrite(mlir::mpi::CommRankOp, mlir::PatternRewriter&) const [clone .constprop.546]':
MPIOps.cpp:(.text._ZNK12_GLOBAL__N_18FoldRank15matchAndRewriteEN4mlir3mpi10CommRankOpERNS1_15PatternRewriterE.constprop.546[_ZNK4mlir6detail31OpOrInterfaceRewritePatternBaseINS_3mpi10CommRankOpEE15matchAndRewriteEPNS_9OperationERNS_15PatternRewriterE]+0xa0): undefined reference to `mlir::dlti::query(mlir::Operation*, llvm::ArrayRef<llvm::StringRef>, bool)'
tools/mlir/lib/Dialect/MPI/IR/CMakeFiles/obj.MLIRMPIDialect.dir/MPIOps.cpp.o: In function `(anonymous namespace)::FoldRank::matchAndRewrite(mlir::mpi::CommRankOp, mlir::PatternRewriter&) const':
MPIOps.cpp:(.text._ZNK12_GLOBAL__N_18FoldRank15matchAndRewriteEN4mlir3mpi10CommRankOpERNS1_15PatternRewriterE+0xa3): undefined reference to `mlir::dlti::query(mlir::Operation*, llvm::ArrayRef<llvm::StringRef>, bool)'
collect2: error: ld returned 1 exit status
[5236/7871] Creating library symlink lib/libMLIRArmSVETransforms.so
[5237/7871] Creating library symlink lib/libMLIRAMDGPUTransforms.so
[5238/7871] Linking CXX shared library lib/libMLIRNVGPUTransforms.so.21.0git
[5239/7871] Linking CXX shared library lib/libMLIRLLVMIRTransforms.so.21.0git
[5240/7871] Linking CXX shared library lib/libMLIRBufferizationTransforms.so.21.0git
[5241/7871] Linking CXX shared library lib/libMLIRArithToEmitC.so.21.0git
[5242/7871] Linking CXX shared library lib/libMLIRAMXTransforms.so.21.0git
[5243/7871] Linking CXX shared library lib/libMLIRSCFToEmitC.so.21.0git
[5244/7871] Linking CXX shared library lib/libMLIROpenACCTransforms.so.21.0git
[5245/7871] Linking CXX shared library lib/libMLIRSCFUtils.so.21.0git
[5246/7871] Building CXX object tools/mlir/lib/Conversion/GPUToLLVMSPV/CMakeFiles/obj.MLIRGPUToLLVMSPV.dir/GPUToLLVMSPV.cpp.o
[5247/7871] Building CXX object tools/mlir/lib/Dialect/Tensor/Extensions/CMakeFiles/obj.MLIRTensorMeshShardingExtensions.dir/MeshShardingExtensions.cpp.o
[5248/7871] Building CXX object tools/mlir/lib/Dialect/Linalg/Transforms/CMakeFiles/obj.MLIRLinalgTransforms.dir/Transforms.cpp.o
[5249/7871] Building CXX object tools/mlir/lib/Dialect/Tosa/CMakeFiles/obj.MLIRTosaShardingInterfaceImpl.dir/IR/ShardingInterfaceImpl.cpp.o
[5250/7871] Building CXX object tools/mlir/lib/Dialect/Linalg/Transforms/CMakeFiles/obj.MLIRLinalgTransforms.dir/Vectorization.cpp.o
In file included from /usr/include/c++/8/cassert:44,
                 from /home/botworker/bbot/amdgpu-offload-rhel-8-cmake-build-only/llvm-project/llvm/include/llvm/Support/GenericDomTree.h:36,
                 from /home/botworker/bbot/amdgpu-offload-rhel-8-cmake-build-only/llvm-project/mlir/include/mlir/IR/Dominance.h:23,
                 from /home/botworker/bbot/amdgpu-offload-rhel-8-cmake-build-only/llvm-project/mlir/include/mlir/Interfaces/MemorySlotInterfaces.h:12,
                 from /home/botworker/bbot/amdgpu-offload-rhel-8-cmake-build-only/llvm-project/mlir/include/mlir/Dialect/MemRef/IR/MemRef.h:22,
                 from /home/botworker/bbot/amdgpu-offload-rhel-8-cmake-build-only/llvm-project/mlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h:17,
                 from /home/botworker/bbot/amdgpu-offload-rhel-8-cmake-build-only/llvm-project/mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp:19:
/home/botworker/bbot/amdgpu-offload-rhel-8-cmake-build-only/llvm-project/mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp: In function ‘mlir::Operation* createWriteOrMaskedWrite(mlir::OpBuilder&, mlir::Location, mlir::Value, mlir::Value, llvm::SmallVector<mlir::Value>, bool)’:
/home/botworker/bbot/amdgpu-offload-rhel-8-cmake-build-only/llvm-project/mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp:1656:63: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
          writeIndices.size() == static_cast<size_t>(destRank) &&
          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
              "Invalid number of write indices!");
              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
At global scope:
cc1plus: warning: unrecognized command line option ‘-Wno-deprecated-copy’
[5251/7871] Building CXX object tools/mlir/lib/Dialect/GPU/Pipelines/CMakeFiles/obj.MLIRGPUPipelines.dir/GPUToNVVMPipeline.cpp.o
[5252/7871] Building CXX object tools/mlir/lib/Conversion/GPUToROCDL/CMakeFiles/obj.MLIRGPUToROCDLTransforms.dir/LowerGpuOpsToROCDLOps.cpp.o

@llvm-ci
Copy link
Collaborator

llvm-ci commented Jun 23, 2025

LLVM Buildbot has detected a new failure on builder amdgpu-offload-ubuntu-22-cmake-build-only running on rocm-docker-ubu-22 while building mlir at step 4 "annotate".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/203/builds/14254

Here is the relevant piece of the build log for the reference
Step 4 (annotate) failure: '../llvm-zorg/zorg/buildbot/builders/annotated/amdgpu-offload-cmake.py --jobs=32' (failure)
...
[5114/7871] Linking CXX shared library lib/libMLIRTargetLLVMIRImport.so.21.0git
[5115/7871] Building CXX object tools/mlir/lib/Tools/PDLL/CodeGen/CMakeFiles/obj.MLIRPDLLCodeGen.dir/MLIRGen.cpp.o
[5116/7871] Linking CXX shared library lib/libMLIRExportSMTLIB.so.21.0git
[5117/7871] Linking CXX shared library lib/libMLIRQueryLib.so.21.0git
[5118/7871] Creating library symlink lib/libMLIRExportSMTLIB.so
[5119/7871] Creating library symlink lib/libMLIRTargetLLVMIRImport.so
[5120/7871] Creating library symlink lib/libMLIRQueryLib.so
[5121/7871] Linking CXX shared library lib/libMLIRAffineDialect.so.21.0git
[5122/7871] Creating library symlink lib/libMLIRAffineDialect.so
[5123/7871] Linking CXX shared library lib/libMLIRMPIDialect.so.21.0git
FAILED: lib/libMLIRMPIDialect.so.21.0git 
: && /usr/bin/c++ -fPIC -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-uninitialized -Wno-nonnull -Wno-class-memaccess -Wno-redundant-move -Wno-pessimizing-move -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wno-misleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -Wundef -Wno-unused-but-set-parameter -Wno-deprecated-copy -O3 -DNDEBUG  -Wl,-z,defs -Wl,-z,nodelete   -Wl,-rpath-link,/home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/build/./lib  -Wl,--gc-sections -shared -Wl,-soname,libMLIRMPIDialect.so.21.0git -o lib/libMLIRMPIDialect.so.21.0git tools/mlir/lib/Dialect/MPI/IR/CMakeFiles/obj.MLIRMPIDialect.dir/MPIOps.cpp.o tools/mlir/lib/Dialect/MPI/IR/CMakeFiles/obj.MLIRMPIDialect.dir/MPI.cpp.o  -Wl,-rpath,"\$ORIGIN/../lib:/home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/build/lib:"  lib/libMLIRMemRefDialect.so.21.0git  lib/libMLIRArithUtils.so.21.0git  lib/libMLIRComplexDialect.so.21.0git  lib/libMLIRArithDialect.so.21.0git  lib/libMLIRDialect.so.21.0git  lib/libMLIRCastInterfaces.so.21.0git  lib/libMLIRUBDialect.so.21.0git  lib/libMLIRDialectUtils.so.21.0git  lib/libMLIRInferIntRangeCommon.so.21.0git  lib/libMLIRMemorySlotInterfaces.so.21.0git  lib/libMLIRShapedOpInterfaces.so.21.0git  lib/libMLIRValueBoundsOpInterface.so.21.0git  lib/libMLIRAnalysis.so.21.0git  lib/libMLIRInferTypeOpInterface.so.21.0git  lib/libMLIRSideEffectInterfaces.so.21.0git  lib/libMLIRControlFlowInterfaces.so.21.0git  lib/libMLIRInferIntRangeInterface.so.21.0git  lib/libMLIRDataLayoutInterfaces.so.21.0git  lib/libMLIRLoopLikeInterface.so.21.0git  lib/libMLIRFunctionInterfaces.so.21.0git  lib/libMLIRCallInterfaces.so.21.0git  lib/libMLIRPresburger.so.21.0git  lib/libMLIRDestinationStyleOpInterface.so.21.0git  lib/libMLIRViewLikeInterface.so.21.0git  lib/libMLIRIR.so.21.0git  lib/libMLIRSupport.so.21.0git  lib/libLLVMSupport.so.21.0git  -Wl,-rpath-link,/home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/build/lib && :
/usr/bin/ld: tools/mlir/lib/Dialect/MPI/IR/CMakeFiles/obj.MLIRMPIDialect.dir/MPIOps.cpp.o: in function `(anonymous namespace)::FoldRank::matchAndRewrite(mlir::mpi::CommRankOp, mlir::PatternRewriter&) const':
MPIOps.cpp:(.text._ZNK12_GLOBAL__N_18FoldRank15matchAndRewriteEN4mlir3mpi10CommRankOpERNS1_15PatternRewriterE+0xc5): undefined reference to `mlir::dlti::query(mlir::Operation*, llvm::ArrayRef<llvm::StringRef>, bool)'
collect2: error: ld returned 1 exit status
[5124/7871] Linking CXX shared library lib/libMLIRPDLLCodeGen.so.21.0git
[5125/7871] Linking CXX shared library lib/libMLIRMemRefUtils.so.21.0git
[5126/7871] Linking CXX shared library lib/libMLIRLLVMIRToLLVMTranslation.so.21.0git
[5127/7871] Building CXX object tools/mlir/test/lib/Pass/CMakeFiles/MLIRTestPass.dir/TestConvertToSPIRVPass.cpp.o
[5128/7871] Linking CXX shared library lib/libMLIRGPUDialect.so.21.0git
[5129/7871] Linking CXX shared library lib/libMLIROpenACCDialect.so.21.0git
[5130/7871] Building CXX object tools/mlir/lib/Dialect/Linalg/Transforms/CMakeFiles/obj.MLIRLinalgTransforms.dir/Tiling.cpp.o
[5131/7871] Building CXX object tools/mlir/lib/Conversion/GPUToLLVMSPV/CMakeFiles/obj.MLIRGPUToLLVMSPV.dir/GPUToLLVMSPV.cpp.o
[5132/7871] Building CXX object tools/mlir/lib/Dialect/Linalg/TransformOps/CMakeFiles/obj.MLIRLinalgTransformOps.dir/DialectExtension.cpp.o
[5133/7871] Building CXX object tools/mlir/test/lib/Dialect/Mesh/CMakeFiles/MLIRMeshTest.dir/TestOpLowering.cpp.o
[5134/7871] Building CXX object tools/mlir/lib/Dialect/Linalg/Transforms/CMakeFiles/obj.MLIRLinalgTransforms.dir/Vectorization.cpp.o
In file included from /usr/include/c++/11/cassert:44,
                 from /home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/llvm-project/llvm/include/llvm/Support/GenericDomTree.h:36,
                 from /home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/llvm-project/mlir/include/mlir/IR/Dominance.h:23,
                 from /home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/llvm-project/mlir/include/mlir/Interfaces/MemorySlotInterfaces.h:12,
                 from /home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/llvm-project/mlir/include/mlir/Dialect/MemRef/IR/MemRef.h:22,
                 from /home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/llvm-project/mlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h:17,
                 from /home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/llvm-project/mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp:19:
/home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/llvm-project/mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp: In function ‘mlir::Operation* createWriteOrMaskedWrite(mlir::OpBuilder&, mlir::Location, mlir::Value, mlir::Value, llvm::SmallVector<mlir::Value>, bool)’:
/home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/llvm-project/mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp:1656:63: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
 1656 |          writeIndices.size() == static_cast<size_t>(destRank) &&
      |          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
 1657 |              "Invalid number of write indices!");
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
[5135/7871] Building CXX object tools/mlir/lib/Dialect/GPU/Pipelines/CMakeFiles/obj.MLIRGPUPipelines.dir/GPUToNVVMPipeline.cpp.o
[5136/7871] Building CXX object tools/mlir/lib/Dialect/Linalg/Transforms/CMakeFiles/obj.MLIRLinalgTransforms.dir/Transforms.cpp.o
[5137/7871] Building CXX object tools/mlir/test/lib/Conversion/MemRefToLLVM/CMakeFiles/MLIRTestMemRefToLLVMWithTransforms.dir/TestMemRefToLLVMWithTransforms.cpp.o
[5138/7871] Building CXX object tools/mlir/lib/Dialect/Tosa/CMakeFiles/obj.MLIRTosaShardingInterfaceImpl.dir/IR/ShardingInterfaceImpl.cpp.o
[5139/7871] Building CXX object tools/mlir/lib/Conversion/GPUToROCDL/CMakeFiles/obj.MLIRGPUToROCDLTransforms.dir/LowerGpuOpsToROCDLOps.cpp.o
[5140/7871] Building CXX object tools/mlir/lib/Conversion/MathToROCDL/CMakeFiles/obj.MLIRMathToROCDL.dir/MathToROCDL.cpp.o
[5141/7871] Building CXX object tools/mlir/lib/Conversion/NVGPUToNVVM/CMakeFiles/obj.MLIRNVGPUToNVVM.dir/NVGPUToNVVM.cpp.o
[5142/7871] Building CXX object tools/mlir/test/lib/Dialect/Mesh/CMakeFiles/MLIRMeshTest.dir/TestReshardingSpmdization.cpp.o
[5143/7871] Building CXX object tools/mlir/lib/Conversion/GPUCommon/CMakeFiles/obj.MLIRGPUToGPURuntimeTransforms.dir/GPUToLLVMConversion.cpp.o
[5144/7871] Building CXX object tools/mlir/test/lib/Dialect/Linalg/CMakeFiles/MLIRLinalgTestPasses.dir/TestLinalgDecomposeOps.cpp.o
Step 7 (build cmake config) failure: build cmake config (failure)
...
[5114/7871] Linking CXX shared library lib/libMLIRTargetLLVMIRImport.so.21.0git
[5115/7871] Building CXX object tools/mlir/lib/Tools/PDLL/CodeGen/CMakeFiles/obj.MLIRPDLLCodeGen.dir/MLIRGen.cpp.o
[5116/7871] Linking CXX shared library lib/libMLIRExportSMTLIB.so.21.0git
[5117/7871] Linking CXX shared library lib/libMLIRQueryLib.so.21.0git
[5118/7871] Creating library symlink lib/libMLIRExportSMTLIB.so
[5119/7871] Creating library symlink lib/libMLIRTargetLLVMIRImport.so
[5120/7871] Creating library symlink lib/libMLIRQueryLib.so
[5121/7871] Linking CXX shared library lib/libMLIRAffineDialect.so.21.0git
[5122/7871] Creating library symlink lib/libMLIRAffineDialect.so
[5123/7871] Linking CXX shared library lib/libMLIRMPIDialect.so.21.0git
FAILED: lib/libMLIRMPIDialect.so.21.0git 
: && /usr/bin/c++ -fPIC -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-uninitialized -Wno-nonnull -Wno-class-memaccess -Wno-redundant-move -Wno-pessimizing-move -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wno-misleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -Wundef -Wno-unused-but-set-parameter -Wno-deprecated-copy -O3 -DNDEBUG  -Wl,-z,defs -Wl,-z,nodelete   -Wl,-rpath-link,/home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/build/./lib  -Wl,--gc-sections -shared -Wl,-soname,libMLIRMPIDialect.so.21.0git -o lib/libMLIRMPIDialect.so.21.0git tools/mlir/lib/Dialect/MPI/IR/CMakeFiles/obj.MLIRMPIDialect.dir/MPIOps.cpp.o tools/mlir/lib/Dialect/MPI/IR/CMakeFiles/obj.MLIRMPIDialect.dir/MPI.cpp.o  -Wl,-rpath,"\$ORIGIN/../lib:/home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/build/lib:"  lib/libMLIRMemRefDialect.so.21.0git  lib/libMLIRArithUtils.so.21.0git  lib/libMLIRComplexDialect.so.21.0git  lib/libMLIRArithDialect.so.21.0git  lib/libMLIRDialect.so.21.0git  lib/libMLIRCastInterfaces.so.21.0git  lib/libMLIRUBDialect.so.21.0git  lib/libMLIRDialectUtils.so.21.0git  lib/libMLIRInferIntRangeCommon.so.21.0git  lib/libMLIRMemorySlotInterfaces.so.21.0git  lib/libMLIRShapedOpInterfaces.so.21.0git  lib/libMLIRValueBoundsOpInterface.so.21.0git  lib/libMLIRAnalysis.so.21.0git  lib/libMLIRInferTypeOpInterface.so.21.0git  lib/libMLIRSideEffectInterfaces.so.21.0git  lib/libMLIRControlFlowInterfaces.so.21.0git  lib/libMLIRInferIntRangeInterface.so.21.0git  lib/libMLIRDataLayoutInterfaces.so.21.0git  lib/libMLIRLoopLikeInterface.so.21.0git  lib/libMLIRFunctionInterfaces.so.21.0git  lib/libMLIRCallInterfaces.so.21.0git  lib/libMLIRPresburger.so.21.0git  lib/libMLIRDestinationStyleOpInterface.so.21.0git  lib/libMLIRViewLikeInterface.so.21.0git  lib/libMLIRIR.so.21.0git  lib/libMLIRSupport.so.21.0git  lib/libLLVMSupport.so.21.0git  -Wl,-rpath-link,/home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/build/lib && :
/usr/bin/ld: tools/mlir/lib/Dialect/MPI/IR/CMakeFiles/obj.MLIRMPIDialect.dir/MPIOps.cpp.o: in function `(anonymous namespace)::FoldRank::matchAndRewrite(mlir::mpi::CommRankOp, mlir::PatternRewriter&) const':
MPIOps.cpp:(.text._ZNK12_GLOBAL__N_18FoldRank15matchAndRewriteEN4mlir3mpi10CommRankOpERNS1_15PatternRewriterE+0xc5): undefined reference to `mlir::dlti::query(mlir::Operation*, llvm::ArrayRef<llvm::StringRef>, bool)'
collect2: error: ld returned 1 exit status
[5124/7871] Linking CXX shared library lib/libMLIRPDLLCodeGen.so.21.0git
[5125/7871] Linking CXX shared library lib/libMLIRMemRefUtils.so.21.0git
[5126/7871] Linking CXX shared library lib/libMLIRLLVMIRToLLVMTranslation.so.21.0git
[5127/7871] Building CXX object tools/mlir/test/lib/Pass/CMakeFiles/MLIRTestPass.dir/TestConvertToSPIRVPass.cpp.o
[5128/7871] Linking CXX shared library lib/libMLIRGPUDialect.so.21.0git
[5129/7871] Linking CXX shared library lib/libMLIROpenACCDialect.so.21.0git
[5130/7871] Building CXX object tools/mlir/lib/Dialect/Linalg/Transforms/CMakeFiles/obj.MLIRLinalgTransforms.dir/Tiling.cpp.o
[5131/7871] Building CXX object tools/mlir/lib/Conversion/GPUToLLVMSPV/CMakeFiles/obj.MLIRGPUToLLVMSPV.dir/GPUToLLVMSPV.cpp.o
[5132/7871] Building CXX object tools/mlir/lib/Dialect/Linalg/TransformOps/CMakeFiles/obj.MLIRLinalgTransformOps.dir/DialectExtension.cpp.o
[5133/7871] Building CXX object tools/mlir/test/lib/Dialect/Mesh/CMakeFiles/MLIRMeshTest.dir/TestOpLowering.cpp.o
[5134/7871] Building CXX object tools/mlir/lib/Dialect/Linalg/Transforms/CMakeFiles/obj.MLIRLinalgTransforms.dir/Vectorization.cpp.o
In file included from /usr/include/c++/11/cassert:44,
                 from /home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/llvm-project/llvm/include/llvm/Support/GenericDomTree.h:36,
                 from /home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/llvm-project/mlir/include/mlir/IR/Dominance.h:23,
                 from /home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/llvm-project/mlir/include/mlir/Interfaces/MemorySlotInterfaces.h:12,
                 from /home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/llvm-project/mlir/include/mlir/Dialect/MemRef/IR/MemRef.h:22,
                 from /home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/llvm-project/mlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h:17,
                 from /home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/llvm-project/mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp:19:
/home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/llvm-project/mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp: In function ‘mlir::Operation* createWriteOrMaskedWrite(mlir::OpBuilder&, mlir::Location, mlir::Value, mlir::Value, llvm::SmallVector<mlir::Value>, bool)’:
/home/botworker/bbot/amdgpu-offload-ubuntu-22-cmake-build-only/llvm-project/mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp:1656:63: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
 1656 |          writeIndices.size() == static_cast<size_t>(destRank) &&
      |          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
 1657 |              "Invalid number of write indices!");
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
[5135/7871] Building CXX object tools/mlir/lib/Dialect/GPU/Pipelines/CMakeFiles/obj.MLIRGPUPipelines.dir/GPUToNVVMPipeline.cpp.o
[5136/7871] Building CXX object tools/mlir/lib/Dialect/Linalg/Transforms/CMakeFiles/obj.MLIRLinalgTransforms.dir/Transforms.cpp.o
[5137/7871] Building CXX object tools/mlir/test/lib/Conversion/MemRefToLLVM/CMakeFiles/MLIRTestMemRefToLLVMWithTransforms.dir/TestMemRefToLLVMWithTransforms.cpp.o
[5138/7871] Building CXX object tools/mlir/lib/Dialect/Tosa/CMakeFiles/obj.MLIRTosaShardingInterfaceImpl.dir/IR/ShardingInterfaceImpl.cpp.o
[5139/7871] Building CXX object tools/mlir/lib/Conversion/GPUToROCDL/CMakeFiles/obj.MLIRGPUToROCDLTransforms.dir/LowerGpuOpsToROCDLOps.cpp.o
[5140/7871] Building CXX object tools/mlir/lib/Conversion/MathToROCDL/CMakeFiles/obj.MLIRMathToROCDL.dir/MathToROCDL.cpp.o
[5141/7871] Building CXX object tools/mlir/lib/Conversion/NVGPUToNVVM/CMakeFiles/obj.MLIRNVGPUToNVVM.dir/NVGPUToNVVM.cpp.o
[5142/7871] Building CXX object tools/mlir/test/lib/Dialect/Mesh/CMakeFiles/MLIRMeshTest.dir/TestReshardingSpmdization.cpp.o
[5143/7871] Building CXX object tools/mlir/lib/Conversion/GPUCommon/CMakeFiles/obj.MLIRGPUToGPURuntimeTransforms.dir/GPUToLLVMConversion.cpp.o
[5144/7871] Building CXX object tools/mlir/test/lib/Dialect/Linalg/CMakeFiles/MLIRLinalgTestPasses.dir/TestLinalgDecomposeOps.cpp.o

@llvm-ci
Copy link
Collaborator

llvm-ci commented Jun 23, 2025

LLVM Buildbot has detected a new failure on builder amdgpu-offload-rhel-9-cmake-build-only running on rocm-docker-rhel-9 while building mlir at step 4 "annotate".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/205/builds/13044

Here is the relevant piece of the build log for the reference
Step 4 (annotate) failure: '../llvm-zorg/zorg/buildbot/builders/annotated/amdgpu-offload-cmake.py --jobs=32' (failure)
...
[5329/7871] Creating library symlink lib/libMLIRMLProgramDialect.so
[5330/7871] Creating library symlink lib/libMLIRArmSVETransforms.so
[5331/7871] Linking CXX shared library lib/libMLIRAMDGPUTransforms.so.21.0git
[5332/7871] Creating library symlink lib/libMLIRAMDGPUTransforms.so
[5333/7871] Building CXX object tools/mlir/lib/Dialect/GPU/Pipelines/CMakeFiles/obj.MLIRGPUPipelines.dir/GPUToNVVMPipeline.cpp.o
[5334/7871] Building CXX object tools/mlir/lib/Dialect/Tosa/CMakeFiles/obj.MLIRTosaShardingInterfaceImpl.dir/IR/ShardingInterfaceImpl.cpp.o
[5335/7871] Linking CXX shared library lib/libMLIRCAPITransforms.so.21.0git
[5336/7871] Linking CXX shared library lib/libMLIRBufferizationTransforms.so.21.0git
[5337/7871] Creating library symlink lib/libMLIRBufferizationTransforms.so
[5338/7871] Linking CXX shared library lib/libMLIRMPIDialect.so.21.0git
FAILED: lib/libMLIRMPIDialect.so.21.0git 
: && /usr/bin/c++ -fPIC -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-uninitialized -Wno-nonnull -Wno-class-memaccess -Wno-redundant-move -Wno-pessimizing-move -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wno-misleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -Wundef -Wno-unused-but-set-parameter -Wno-deprecated-copy -O3 -DNDEBUG  -Wl,-z,defs -Wl,-z,nodelete   -Wl,-rpath-link,/home/botworker/bbot/amdgpu-offload-rhel-9-cmake-build-only/build/./lib  -Wl,--gc-sections -shared -Wl,-soname,libMLIRMPIDialect.so.21.0git -o lib/libMLIRMPIDialect.so.21.0git tools/mlir/lib/Dialect/MPI/IR/CMakeFiles/obj.MLIRMPIDialect.dir/MPIOps.cpp.o tools/mlir/lib/Dialect/MPI/IR/CMakeFiles/obj.MLIRMPIDialect.dir/MPI.cpp.o  -Wl,-rpath,"\$ORIGIN/../lib:/home/botworker/bbot/amdgpu-offload-rhel-9-cmake-build-only/build/lib:"  lib/libMLIRMemRefDialect.so.21.0git  lib/libMLIRArithUtils.so.21.0git  lib/libMLIRComplexDialect.so.21.0git  lib/libMLIRArithDialect.so.21.0git  lib/libMLIRDialect.so.21.0git  lib/libMLIRCastInterfaces.so.21.0git  lib/libMLIRUBDialect.so.21.0git  lib/libMLIRDialectUtils.so.21.0git  lib/libMLIRInferIntRangeCommon.so.21.0git  lib/libMLIRMemorySlotInterfaces.so.21.0git  lib/libMLIRShapedOpInterfaces.so.21.0git  lib/libMLIRValueBoundsOpInterface.so.21.0git  lib/libMLIRAnalysis.so.21.0git  lib/libMLIRInferTypeOpInterface.so.21.0git  lib/libMLIRSideEffectInterfaces.so.21.0git  lib/libMLIRControlFlowInterfaces.so.21.0git  lib/libMLIRInferIntRangeInterface.so.21.0git  lib/libMLIRDataLayoutInterfaces.so.21.0git  lib/libMLIRLoopLikeInterface.so.21.0git  lib/libMLIRFunctionInterfaces.so.21.0git  lib/libMLIRCallInterfaces.so.21.0git  lib/libMLIRPresburger.so.21.0git  lib/libMLIRDestinationStyleOpInterface.so.21.0git  lib/libMLIRViewLikeInterface.so.21.0git  lib/libMLIRIR.so.21.0git  lib/libMLIRSupport.so.21.0git  lib/libLLVMSupport.so.21.0git  -Wl,-rpath-link,/home/botworker/bbot/amdgpu-offload-rhel-9-cmake-build-only/build/lib && :
/usr/bin/ld: tools/mlir/lib/Dialect/MPI/IR/CMakeFiles/obj.MLIRMPIDialect.dir/MPIOps.cpp.o: in function `(anonymous namespace)::FoldRank::matchAndRewrite(mlir::mpi::CommRankOp, mlir::PatternRewriter&) const':
MPIOps.cpp:(.text._ZNK12_GLOBAL__N_18FoldRank15matchAndRewriteEN4mlir3mpi10CommRankOpERNS1_15PatternRewriterE+0xae): undefined reference to `mlir::dlti::query(mlir::Operation*, llvm::ArrayRef<llvm::StringRef>, bool)'
collect2: error: ld returned 1 exit status
[5339/7871] Linking CXX shared library lib/libMLIRArithToEmitC.so.21.0git
[5340/7871] Building CXX object tools/mlir/lib/Dialect/Tensor/Extensions/CMakeFiles/obj.MLIRTensorMeshShardingExtensions.dir/MeshShardingExtensions.cpp.o
[5341/7871] Linking CXX shared library lib/libMLIRSCFUtils.so.21.0git
[5342/7871] Linking CXX shared library lib/libMLIRSCFToEmitC.so.21.0git
[5343/7871] Linking CXX shared library lib/libMLIRAMXTransforms.so.21.0git
[5344/7871] Linking CXX shared library lib/libMLIRBufferizationToMemRef.so.21.0git
[5345/7871] Linking CXX shared library lib/libMLIRNVGPUTransforms.so.21.0git
[5346/7871] Linking CXX shared library lib/libMLIROpenACCTransforms.so.21.0git
[5347/7871] Building CXX object tools/mlir/lib/Conversion/GPUToROCDL/CMakeFiles/obj.MLIRGPUToROCDLTransforms.dir/LowerGpuOpsToROCDLOps.cpp.o
[5348/7871] Building CXX object tools/mlir/lib/Conversion/NVGPUToNVVM/CMakeFiles/obj.MLIRNVGPUToNVVM.dir/NVGPUToNVVM.cpp.o
[5349/7871] Linking CXX shared library lib/libMLIRSPIRVDialect.so.21.0git
[5350/7871] Building CXX object tools/mlir/lib/Dialect/Linalg/Transforms/CMakeFiles/obj.MLIRLinalgTransforms.dir/Vectorization.cpp.o
In file included from /usr/include/c++/11/cassert:44,
                 from /home/botworker/bbot/amdgpu-offload-rhel-9-cmake-build-only/llvm-project/llvm/include/llvm/Support/GenericDomTree.h:36,
                 from /home/botworker/bbot/amdgpu-offload-rhel-9-cmake-build-only/llvm-project/mlir/include/mlir/IR/Dominance.h:23,
                 from /home/botworker/bbot/amdgpu-offload-rhel-9-cmake-build-only/llvm-project/mlir/include/mlir/Interfaces/MemorySlotInterfaces.h:12,
                 from /home/botworker/bbot/amdgpu-offload-rhel-9-cmake-build-only/llvm-project/mlir/include/mlir/Dialect/MemRef/IR/MemRef.h:22,
                 from /home/botworker/bbot/amdgpu-offload-rhel-9-cmake-build-only/llvm-project/mlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h:17,
                 from /home/botworker/bbot/amdgpu-offload-rhel-9-cmake-build-only/llvm-project/mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp:19:
/home/botworker/bbot/amdgpu-offload-rhel-9-cmake-build-only/llvm-project/mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp: In function ‘mlir::Operation* createWriteOrMaskedWrite(mlir::OpBuilder&, mlir::Location, mlir::Value, mlir::Value, llvm::SmallVector<mlir::Value>, bool)’:
/home/botworker/bbot/amdgpu-offload-rhel-9-cmake-build-only/llvm-project/mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp:1656:63: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
 1656 |          writeIndices.size() == static_cast<size_t>(destRank) &&
      |          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
 1657 |              "Invalid number of write indices!");
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
[5351/7871] Building CXX object tools/mlir/lib/Conversion/GPUCommon/CMakeFiles/obj.MLIRGPUToGPURuntimeTransforms.dir/GPUToLLVMConversion.cpp.o
[5352/7871] Building CXX object tools/mlir/lib/Conversion/MathToROCDL/CMakeFiles/obj.MLIRMathToROCDL.dir/MathToROCDL.cpp.o
[5353/7871] Building CXX object tools/mlir/lib/Dialect/NVGPU/TransformOps/CMakeFiles/obj.MLIRNVGPUTransformOps.dir/NVGPUTransformOps.cpp.o
[5354/7871] Building CXX object tools/mlir/test/lib/Conversion/MemRefToLLVM/CMakeFiles/MLIRTestMemRefToLLVMWithTransforms.dir/TestMemRefToLLVMWithTransforms.cpp.o
[5355/7871] Building CXX object tools/mlir/lib/Dialect/GPU/TransformOps/CMakeFiles/obj.MLIRGPUTransformOps.dir/GPUTransformOps.cpp.o
[5356/7871] Building CXX object tools/mlir/test/lib/Dialect/Linalg/CMakeFiles/MLIRLinalgTestPasses.dir/TestLinalgDropUnitDims.cpp.o
[5357/7871] Building CXX object tools/mlir/lib/CAPI/Dialect/CMakeFiles/obj.MLIRCAPILinalg.dir/LinalgPasses.cpp.o
[5358/7871] Building CXX object tools/mlir/lib/Dialect/Linalg/TransformOps/CMakeFiles/obj.MLIRLinalgTransformOps.dir/LinalgTransformOps.cpp.o
[5359/7871] Building CXX object tools/mlir/lib/Dialect/SCF/TransformOps/CMakeFiles/obj.MLIRSCFTransformOps.dir/SCFTransformOps.cpp.o
Step 7 (build cmake config) failure: build cmake config (failure)
...
[5329/7871] Creating library symlink lib/libMLIRMLProgramDialect.so
[5330/7871] Creating library symlink lib/libMLIRArmSVETransforms.so
[5331/7871] Linking CXX shared library lib/libMLIRAMDGPUTransforms.so.21.0git
[5332/7871] Creating library symlink lib/libMLIRAMDGPUTransforms.so
[5333/7871] Building CXX object tools/mlir/lib/Dialect/GPU/Pipelines/CMakeFiles/obj.MLIRGPUPipelines.dir/GPUToNVVMPipeline.cpp.o
[5334/7871] Building CXX object tools/mlir/lib/Dialect/Tosa/CMakeFiles/obj.MLIRTosaShardingInterfaceImpl.dir/IR/ShardingInterfaceImpl.cpp.o
[5335/7871] Linking CXX shared library lib/libMLIRCAPITransforms.so.21.0git
[5336/7871] Linking CXX shared library lib/libMLIRBufferizationTransforms.so.21.0git
[5337/7871] Creating library symlink lib/libMLIRBufferizationTransforms.so
[5338/7871] Linking CXX shared library lib/libMLIRMPIDialect.so.21.0git
FAILED: lib/libMLIRMPIDialect.so.21.0git 
: && /usr/bin/c++ -fPIC -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-uninitialized -Wno-nonnull -Wno-class-memaccess -Wno-redundant-move -Wno-pessimizing-move -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wno-misleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -Wundef -Wno-unused-but-set-parameter -Wno-deprecated-copy -O3 -DNDEBUG  -Wl,-z,defs -Wl,-z,nodelete   -Wl,-rpath-link,/home/botworker/bbot/amdgpu-offload-rhel-9-cmake-build-only/build/./lib  -Wl,--gc-sections -shared -Wl,-soname,libMLIRMPIDialect.so.21.0git -o lib/libMLIRMPIDialect.so.21.0git tools/mlir/lib/Dialect/MPI/IR/CMakeFiles/obj.MLIRMPIDialect.dir/MPIOps.cpp.o tools/mlir/lib/Dialect/MPI/IR/CMakeFiles/obj.MLIRMPIDialect.dir/MPI.cpp.o  -Wl,-rpath,"\$ORIGIN/../lib:/home/botworker/bbot/amdgpu-offload-rhel-9-cmake-build-only/build/lib:"  lib/libMLIRMemRefDialect.so.21.0git  lib/libMLIRArithUtils.so.21.0git  lib/libMLIRComplexDialect.so.21.0git  lib/libMLIRArithDialect.so.21.0git  lib/libMLIRDialect.so.21.0git  lib/libMLIRCastInterfaces.so.21.0git  lib/libMLIRUBDialect.so.21.0git  lib/libMLIRDialectUtils.so.21.0git  lib/libMLIRInferIntRangeCommon.so.21.0git  lib/libMLIRMemorySlotInterfaces.so.21.0git  lib/libMLIRShapedOpInterfaces.so.21.0git  lib/libMLIRValueBoundsOpInterface.so.21.0git  lib/libMLIRAnalysis.so.21.0git  lib/libMLIRInferTypeOpInterface.so.21.0git  lib/libMLIRSideEffectInterfaces.so.21.0git  lib/libMLIRControlFlowInterfaces.so.21.0git  lib/libMLIRInferIntRangeInterface.so.21.0git  lib/libMLIRDataLayoutInterfaces.so.21.0git  lib/libMLIRLoopLikeInterface.so.21.0git  lib/libMLIRFunctionInterfaces.so.21.0git  lib/libMLIRCallInterfaces.so.21.0git  lib/libMLIRPresburger.so.21.0git  lib/libMLIRDestinationStyleOpInterface.so.21.0git  lib/libMLIRViewLikeInterface.so.21.0git  lib/libMLIRIR.so.21.0git  lib/libMLIRSupport.so.21.0git  lib/libLLVMSupport.so.21.0git  -Wl,-rpath-link,/home/botworker/bbot/amdgpu-offload-rhel-9-cmake-build-only/build/lib && :
/usr/bin/ld: tools/mlir/lib/Dialect/MPI/IR/CMakeFiles/obj.MLIRMPIDialect.dir/MPIOps.cpp.o: in function `(anonymous namespace)::FoldRank::matchAndRewrite(mlir::mpi::CommRankOp, mlir::PatternRewriter&) const':
MPIOps.cpp:(.text._ZNK12_GLOBAL__N_18FoldRank15matchAndRewriteEN4mlir3mpi10CommRankOpERNS1_15PatternRewriterE+0xae): undefined reference to `mlir::dlti::query(mlir::Operation*, llvm::ArrayRef<llvm::StringRef>, bool)'
collect2: error: ld returned 1 exit status
[5339/7871] Linking CXX shared library lib/libMLIRArithToEmitC.so.21.0git
[5340/7871] Building CXX object tools/mlir/lib/Dialect/Tensor/Extensions/CMakeFiles/obj.MLIRTensorMeshShardingExtensions.dir/MeshShardingExtensions.cpp.o
[5341/7871] Linking CXX shared library lib/libMLIRSCFUtils.so.21.0git
[5342/7871] Linking CXX shared library lib/libMLIRSCFToEmitC.so.21.0git
[5343/7871] Linking CXX shared library lib/libMLIRAMXTransforms.so.21.0git
[5344/7871] Linking CXX shared library lib/libMLIRBufferizationToMemRef.so.21.0git
[5345/7871] Linking CXX shared library lib/libMLIRNVGPUTransforms.so.21.0git
[5346/7871] Linking CXX shared library lib/libMLIROpenACCTransforms.so.21.0git
[5347/7871] Building CXX object tools/mlir/lib/Conversion/GPUToROCDL/CMakeFiles/obj.MLIRGPUToROCDLTransforms.dir/LowerGpuOpsToROCDLOps.cpp.o
[5348/7871] Building CXX object tools/mlir/lib/Conversion/NVGPUToNVVM/CMakeFiles/obj.MLIRNVGPUToNVVM.dir/NVGPUToNVVM.cpp.o
[5349/7871] Linking CXX shared library lib/libMLIRSPIRVDialect.so.21.0git
[5350/7871] Building CXX object tools/mlir/lib/Dialect/Linalg/Transforms/CMakeFiles/obj.MLIRLinalgTransforms.dir/Vectorization.cpp.o
In file included from /usr/include/c++/11/cassert:44,
                 from /home/botworker/bbot/amdgpu-offload-rhel-9-cmake-build-only/llvm-project/llvm/include/llvm/Support/GenericDomTree.h:36,
                 from /home/botworker/bbot/amdgpu-offload-rhel-9-cmake-build-only/llvm-project/mlir/include/mlir/IR/Dominance.h:23,
                 from /home/botworker/bbot/amdgpu-offload-rhel-9-cmake-build-only/llvm-project/mlir/include/mlir/Interfaces/MemorySlotInterfaces.h:12,
                 from /home/botworker/bbot/amdgpu-offload-rhel-9-cmake-build-only/llvm-project/mlir/include/mlir/Dialect/MemRef/IR/MemRef.h:22,
                 from /home/botworker/bbot/amdgpu-offload-rhel-9-cmake-build-only/llvm-project/mlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h:17,
                 from /home/botworker/bbot/amdgpu-offload-rhel-9-cmake-build-only/llvm-project/mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp:19:
/home/botworker/bbot/amdgpu-offload-rhel-9-cmake-build-only/llvm-project/mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp: In function ‘mlir::Operation* createWriteOrMaskedWrite(mlir::OpBuilder&, mlir::Location, mlir::Value, mlir::Value, llvm::SmallVector<mlir::Value>, bool)’:
/home/botworker/bbot/amdgpu-offload-rhel-9-cmake-build-only/llvm-project/mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp:1656:63: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
 1656 |          writeIndices.size() == static_cast<size_t>(destRank) &&
      |          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
 1657 |              "Invalid number of write indices!");
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
[5351/7871] Building CXX object tools/mlir/lib/Conversion/GPUCommon/CMakeFiles/obj.MLIRGPUToGPURuntimeTransforms.dir/GPUToLLVMConversion.cpp.o
[5352/7871] Building CXX object tools/mlir/lib/Conversion/MathToROCDL/CMakeFiles/obj.MLIRMathToROCDL.dir/MathToROCDL.cpp.o
[5353/7871] Building CXX object tools/mlir/lib/Dialect/NVGPU/TransformOps/CMakeFiles/obj.MLIRNVGPUTransformOps.dir/NVGPUTransformOps.cpp.o
[5354/7871] Building CXX object tools/mlir/test/lib/Conversion/MemRefToLLVM/CMakeFiles/MLIRTestMemRefToLLVMWithTransforms.dir/TestMemRefToLLVMWithTransforms.cpp.o
[5355/7871] Building CXX object tools/mlir/lib/Dialect/GPU/TransformOps/CMakeFiles/obj.MLIRGPUTransformOps.dir/GPUTransformOps.cpp.o
[5356/7871] Building CXX object tools/mlir/test/lib/Dialect/Linalg/CMakeFiles/MLIRLinalgTestPasses.dir/TestLinalgDropUnitDims.cpp.o
[5357/7871] Building CXX object tools/mlir/lib/CAPI/Dialect/CMakeFiles/obj.MLIRCAPILinalg.dir/LinalgPasses.cpp.o
[5358/7871] Building CXX object tools/mlir/lib/Dialect/Linalg/TransformOps/CMakeFiles/obj.MLIRLinalgTransformOps.dir/LinalgTransformOps.cpp.o
[5359/7871] Building CXX object tools/mlir/lib/Dialect/SCF/TransformOps/CMakeFiles/obj.MLIRSCFTransformOps.dir/SCFTransformOps.cpp.o

@llvm-ci
Copy link
Collaborator

llvm-ci commented Jun 23, 2025

LLVM Buildbot has detected a new failure on builder mlir-nvidia running on mlir-nvidia while building mlir at step 6 "build-check-mlir-build-only".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/138/builds/14975

Here is the relevant piece of the build log for the reference
Step 6 (build-check-mlir-build-only) failure: build (failure)
...
173.997 [1208/16/4053] Creating library symlink lib/libMLIRGPUDialect.so
174.077 [1207/16/4054] Linking CXX shared library lib/libMLIRAffineDialect.so.21.0git
174.086 [1206/16/4055] Creating library symlink lib/libMLIRAffineDialect.so
174.199 [1205/16/4056] Linking CXX shared library lib/libMLIRGPUUtils.so.21.0git
174.207 [1204/16/4057] Creating library symlink lib/libMLIRGPUUtils.so
174.229 [1203/16/4058] Linking CXX shared library lib/libMLIRNVVMDialect.so.21.0git
174.238 [1202/16/4059] Creating library symlink lib/libMLIRNVVMDialect.so
174.312 [1201/16/4060] Linking CXX shared library lib/libMLIRMemRefUtils.so.21.0git
174.321 [1200/16/4061] Creating library symlink lib/libMLIRMemRefUtils.so
174.352 [1199/16/4062] Linking CXX shared library lib/libMLIRMPIDialect.so.21.0git
FAILED: lib/libMLIRMPIDialect.so.21.0git 
: && /usr/bin/clang++ -fPIC -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -Wundef -Werror=mismatched-tags -Werror=global-constructors -O3 -DNDEBUG  -Wl,-z,defs -Wl,-z,nodelete -fuse-ld=lld -Wl,--color-diagnostics   -Wl,--gc-sections -shared -Wl,-soname,libMLIRMPIDialect.so.21.0git -o lib/libMLIRMPIDialect.so.21.0git tools/mlir/lib/Dialect/MPI/IR/CMakeFiles/obj.MLIRMPIDialect.dir/MPIOps.cpp.o tools/mlir/lib/Dialect/MPI/IR/CMakeFiles/obj.MLIRMPIDialect.dir/MPI.cpp.o  -Wl,-rpath,"\$ORIGIN/../lib:/vol/worker/mlir-nvidia/mlir-nvidia/llvm.obj/lib:"  lib/libMLIRMemRefDialect.so.21.0git  lib/libMLIRArithUtils.so.21.0git  lib/libMLIRComplexDialect.so.21.0git  lib/libMLIRArithDialect.so.21.0git  lib/libMLIRDialect.so.21.0git  lib/libMLIRCastInterfaces.so.21.0git  lib/libMLIRUBDialect.so.21.0git  lib/libMLIRDialectUtils.so.21.0git  lib/libMLIRInferIntRangeCommon.so.21.0git  lib/libMLIRMemorySlotInterfaces.so.21.0git  lib/libMLIRShapedOpInterfaces.so.21.0git  lib/libMLIRValueBoundsOpInterface.so.21.0git  lib/libMLIRAnalysis.so.21.0git  lib/libMLIRInferTypeOpInterface.so.21.0git  lib/libMLIRSideEffectInterfaces.so.21.0git  lib/libMLIRControlFlowInterfaces.so.21.0git  lib/libMLIRInferIntRangeInterface.so.21.0git  lib/libMLIRDataLayoutInterfaces.so.21.0git  lib/libMLIRLoopLikeInterface.so.21.0git  lib/libMLIRFunctionInterfaces.so.21.0git  lib/libMLIRCallInterfaces.so.21.0git  lib/libMLIRPresburger.so.21.0git  lib/libMLIRDestinationStyleOpInterface.so.21.0git  lib/libMLIRViewLikeInterface.so.21.0git  lib/libMLIRIR.so.21.0git  lib/libMLIRSupport.so.21.0git  lib/libLLVMSupport.so.21.0git  -Wl,-rpath-link,/vol/worker/mlir-nvidia/mlir-nvidia/llvm.obj/lib && :
ld.lld: error: undefined symbol: mlir::dlti::query(mlir::Operation*, llvm::ArrayRef<llvm::StringRef>, bool)
>>> referenced by MPIOps.cpp
>>>               tools/mlir/lib/Dialect/MPI/IR/CMakeFiles/obj.MLIRMPIDialect.dir/MPIOps.cpp.o:((anonymous namespace)::FoldRank::matchAndRewrite(mlir::mpi::CommRankOp, mlir::PatternRewriter&) const)
clang: error: linker command failed with exit code 1 (use -v to see invocation)
174.449 [1199/15/4063] Linking CXX shared library lib/libMLIRAMDGPUDialect.so.21.0git
174.620 [1199/14/4064] Building CXX object tools/mlir/lib/Dialect/Tensor/Extensions/CMakeFiles/obj.MLIRTensorMeshShardingExtensions.dir/MeshShardingExtensions.cpp.o
177.252 [1199/13/4065] Building CXX object tools/mlir/lib/Dialect/Linalg/Transforms/CMakeFiles/obj.MLIRLinalgTransforms.dir/Vectorization.cpp.o
177.634 [1199/12/4066] Building CXX object tools/mlir/test/lib/Dialect/ArmSME/CMakeFiles/MLIRArmSMETestPasses.dir/TestLowerToArmSME.cpp.o
180.765 [1199/11/4067] Building CXX object tools/mlir/lib/Dialect/Tosa/CMakeFiles/obj.MLIRTosaShardingInterfaceImpl.dir/IR/ShardingInterfaceImpl.cpp.o
185.988 [1199/10/4068] Building CXX object tools/mlir/lib/Dialect/Mesh/IR/CMakeFiles/obj.MLIRMeshDialect.dir/MeshOps.cpp.o
187.693 [1199/9/4069] Building CXX object tools/mlir/lib/Dialect/SCF/TransformOps/CMakeFiles/obj.MLIRSCFTransformOps.dir/SCFTransformOps.cpp.o
190.738 [1199/8/4070] Building CXX object tools/mlir/lib/Dialect/SparseTensor/Pipelines/CMakeFiles/obj.MLIRSparseTensorPipelines.dir/SparseTensorPipelines.cpp.o
190.861 [1199/7/4071] Building CXX object tools/mlir/lib/Dialect/SparseTensor/Transforms/CMakeFiles/obj.MLIRSparseTensorTransforms.dir/SparseTensorPasses.cpp.o
195.381 [1199/6/4072] Building CXX object tools/mlir/lib/Dialect/NVGPU/TransformOps/CMakeFiles/obj.MLIRNVGPUTransformOps.dir/NVGPUTransformOps.cpp.o
199.507 [1199/5/4073] Building CXX object tools/mlir/lib/Dialect/Vector/TransformOps/CMakeFiles/obj.MLIRVectorTransformOps.dir/VectorTransformOps.cpp.o
207.645 [1199/4/4074] Building CXX object tools/mlir/lib/Dialect/Linalg/IR/CMakeFiles/obj.MLIRLinalgDialect.dir/LinalgDialect.cpp.o
208.448 [1199/3/4075] Building CXX object tools/mlir/lib/CAPI/RegisterEverything/CMakeFiles/obj.MLIRCAPIRegisterEverything.dir/RegisterEverything.cpp.o
213.576 [1199/2/4076] Building CXX object tools/mlir/unittests/ExecutionEngine/CMakeFiles/MLIRExecutionEngineTests.dir/Invoke.cpp.o
226.277 [1199/1/4077] Building CXX object tools/mlir/lib/Dialect/Tosa/CMakeFiles/obj.MLIRTosaDialect.dir/IR/TosaOps.cpp.o
ninja: build stopped: subcommand failed.

fschlimb added a commit that referenced this pull request Jun 23, 2025
Fixing buildbot errors on some platforms like 
```
undefined reference to `mlir::dlti::query(mlir::Operation*, llvm::ArrayRef<llvm::StringRef>, bool)'
```
Introduced in #144716
miguelcsx pushed a commit to miguelcsx/llvm-project that referenced this pull request Jun 23, 2025
Adding lowering mesh.allreduce to mpi.allreduce.
Minor restructuring to increase code reuse.
miguelcsx pushed a commit to miguelcsx/llvm-project that referenced this pull request Jun 23, 2025
…145316)

Fixing buildbot errors on some platforms like 
```
undefined reference to `mlir::dlti::query(mlir::Operation*, llvm::ArrayRef<llvm::StringRef>, bool)'
```
Introduced in llvm#144716
Jaddyen pushed a commit to Jaddyen/llvm-project that referenced this pull request Jun 23, 2025
Adding lowering mesh.allreduce to mpi.allreduce.
Minor restructuring to increase code reuse.
Jaddyen pushed a commit to Jaddyen/llvm-project that referenced this pull request Jun 23, 2025
…145316)

Fixing buildbot errors on some platforms like 
```
undefined reference to `mlir::dlti::query(mlir::Operation*, llvm::ArrayRef<llvm::StringRef>, bool)'
```
Introduced in llvm#144716
anthonyhatran pushed a commit to anthonyhatran/llvm-project that referenced this pull request Jun 26, 2025
Adding lowering mesh.allreduce to mpi.allreduce.
Minor restructuring to increase code reuse.
anthonyhatran pushed a commit to anthonyhatran/llvm-project that referenced this pull request Jun 26, 2025
…145316)

Fixing buildbot errors on some platforms like 
```
undefined reference to `mlir::dlti::query(mlir::Operation*, llvm::ArrayRef<llvm::StringRef>, bool)'
```
Introduced in llvm#144716
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants