[Mlir-commits] [mlir] [mlir][EmitC] Expand the MemRefToEmitC pass - Lowering `extract_strided_metadata` (PR #152208)
Jaden Angella
llvmlistbot at llvm.org
Tue Aug 5 14:40:49 PDT 2025
================
@@ -288,6 +290,70 @@ struct ConvertStore final : public OpConversionPattern<memref::StoreOp> {
return success();
}
};
+
+struct ConvertExtractStridedMetadata final
+ : public OpConversionPattern<memref::ExtractStridedMetadataOp> {
+ using OpConversionPattern::OpConversionPattern;
+
+ LogicalResult
+ matchAndRewrite(memref::ExtractStridedMetadataOp extractStridedMetadataOp,
+ OpAdaptor operands,
+ ConversionPatternRewriter &rewriter) const override {
+ Location loc = extractStridedMetadataOp.getLoc();
+ Value source = extractStridedMetadataOp.getSource();
+
+ MemRefType memrefType = cast<MemRefType>(source.getType());
+ if (!isMemRefTypeLegalForEmitC(memrefType))
+ return rewriter.notifyMatchFailure(
+ loc, "incompatible memref type for EmitC conversion");
+
+ emitc::ConstantOp zeroIndex = rewriter.create<emitc::ConstantOp>(
+ loc, rewriter.getIndexType(), rewriter.getIndexAttr(0));
+ TypedValue<emitc::ArrayType> srcArrayValue =
+ cast<TypedValue<emitc::ArrayType>>(operands.getSource());
+ auto createPointerFromEmitcArray = [loc, &rewriter, &zeroIndex,
----------------
Jaddyen wrote:
This is similar to a lambda we use in this patch: #151206 . I plan on refactoring this.
https://github.com/llvm/llvm-project/pull/152208
More information about the Mlir-commits
mailing list