[Mlir-commits] [mlir] [mlir][EmitC] Add rank-0 MemRef conversion (PR #205774)
Gil Rapaport
llvmlistbot at llvm.org
Thu Jul 9 22:14:47 PDT 2026
================
@@ -280,6 +289,35 @@ struct ConvertCopy final : public OpConversionPattern<memref::CopyOp> {
return rewriter.notifyMatchFailure(
loc, "incompatible target memref type for EmitC conversion");
+ if (srcMemrefType.getRank() == 0) {
+ assert(targetMemrefType.getRank() == 0 &&
+ "target must have same rank as source");
+ Type elementType =
+ getTypeConverter()->convertType(srcMemrefType.getElementType());
+ if (!elementType)
+ return rewriter.notifyMatchFailure(loc, "cannot convert element type");
+
+ Value srcPtr = getMemRefPointer(operands.getSource());
+ Value targetPtr = getMemRefPointer(operands.getTarget());
+ if (!srcPtr || !targetPtr)
+ return rewriter.notifyMatchFailure(loc, "expected pointer operands");
+
+ Value zeroIndex = emitc::ConstantOp::create(
+ rewriter, loc, rewriter.getIndexType(), rewriter.getIndexAttr(0));
+ auto srcLValue = emitc::SubscriptOp::create(
----------------
aniragil wrote:
```suggestion
Value srcLValue = emitc::SubscriptOp::create(
```
https://github.com/llvm/llvm-project/pull/205774
More information about the Mlir-commits
mailing list