@@ -1087,7 +1087,8 @@ Value ConvertToLLVMPattern::getStridedElementPtr(
1087
1087
1088
1088
// Check if the MemRefType `type` is supported by the lowering. We currently
1089
1089
// only support memrefs with identity maps.
1090
- bool ConvertToLLVMPattern::isSupportedMemRefType (MemRefType type) const {
1090
+ bool ConvertToLLVMPattern::isConvertibleAndHasIdentityMaps (
1091
+ MemRefType type) const {
1091
1092
if (!typeConverter->convertType (type.getElementType ()))
1092
1093
return false ;
1093
1094
return type.getAffineMaps ().empty () ||
@@ -1105,7 +1106,7 @@ void ConvertToLLVMPattern::getMemRefDescriptorSizes(
1105
1106
Location loc, MemRefType memRefType, ArrayRef<Value> dynamicSizes,
1106
1107
ConversionPatternRewriter &rewriter, SmallVectorImpl<Value> &sizes,
1107
1108
SmallVectorImpl<Value> &strides, Value &sizeBytes) const {
1108
- assert (isSupportedMemRefType (memRefType) &&
1109
+ assert (isConvertibleAndHasIdentityMaps (memRefType) &&
1109
1110
" layout maps must have been normalized away" );
1110
1111
1111
1112
sizes.reserve (memRefType.getRank ());
@@ -1977,7 +1978,7 @@ struct AllocLikeOpLowering : public ConvertToLLVMPattern {
1977
1978
1978
1979
LogicalResult match (Operation *op) const override {
1979
1980
MemRefType memRefType = getMemRefResultType (op);
1980
- return success (isSupportedMemRefType (memRefType));
1981
+ return success (isConvertibleAndHasIdentityMaps (memRefType));
1981
1982
}
1982
1983
1983
1984
// An `alloc` is converted into a definition of a memref descriptor value and
@@ -2411,7 +2412,7 @@ struct GlobalMemrefOpLowering : public ConvertOpToLLVMPattern<GlobalMemrefOp> {
2411
2412
matchAndRewrite (GlobalMemrefOp global, ArrayRef<Value> operands,
2412
2413
ConversionPatternRewriter &rewriter) const override {
2413
2414
MemRefType type = global.type ().cast <MemRefType>();
2414
- if (!isSupportedMemRefType (type))
2415
+ if (!isConvertibleAndHasIdentityMaps (type))
2415
2416
return failure ();
2416
2417
2417
2418
LLVM::LLVMType arrayTy =
@@ -3031,12 +3032,12 @@ struct RankOpLowering : public ConvertOpToLLVMPattern<RankOp> {
3031
3032
template <typename Derived>
3032
3033
struct LoadStoreOpLowering : public ConvertOpToLLVMPattern <Derived> {
3033
3034
using ConvertOpToLLVMPattern<Derived>::ConvertOpToLLVMPattern;
3034
- using ConvertOpToLLVMPattern<Derived>::isSupportedMemRefType ;
3035
+ using ConvertOpToLLVMPattern<Derived>::isConvertibleAndHasIdentityMaps ;
3035
3036
using Base = LoadStoreOpLowering<Derived>;
3036
3037
3037
3038
LogicalResult match (Derived op) const override {
3038
3039
MemRefType type = op.getMemRefType ();
3039
- return isSupportedMemRefType (type) ? success () : failure ();
3040
+ return isConvertibleAndHasIdentityMaps (type) ? success () : failure ();
3040
3041
}
3041
3042
};
3042
3043
0 commit comments