[Mlir-commits] [mlir] [mlir][memref][llvm] Infer llvm alias scopes attrs from `memref.distinct_objects` (PR #160512)
Krzysztof Drewniak
llvmlistbot at llvm.org
Wed Sep 24 10:35:53 PDT 2025
================
@@ -911,15 +974,22 @@ struct StoreOpLowering : public LoadStoreOpLowering<memref::StoreOp> {
ConversionPatternRewriter &rewriter) const override {
auto type = op.getMemRefType();
+ SmallVector<std::pair<StringAttr, Attribute>> importantAttrs =
+ copyImportantAttrs(op);
+
// Per memref.store spec, the indices must be in-bounds:
// 0 <= idx < dim_size, and additionally all offsets are non-negative,
// hence inbounds and nuw are used when lowering to llvm.getelementptr.
Value dataPtr =
getStridedElementPtr(rewriter, op.getLoc(), type, adaptor.getMemref(),
adaptor.getIndices(), kNoWrapFlags);
- rewriter.replaceOpWithNewOp<LLVM::StoreOp>(op, adaptor.getValue(), dataPtr,
- op.getAlignment().value_or(0),
- false, op.getNontemporal());
+ auto newOp = rewriter.replaceOpWithNewOp<LLVM::StoreOp>(
+ op, adaptor.getValue(), dataPtr, op.getAlignment().value_or(0), false,
+ op.getNontemporal());
+
+ for (auto [nameAttr, attr] : importantAttrs)
----------------
krzysz00 wrote:
You don't need the for loop, I think, or putting the extraction beforehand. You could just `setDiscardableAttrs()` from a filtered list or something to that effect.
https://github.com/llvm/llvm-project/pull/160512
More information about the Mlir-commits
mailing list