[PATCH] D75575: [MLIR] Expose makeCanonicalStridedLayoutExpr in StandardTypes.h.
Alexander Belyaev via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Mar 3 15:00:44 PST 2020
pifon2a created this revision.
Herald added subscribers: llvm-commits, Joonsoo, liufengdb, aartbik, lucyrfox, mgester, arpith-jacob, nicolasvasilache, antiagainst, shauheen, burmako, jpienaar, rriddle, mehdi_amini.
Herald added a reviewer: rriddle.
Herald added a project: LLVM.
pifon2a added a reviewer: nicolasvasilache.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D75575
Files:
mlir/include/mlir/IR/StandardTypes.h
mlir/lib/IR/StandardTypes.cpp
Index: mlir/lib/IR/StandardTypes.cpp
===================================================================
--- mlir/lib/IR/StandardTypes.cpp
+++ mlir/lib/IR/StandardTypes.cpp
@@ -456,19 +456,8 @@
return success();
}
-/// Given MemRef `sizes` that are either static or dynamic, returns the
-/// canonical "contiguous" strides AffineExpr. Strides are multiplicative and
-/// once a dynamic dimension is encountered, all canonical strides become
-/// dynamic and need to be encoded with a different symbol.
-/// For canonical strides expressions, the offset is always 0 and and fastest
-/// varying stride is always `1`.
-///
-/// Examples:
-/// - memref<3x4x5xf32> has canonical stride expression `20*d0 + 5*d1 + d2`.
-/// - memref<3x?x5xf32> has canonical stride expression `s0*d0 + 5*d1 + d2`.
-/// - memref<3x4x?xf32> has canonical stride expression `s1*d0 + s0*d1 + d2`.
-static AffineExpr makeCanonicalStridedLayoutExpr(ArrayRef<int64_t> sizes,
- MLIRContext *context) {
+AffineExpr mlir::makeCanonicalStridedLayoutExpr(ArrayRef<int64_t> sizes,
+ MLIRContext *context) {
AffineExpr expr;
bool dynamicPoisonBit = false;
unsigned nSymbols = 0;
Index: mlir/include/mlir/IR/StandardTypes.h
===================================================================
--- mlir/include/mlir/IR/StandardTypes.h
+++ mlir/include/mlir/IR/StandardTypes.h
@@ -658,6 +658,20 @@
/// `t` with simplified layout.
MemRefType canonicalizeStridedLayout(MemRefType t);
+/// Given MemRef `sizes` that are either static or dynamic, returns the
+/// canonical "contiguous" strides AffineExpr. Strides are multiplicative and
+/// once a dynamic dimension is encountered, all canonical strides become
+/// dynamic and need to be encoded with a different symbol.
+/// For canonical strides expressions, the offset is always 0 and and fastest
+/// varying stride is always `1`.
+///
+/// Examples:
+/// - memref<3x4x5xf32> has canonical stride expression `20*d0 + 5*d1 + d2`.
+/// - memref<3x?x5xf32> has canonical stride expression `s0*d0 + 5*d1 + d2`.
+/// - memref<3x4x?xf32> has canonical stride expression `s1*d0 + s0*d1 + d2`.
+AffineExpr makeCanonicalStridedLayoutExpr(ArrayRef<int64_t> sizes,
+ MLIRContext *context);
+
/// Return true if the layout for `t` is compatible with strided semantics.
bool isStrided(MemRefType t);
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D75575.248049.patch
Type: text/x-patch
Size: 2465 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200303/4b791f1d/attachment.bin>
More information about the llvm-commits
mailing list