Skip to content

Commit b75feca

Browse files
committed
[CIR][Lowering][MLIR] Export cir::lowerArrayType()
Export cir::lowerArrayType() so a CIR client can use this function to lower some !cir.array.
1 parent 1c4f579 commit b75feca

File tree

2 files changed

+5
-3
lines changed

2 files changed

+5
-3
lines changed

clang/include/clang/CIR/LowerToMLIR.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,17 @@
1212
#ifndef CLANG_CIR_LOWERTOMLIR_H
1313
#define CLANG_CIR_LOWERTOMLIR_H
1414

15+
#include "clang/CIR/Dialect/IR/CIRTypes.h"
16+
#include "mlir/Interfaces/DataLayoutInterfaces.h"
1517
#include "mlir/Transforms/DialectConversion.h"
1618
#include <functional>
1719

1820
namespace cir {
1921

2022
void populateCIRLoopToSCFConversionPatterns(mlir::RewritePatternSet &patterns,
2123
mlir::TypeConverter &converter);
24+
mlir::Type lowerArrayType(cir::ArrayType type, bool hasValueSemantics,
25+
mlir::TypeConverter &converter);
2226
mlir::TypeConverter prepareTypeConverter(mlir::DataLayout &dataLayout);
2327
void runAtStartOfConvertCIRToMLIRPass(
2428
std::function<void(mlir::ConversionTarget)>);

clang/lib/CIR/Lowering/ThroughMLIR/LowerCIRToMLIR.cpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1408,7 +1408,7 @@ class CIRPtrStrideOpLowering
14081408
mlir::ConversionPatternRewriter &rewriter) const override {
14091409
if (!isCastArrayToPtrConsumer(op))
14101410
return mlir::failure();
1411-
if (!isLoadStoreOrCastArrayToPtrProduer(op))
1411+
if (!isLoadStoreOrCastArrayToPtrProducer(op))
14121412
return mlir::failure();
14131413
auto baseOp = adaptor.getBase().getDefiningOp();
14141414
if (!baseOp)
@@ -1456,7 +1456,6 @@ void populateCIRToMLIRConversionPatterns(mlir::RewritePatternSet &patterns,
14561456
cirDataLayout);
14571457
}
14581458

1459-
namespace {
14601459
// Lower a cir.array either as a memref when it has a reference semantics or as
14611460
// a tensor when it has a value semantics (like inside a struct or union)
14621461
mlir::Type lowerArrayType(cir::ArrayType type, bool hasValueSemantics,
@@ -1477,7 +1476,6 @@ mlir::Type lowerArrayType(cir::ArrayType type, bool hasValueSemantics,
14771476
return mlir::RankedTensorType::get(shape, elementType);
14781477
return mlir::MemRefType::get(shape, elementType);
14791478
}
1480-
} // namespace
14811479

14821480
mlir::TypeConverter prepareTypeConverter(mlir::DataLayout &dataLayout) {
14831481
mlir::TypeConverter converter;

0 commit comments

Comments
 (0)