diff --git a/mlir/include/mlir-c/BuiltinAttributes.h b/mlir/include/mlir-c/BuiltinAttributes.h index 17c73f44cfc74..eab732365f6b8 100644 --- a/mlir/include/mlir-c/BuiltinAttributes.h +++ b/mlir/include/mlir-c/BuiltinAttributes.h @@ -115,6 +115,8 @@ MLIR_CAPI_EXPORTED MlirTypeID mlirDictionaryAttrGetTypeID(void); /// Checks whether the given attribute is a floating point attribute. MLIR_CAPI_EXPORTED bool mlirAttributeIsAFloat(MlirAttribute attr); +MLIR_CAPI_EXPORTED MlirStringRef mlirFloatAttrGetName(void); + /// Creates a floating point attribute in the given context with the given /// double value and double-precision FP semantics. MLIR_CAPI_EXPORTED MlirAttribute mlirFloatAttrDoubleGet(MlirContext ctx, diff --git a/mlir/include/mlir/Bindings/Python/IRAttributes.h b/mlir/include/mlir/Bindings/Python/IRAttributes.h index 05d64b0d91b1b..6175710d76dd0 100644 --- a/mlir/include/mlir/Bindings/Python/IRAttributes.h +++ b/mlir/include/mlir/Bindings/Python/IRAttributes.h @@ -324,6 +324,7 @@ class MLIR_PYTHON_API_EXPORTED PyFloatAttribute using PyConcreteAttribute::PyConcreteAttribute; static constexpr GetTypeIDFunctionTy getTypeIdFunction = mlirFloatAttrGetTypeID; + static inline const MlirStringRef name = mlirFloatAttrGetName(); static void bindDerived(ClassTy &c); }; diff --git a/mlir/lib/CAPI/IR/BuiltinAttributes.cpp b/mlir/lib/CAPI/IR/BuiltinAttributes.cpp index eebf82215eab0..f7172c21a0cb9 100644 --- a/mlir/lib/CAPI/IR/BuiltinAttributes.cpp +++ b/mlir/lib/CAPI/IR/BuiltinAttributes.cpp @@ -131,6 +131,8 @@ bool mlirAttributeIsAFloat(MlirAttribute attr) { return llvm::isa(unwrap(attr)); } +MlirStringRef mlirFloatAttrGetName(void) { return wrap(FloatAttr::name); } + MlirAttribute mlirFloatAttrDoubleGet(MlirContext ctx, MlirType type, double value) { return wrap(FloatAttr::get(unwrap(type), value)); diff --git a/mlir/test/python/ir/attributes.py b/mlir/test/python/ir/attributes.py index 15a5b5ed3a81c..5590834999261 100644 --- a/mlir/test/python/ir/attributes.py +++ b/mlir/test/python/ir/attributes.py @@ -747,3 +747,5 @@ def testAttrNames(): print(DenseResourceElementsAttr.attr_name) # CHECK: builtin.string print(StringAttr.attr_name) + # CHECK: builtin.float + print(FloatAttr.attr_name)