Skip to content

Commit cb1ad98

Browse files
authored
[mlir][llvmir] implement missing attrs getChecked (#121248)
1 parent 8e32959 commit cb1ad98

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

mlir/lib/Dialect/LLVMIR/IR/LLVMAttrs.cpp

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ void LLVMDialect::registerAttributes() {
4848
addAttributes<
4949
#define GET_ATTRDEF_LIST
5050
#include "mlir/Dialect/LLVMIR/LLVMOpsAttrDefs.cpp.inc"
51+
5152
>();
5253
}
5354

@@ -288,6 +289,16 @@ TargetFeaturesAttr TargetFeaturesAttr::get(MLIRContext *context,
288289
}));
289290
}
290291

292+
TargetFeaturesAttr
293+
TargetFeaturesAttr::getChecked(function_ref<InFlightDiagnostic()> emitError,
294+
MLIRContext *context,
295+
llvm::ArrayRef<StringRef> features) {
296+
return Base::getChecked(emitError, context,
297+
llvm::map_to_vector(features, [&](StringRef feature) {
298+
return StringAttr::get(context, feature);
299+
}));
300+
}
301+
291302
TargetFeaturesAttr TargetFeaturesAttr::get(MLIRContext *context,
292303
StringRef targetFeatures) {
293304
SmallVector<StringRef> features;
@@ -296,6 +307,16 @@ TargetFeaturesAttr TargetFeaturesAttr::get(MLIRContext *context,
296307
return get(context, features);
297308
}
298309

310+
TargetFeaturesAttr
311+
TargetFeaturesAttr::getChecked(function_ref<InFlightDiagnostic()> emitError,
312+
MLIRContext *context, StringRef targetFeatures) {
313+
SmallVector<StringRef> features;
314+
targetFeatures.split(features, ',', /*MaxSplit=*/-1,
315+
/*KeepEmpty=*/false);
316+
ArrayRef featuresRef(features);
317+
return getChecked(emitError, context, featuresRef);
318+
}
319+
299320
LogicalResult
300321
TargetFeaturesAttr::verify(function_ref<InFlightDiagnostic()> emitError,
301322
llvm::ArrayRef<StringAttr> features) {

0 commit comments

Comments
 (0)