Skip to content

Commit b43c504

Browse files
[mlir] Declare promised interfaces for the ConvertToLLVM extension (#76341)
This PR adds promised interface declarations for `ConvertToLLVMPatternInterface` in all the dialects that support the `ConvertToLLVM` dialect extension. Promised interfaces allow a dialect to declare that it will have an implementation of a particular interface, crashing the program if one isn't provided when the interface is used.
1 parent 700a192 commit b43c504

File tree

8 files changed

+16
-0
lines changed

8 files changed

+16
-0
lines changed

mlir/lib/Dialect/Arith/IR/ArithDialect.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
//
77
//===----------------------------------------------------------------------===//
88

9+
#include "mlir/Conversion/ConvertToLLVM/ToLLVMInterface.h"
910
#include "mlir/Dialect/Arith/IR/Arith.h"
1011
#include "mlir/Dialect/UB/IR/UBOps.h"
1112
#include "mlir/IR/Builders.h"
@@ -44,6 +45,7 @@ void arith::ArithDialect::initialize() {
4445
#include "mlir/Dialect/Arith/IR/ArithOpsAttributes.cpp.inc"
4546
>();
4647
addInterfaces<ArithInlinerInterface>();
48+
declarePromisedInterface<ArithDialect, ConvertToLLVMPatternInterface>();
4749
}
4850

4951
/// Materialize an integer or floating point constant.

mlir/lib/Dialect/Complex/IR/ComplexDialect.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
//
77
//===----------------------------------------------------------------------===//
88

9+
#include "mlir/Conversion/ConvertToLLVM/ToLLVMInterface.h"
910
#include "mlir/Dialect/Arith/IR/Arith.h"
1011
#include "mlir/Dialect/Complex/IR/Complex.h"
1112
#include "mlir/IR/Builders.h"
@@ -26,6 +27,7 @@ void complex::ComplexDialect::initialize() {
2627
#define GET_ATTRDEF_LIST
2728
#include "mlir/Dialect/Complex/IR/ComplexAttributes.cpp.inc"
2829
>();
30+
declarePromisedInterface<ComplexDialect, ConvertToLLVMPatternInterface>();
2931
}
3032

3133
Operation *complex::ComplexDialect::materializeConstant(OpBuilder &builder,

mlir/lib/Dialect/ControlFlow/IR/ControlFlowOps.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
#include "mlir/Dialect/ControlFlow/IR/ControlFlowOps.h"
1010

11+
#include "mlir/Conversion/ConvertToLLVM/ToLLVMInterface.h"
1112
#include "mlir/Dialect/Arith/IR/Arith.h"
1213
#include "mlir/IR/AffineExpr.h"
1314
#include "mlir/IR/AffineMap.h"
@@ -67,6 +68,7 @@ void ControlFlowDialect::initialize() {
6768
#include "mlir/Dialect/ControlFlow/IR/ControlFlowOps.cpp.inc"
6869
>();
6970
addInterfaces<ControlFlowInlinerInterface>();
71+
declarePromisedInterface<ControlFlowDialect, ConvertToLLVMPatternInterface>();
7072
}
7173

7274
//===----------------------------------------------------------------------===//

mlir/lib/Dialect/Func/IR/FuncOps.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
#include "mlir/Dialect/Func/IR/FuncOps.h"
1010

11+
#include "mlir/Conversion/ConvertToLLVM/ToLLVMInterface.h"
1112
#include "mlir/IR/BuiltinOps.h"
1213
#include "mlir/IR/BuiltinTypes.h"
1314
#include "mlir/IR/IRMapping.h"
@@ -41,6 +42,7 @@ void FuncDialect::initialize() {
4142
#include "mlir/Dialect/Func/IR/FuncOps.cpp.inc"
4243
>();
4344
declarePromisedInterface<FuncDialect, DialectInlinerInterface>();
45+
declarePromisedInterface<FuncDialect, ConvertToLLVMPatternInterface>();
4446
}
4547

4648
/// Materialize a single constant operation from a given attribute value with

mlir/lib/Dialect/Index/IR/IndexDialect.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
//===----------------------------------------------------------------------===//
88

99
#include "mlir/Dialect/Index/IR/IndexDialect.h"
10+
#include "mlir/Conversion/ConvertToLLVM/ToLLVMInterface.h"
1011

1112
using namespace mlir;
1213
using namespace mlir::index;
@@ -18,6 +19,7 @@ using namespace mlir::index;
1819
void IndexDialect::initialize() {
1920
registerAttributes();
2021
registerOperations();
22+
declarePromisedInterface<IndexDialect, ConvertToLLVMPatternInterface>();
2123
}
2224

2325
//===----------------------------------------------------------------------===//

mlir/lib/Dialect/Math/IR/MathDialect.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
//
77
//===----------------------------------------------------------------------===//
88

9+
#include "mlir/Conversion/ConvertToLLVM/ToLLVMInterface.h"
910
#include "mlir/Dialect/Math/IR/Math.h"
1011
#include "mlir/Dialect/UB/IR/UBOps.h"
1112
#include "mlir/Transforms/InliningUtils.h"
@@ -34,4 +35,5 @@ void mlir::math::MathDialect::initialize() {
3435
#include "mlir/Dialect/Math/IR/MathOps.cpp.inc"
3536
>();
3637
addInterfaces<MathInlinerInterface>();
38+
declarePromisedInterface<MathDialect, ConvertToLLVMPatternInterface>();
3739
}

mlir/lib/Dialect/MemRef/IR/MemRefDialect.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
//
77
//===----------------------------------------------------------------------===//
88

9+
#include "mlir/Conversion/ConvertToLLVM/ToLLVMInterface.h"
910
#include "mlir/Dialect/Arith/IR/Arith.h"
1011
#include "mlir/Dialect/MemRef/IR/MemRef.h"
1112
#include "mlir/Interfaces/SideEffectInterfaces.h"
@@ -41,6 +42,7 @@ void mlir::memref::MemRefDialect::initialize() {
4142
#include "mlir/Dialect/MemRef/IR/MemRefOps.cpp.inc"
4243
>();
4344
addInterfaces<MemRefInlinerInterface>();
45+
declarePromisedInterface<MemRefDialect, ConvertToLLVMPatternInterface>();
4446
}
4547

4648
/// Finds the unique dealloc operation (if one exists) for `allocValue`.

mlir/lib/Dialect/UB/IR/UBOps.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
//===----------------------------------------------------------------------===//
88

99
#include "mlir/Dialect/UB/IR/UBOps.h"
10+
#include "mlir/Conversion/ConvertToLLVM/ToLLVMInterface.h"
1011
#include "mlir/Transforms/InliningUtils.h"
1112

1213
#include "mlir/IR/Builders.h"
@@ -45,6 +46,7 @@ void UBDialect::initialize() {
4546
#include "mlir/Dialect/UB/IR/UBOpsAttributes.cpp.inc"
4647
>();
4748
addInterfaces<UBInlinerInterface>();
49+
declarePromisedInterface<UBDialect, ConvertToLLVMPatternInterface>();
4850
}
4951

5052
Operation *UBDialect::materializeConstant(OpBuilder &builder, Attribute value,

0 commit comments

Comments
 (0)