Skip to content

Commit 1b498bd

Browse files
committed
Changed MlirEmitCCmpPredicate from uint64_t to enum
1 parent dbaf3d9 commit 1b498bd

File tree

2 files changed

+34
-6
lines changed

2 files changed

+34
-6
lines changed

mlir/include/mlir-c/Dialect/EmitC.h

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,16 @@ extern "C" {
1919

2020
MLIR_DECLARE_CAPI_DIALECT_REGISTRATION(EmitC, emitc);
2121

22+
enum MlirEmitCCmpPredicate : uint64_t {
23+
MLIR_EMITC_CMP_PREDICATE_EQ = 0,
24+
MLIR_EMITC_CMP_PREDICATE_NE = 1,
25+
MLIR_EMITC_CMP_PREDICATE_LT = 2,
26+
MLIR_EMITC_CMP_PREDICATE_LE = 3,
27+
MLIR_EMITC_CMP_PREDICATE_GT = 4,
28+
MLIR_EMITC_CMP_PREDICATE_GE = 5,
29+
MLIR_EMITC_CMP_PREDICATE_THREE_WAY = 6,
30+
};
31+
2232
//===---------------------------------------------------------------------===//
2333
// ArrayType
2434
//===---------------------------------------------------------------------===//
@@ -98,10 +108,10 @@ MLIR_CAPI_EXPORTED MlirType mlirEmitCSizeTTypeGet(MlirContext ctx);
98108

99109
MLIR_CAPI_EXPORTED bool mlirAttributeIsAEmitCCmpPredicate(MlirAttribute attr);
100110

101-
MLIR_CAPI_EXPORTED MlirAttribute mlirEmitCCmpPredicateAttrGet(MlirContext ctx,
102-
uint64_t val);
111+
MLIR_CAPI_EXPORTED MlirAttribute
112+
mlirEmitCCmpPredicateAttrGet(MlirContext ctx, enum MlirEmitCCmpPredicate val);
103113

104-
MLIR_CAPI_EXPORTED uint64_t
114+
MLIR_CAPI_EXPORTED enum MlirEmitCCmpPredicate
105115
mlirEmitCCmpPredicateAttrGetValue(MlirAttribute attr);
106116

107117
MLIR_CAPI_EXPORTED MlirTypeID mlirEmitCCmpPredicateAttrGetTypeID(void);

mlir/lib/CAPI/Dialect/EmitC.cpp

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,23 @@ using namespace mlir;
1414

1515
MLIR_DEFINE_CAPI_DIALECT_REGISTRATION(EmitC, emitc, mlir::emitc::EmitCDialect)
1616

17+
// Ensure the C-API enums are uint64_t-castable to C++ equivalents.
18+
static_assert(static_cast<uint64_t>(MLIR_EMITC_CMP_PREDICATE_EQ) ==
19+
static_cast<uint64_t>(emitc::CmpPredicate::eq) &&
20+
static_cast<uint64_t>(MLIR_EMITC_CMP_PREDICATE_NE) ==
21+
static_cast<uint64_t>(emitc::CmpPredicate::ne) &&
22+
static_cast<uint64_t>(MLIR_EMITC_CMP_PREDICATE_LT) ==
23+
static_cast<uint64_t>(emitc::CmpPredicate::lt) &&
24+
static_cast<uint64_t>(MLIR_EMITC_CMP_PREDICATE_LE) ==
25+
static_cast<uint64_t>(emitc::CmpPredicate::le) &&
26+
static_cast<uint64_t>(MLIR_EMITC_CMP_PREDICATE_GT) ==
27+
static_cast<uint64_t>(emitc::CmpPredicate::gt) &&
28+
static_cast<uint64_t>(MLIR_EMITC_CMP_PREDICATE_GE) ==
29+
static_cast<uint64_t>(emitc::CmpPredicate::ge) &&
30+
static_cast<uint64_t>(MLIR_EMITC_CMP_PREDICATE_THREE_WAY) ==
31+
static_cast<uint64_t>(emitc::CmpPredicate::three_way),
32+
"MlirEmitCCmpPredicate (C-API) and CmpPredicate (C++) mismatch");
33+
1734
//===---------------------------------------------------------------------===//
1835
// ArrayType
1936
//===---------------------------------------------------------------------===//
@@ -136,13 +153,14 @@ bool mlirAttributeIsAEmitCCmpPredicate(MlirAttribute attr) {
136153
return llvm::isa<emitc::CmpPredicateAttr>(unwrap(attr));
137154
}
138155

139-
MlirAttribute mlirEmitCCmpPredicateAttrGet(MlirContext ctx, uint64_t val) {
156+
MlirAttribute mlirEmitCCmpPredicateAttrGet(MlirContext ctx,
157+
MlirEmitCCmpPredicate val) {
140158
return wrap((Attribute)emitc::CmpPredicateAttr::get(
141159
unwrap(ctx), static_cast<emitc::CmpPredicate>(val)));
142160
}
143161

144-
uint64_t mlirEmitCCmpPredicateAttrGetValue(MlirAttribute attr) {
145-
return static_cast<uint64_t>(
162+
MlirEmitCCmpPredicate mlirEmitCCmpPredicateAttrGetValue(MlirAttribute attr) {
163+
return static_cast<MlirEmitCCmpPredicate>(
146164
llvm::cast<emitc::CmpPredicateAttr>(unwrap(attr)).getValue());
147165
}
148166

0 commit comments

Comments
 (0)