28 return llvm::isa<LocationAttr>(
unwrap(attr));
36 return llvm::isa<AffineMapAttr>(
unwrap(attr));
44 return wrap(llvm::cast<AffineMapAttr>(
unwrap(attr)).getValue());
48 return wrap(AffineMapAttr::getTypeID());
56 return llvm::isa<ArrayAttr>(
unwrap(attr));
60 MlirAttribute
const *elements) {
68 return static_cast<intptr_t
>(llvm::cast<ArrayAttr>(
unwrap(attr)).size());
72 return wrap(llvm::cast<ArrayAttr>(
unwrap(attr)).getValue()[pos]);
82 return llvm::isa<DictionaryAttr>(
unwrap(attr));
88 attributes.reserve(numElements);
89 for (intptr_t i = 0; i < numElements; ++i)
90 attributes.emplace_back(
unwrap(elements[i].name),
91 unwrap(elements[i].attribute));
96 return static_cast<intptr_t
>(llvm::cast<DictionaryAttr>(
unwrap(attr)).size());
112 return wrap(DictionaryAttr::getTypeID());
120 return llvm::isa<FloatAttr>(
unwrap(attr));
134 return llvm::cast<FloatAttr>(
unwrap(attr)).getValueAsDouble();
144 return llvm::isa<IntegerAttr>(
unwrap(attr));
152 return llvm::cast<IntegerAttr>(
unwrap(attr)).getInt();
156 return llvm::cast<IntegerAttr>(
unwrap(attr)).getSInt();
160 return llvm::cast<IntegerAttr>(
unwrap(attr)).getUInt();
164 return wrap(IntegerAttr::getTypeID());
172 return llvm::isa<BoolAttr>(
unwrap(attr));
180 return llvm::cast<BoolAttr>(
unwrap(attr)).getValue();
188 return llvm::isa<IntegerSetAttr>(
unwrap(attr));
192 return wrap(IntegerSetAttr::getTypeID());
200 return llvm::isa<OpaqueAttr>(
unwrap(attr));
204 intptr_t dataLength,
const char *data,
208 StringRef(data, dataLength),
unwrap(type)));
213 llvm::cast<OpaqueAttr>(
unwrap(attr)).getDialectNamespace().strref());
217 return wrap(llvm::cast<OpaqueAttr>(
unwrap(attr)).getAttrData());
221 return wrap(OpaqueAttr::getTypeID());
229 return llvm::isa<StringAttr>(
unwrap(attr));
241 return wrap(llvm::cast<StringAttr>(
unwrap(attr)).getValue());
245 return wrap(StringAttr::getTypeID());
253 return llvm::isa<SymbolRefAttr>(
unwrap(attr));
257 intptr_t numReferences,
258 MlirAttribute
const *references) {
260 refs.reserve(numReferences);
261 for (intptr_t i = 0; i < numReferences; ++i)
262 refs.push_back(llvm::cast<FlatSymbolRefAttr>(
unwrap(references[i])));
269 llvm::cast<SymbolRefAttr>(
unwrap(attr)).getRootReference().getValue());
274 llvm::cast<SymbolRefAttr>(
unwrap(attr)).getLeafReference().getValue());
278 return static_cast<intptr_t
>(
279 llvm::cast<SymbolRefAttr>(
unwrap(attr)).getNestedReferences().size());
285 llvm::cast<SymbolRefAttr>(
unwrap(attr)).getNestedReferences()[pos]);
289 return wrap(SymbolRefAttr::getTypeID());
301 return llvm::isa<FlatSymbolRefAttr>(
unwrap(attr));
309 return wrap(llvm::cast<FlatSymbolRefAttr>(
unwrap(attr)).getValue());
317 return llvm::isa<TypeAttr>(
unwrap(attr));
325 return wrap(llvm::cast<TypeAttr>(
unwrap(attr)).getValue());
335 return llvm::isa<UnitAttr>(
unwrap(attr));
349 return llvm::isa<ElementsAttr>(
unwrap(attr));
354 return wrap(llvm::cast<ElementsAttr>(
unwrap(attr))
360 return llvm::cast<ElementsAttr>(
unwrap(attr))
365 return llvm::cast<ElementsAttr>(
unwrap(attr)).getNumElements();
373 return wrap(DenseArrayAttr::getTypeID());
381 return llvm::isa<DenseBoolArrayAttr>(
unwrap(attr));
384 return llvm::isa<DenseI8ArrayAttr>(
unwrap(attr));
387 return llvm::isa<DenseI16ArrayAttr>(
unwrap(attr));
390 return llvm::isa<DenseI32ArrayAttr>(
unwrap(attr));
393 return llvm::isa<DenseI64ArrayAttr>(
unwrap(attr));
396 return llvm::isa<DenseF32ArrayAttr>(
unwrap(attr));
399 return llvm::isa<DenseF64ArrayAttr>(
unwrap(attr));
412 int8_t
const *values) {
417 int16_t
const *values) {
422 int32_t
const *values) {
427 int64_t
const *values) {
432 float const *values) {
437 double const *values) {
447 return llvm::cast<DenseArrayAttr>(
unwrap(attr)).size();
455 return llvm::cast<DenseBoolArrayAttr>(
unwrap(attr))[pos];
458 return llvm::cast<DenseI8ArrayAttr>(
unwrap(attr))[pos];
461 return llvm::cast<DenseI16ArrayAttr>(
unwrap(attr))[pos];
464 return llvm::cast<DenseI32ArrayAttr>(
unwrap(attr))[pos];
467 return llvm::cast<DenseI64ArrayAttr>(
unwrap(attr))[pos];
470 return llvm::cast<DenseF32ArrayAttr>(
unwrap(attr))[pos];
473 return llvm::cast<DenseF64ArrayAttr>(
unwrap(attr))[pos];
485 return llvm::isa<DenseElementsAttr>(
unwrap(attr));
489 return llvm::isa<DenseIntElementsAttr>(
unwrap(attr));
493 return llvm::isa<DenseFPElementsAttr>(
unwrap(attr));
497 return wrap(DenseIntOrFPElementsAttr::getTypeID());
505 intptr_t numElements,
506 MlirAttribute
const *elements) {
510 unwrapList(numElements, elements, attributes)));
514 size_t rawBufferSize,
515 const void *rawBuffer) {
516 auto shapedTypeCpp = llvm::cast<ShapedType>(
unwrap(shapedType));
519 bool isSplat =
false;
527 MlirAttribute element) {
578 intptr_t numElements,
579 const int *elements) {
586 template <
typename T>
588 intptr_t numElements,
595 intptr_t numElements,
596 const uint8_t *elements) {
600 intptr_t numElements,
601 const int8_t *elements) {
605 intptr_t numElements,
606 const uint16_t *elements) {
610 intptr_t numElements,
611 const int16_t *elements) {
615 intptr_t numElements,
616 const uint32_t *elements) {
620 intptr_t numElements,
621 const int32_t *elements) {
625 intptr_t numElements,
626 const uint64_t *elements) {
630 intptr_t numElements,
631 const int64_t *elements) {
635 intptr_t numElements,
636 const float *elements) {
640 intptr_t numElements,
641 const double *elements) {
645 intptr_t numElements,
646 const uint16_t *elements) {
647 size_t bufferSize = numElements * 2;
648 const void *buffer =
static_cast<const void *
>(elements);
652 intptr_t numElements,
653 const uint16_t *elements) {
654 size_t bufferSize = numElements * 2;
655 const void *buffer =
static_cast<const void *
>(elements);
660 intptr_t numElements,
663 values.reserve(numElements);
664 for (intptr_t i = 0; i < numElements; ++i)
665 values.push_back(
unwrap(strs[i]));
672 MlirType shapedType) {
673 return wrap(llvm::cast<DenseElementsAttr>(
unwrap(attr))
674 .reshape(llvm::cast<ShapedType>(
unwrap(shapedType))));
682 return llvm::cast<DenseElementsAttr>(
unwrap(attr)).isSplat();
687 llvm::cast<DenseElementsAttr>(
unwrap(attr)).getSplatValue<Attribute>());
690 return llvm::cast<DenseElementsAttr>(
unwrap(attr)).getSplatValue<
bool>();
693 return llvm::cast<DenseElementsAttr>(
unwrap(attr)).getSplatValue<int8_t>();
696 return llvm::cast<DenseElementsAttr>(
unwrap(attr)).getSplatValue<uint8_t>();
699 return llvm::cast<DenseElementsAttr>(
unwrap(attr)).getSplatValue<int32_t>();
702 return llvm::cast<DenseElementsAttr>(
unwrap(attr)).getSplatValue<uint32_t>();
705 return llvm::cast<DenseElementsAttr>(
unwrap(attr)).getSplatValue<int64_t>();
708 return llvm::cast<DenseElementsAttr>(
unwrap(attr)).getSplatValue<uint64_t>();
711 return llvm::cast<DenseElementsAttr>(
unwrap(attr)).getSplatValue<
float>();
714 return llvm::cast<DenseElementsAttr>(
unwrap(attr)).getSplatValue<
double>();
718 llvm::cast<DenseElementsAttr>(
unwrap(attr)).getSplatValue<StringRef>());
726 return llvm::cast<DenseElementsAttr>(
unwrap(attr)).getValues<
bool>()[pos];
729 return llvm::cast<DenseElementsAttr>(
unwrap(attr)).getValues<int8_t>()[pos];
732 return llvm::cast<DenseElementsAttr>(
unwrap(attr)).getValues<uint8_t>()[pos];
735 return llvm::cast<DenseElementsAttr>(
unwrap(attr)).getValues<int16_t>()[pos];
738 return llvm::cast<DenseElementsAttr>(
unwrap(attr)).getValues<uint16_t>()[pos];
741 return llvm::cast<DenseElementsAttr>(
unwrap(attr)).getValues<int32_t>()[pos];
744 return llvm::cast<DenseElementsAttr>(
unwrap(attr)).getValues<uint32_t>()[pos];
747 return llvm::cast<DenseElementsAttr>(
unwrap(attr)).getValues<int64_t>()[pos];
750 return llvm::cast<DenseElementsAttr>(
unwrap(attr)).getValues<uint64_t>()[pos];
753 return llvm::cast<DenseElementsAttr>(
unwrap(attr)).getValues<
float>()[pos];
756 return llvm::cast<DenseElementsAttr>(
unwrap(attr)).getValues<
double>()[pos];
761 llvm::cast<DenseElementsAttr>(
unwrap(attr)).getValues<StringRef>()[pos]);
769 return static_cast<const void *
>(
770 llvm::cast<DenseElementsAttr>(
unwrap(attr)).getRawData().data());
778 return llvm::isa<DenseResourceElementsAttr>(
unwrap(attr));
782 MlirType shapedType,
MlirStringRef name,
void *data,
size_t dataLength,
783 size_t dataAlignment,
bool dataIsMutable,
784 void (*deleter)(
void *userData,
const void *data,
size_t size,
789 cppDeleter = [deleter, userData](
void *data,
size_t size,
size_t align) {
790 deleter(userData, data, size, align);
795 dataAlignment, std::move(cppDeleter), dataIsMutable);
798 unwrap(name), std::move(blob)));
801 template <
typename U,
typename T>
803 intptr_t numElements,
const T *elements) {
810 MlirType shapedType,
MlirStringRef name, intptr_t numElements,
811 const int *elements) {
812 return getDenseResource<DenseBoolResourceElementsAttr>(shapedType, name,
813 numElements, elements);
816 MlirType shapedType,
MlirStringRef name, intptr_t numElements,
817 const uint8_t *elements) {
818 return getDenseResource<DenseUI8ResourceElementsAttr>(shapedType, name,
819 numElements, elements);
822 MlirType shapedType,
MlirStringRef name, intptr_t numElements,
823 const uint16_t *elements) {
824 return getDenseResource<DenseUI16ResourceElementsAttr>(shapedType, name,
825 numElements, elements);
828 MlirType shapedType,
MlirStringRef name, intptr_t numElements,
829 const uint32_t *elements) {
830 return getDenseResource<DenseUI32ResourceElementsAttr>(shapedType, name,
831 numElements, elements);
834 MlirType shapedType,
MlirStringRef name, intptr_t numElements,
835 const uint64_t *elements) {
836 return getDenseResource<DenseUI64ResourceElementsAttr>(shapedType, name,
837 numElements, elements);
840 MlirType shapedType,
MlirStringRef name, intptr_t numElements,
841 const int8_t *elements) {
842 return getDenseResource<DenseUI8ResourceElementsAttr>(shapedType, name,
843 numElements, elements);
846 MlirType shapedType,
MlirStringRef name, intptr_t numElements,
847 const int16_t *elements) {
848 return getDenseResource<DenseUI16ResourceElementsAttr>(shapedType, name,
849 numElements, elements);
852 MlirType shapedType,
MlirStringRef name, intptr_t numElements,
853 const int32_t *elements) {
854 return getDenseResource<DenseUI32ResourceElementsAttr>(shapedType, name,
855 numElements, elements);
858 MlirType shapedType,
MlirStringRef name, intptr_t numElements,
859 const int64_t *elements) {
860 return getDenseResource<DenseUI64ResourceElementsAttr>(shapedType, name,
861 numElements, elements);
864 MlirType shapedType,
MlirStringRef name, intptr_t numElements,
865 const float *elements) {
866 return getDenseResource<DenseF32ResourceElementsAttr>(shapedType, name,
867 numElements, elements);
870 MlirType shapedType,
MlirStringRef name, intptr_t numElements,
871 const double *elements) {
872 return getDenseResource<DenseF64ResourceElementsAttr>(shapedType, name,
873 numElements, elements);
875 template <
typename U,
typename T>
877 return (*llvm::cast<U>(
unwrap(attr)).tryGetAsArrayRef())[pos];
882 return getDenseResourceVal<DenseBoolResourceElementsAttr, uint8_t>(attr, pos);
886 return getDenseResourceVal<DenseUI8ResourceElementsAttr, uint8_t>(attr, pos);
890 return getDenseResourceVal<DenseUI16ResourceElementsAttr, uint16_t>(attr,
895 return getDenseResourceVal<DenseUI32ResourceElementsAttr, uint32_t>(attr,
900 return getDenseResourceVal<DenseUI64ResourceElementsAttr, uint64_t>(attr,
905 return getDenseResourceVal<DenseUI8ResourceElementsAttr, int8_t>(attr, pos);
909 return getDenseResourceVal<DenseUI16ResourceElementsAttr, int16_t>(attr, pos);
913 return getDenseResourceVal<DenseUI32ResourceElementsAttr, int32_t>(attr, pos);
917 return getDenseResourceVal<DenseUI64ResourceElementsAttr, int64_t>(attr, pos);
921 return getDenseResourceVal<DenseF32ResourceElementsAttr, float>(attr, pos);
925 return getDenseResourceVal<DenseF64ResourceElementsAttr, double>(attr, pos);
933 return llvm::isa<SparseElementsAttr>(
unwrap(attr));
937 MlirAttribute denseIndices,
938 MlirAttribute denseValues) {
940 llvm::cast<ShapedType>(
unwrap(shapedType)),
941 llvm::cast<DenseElementsAttr>(
unwrap(denseIndices)),
942 llvm::cast<DenseElementsAttr>(
unwrap(denseValues))));
950 return wrap(llvm::cast<SparseElementsAttr>(
unwrap(attr)).getValues());
954 return wrap(SparseElementsAttr::getTypeID());
962 return llvm::isa<StridedLayoutAttr>(
unwrap(attr));
967 const int64_t *strides) {
973 return llvm::cast<StridedLayoutAttr>(
unwrap(attr)).getOffset();
977 return static_cast<intptr_t
>(
978 llvm::cast<StridedLayoutAttr>(
unwrap(attr)).getStrides().size());
982 return llvm::cast<StridedLayoutAttr>(
unwrap(attr)).getStrides()[pos];
986 return wrap(StridedLayoutAttr::getTypeID());
bool mlirAttributeIsAFlatSymbolRef(MlirAttribute attr)
Checks whether the given attribute is a flat symbol reference attribute.
MlirAffineMap mlirAffineMapAttrGetValue(MlirAttribute attr)
Returns the affine map wrapped in the given affine map attribute.
MlirAttribute mlirDenseElementsAttrGet(MlirType shapedType, intptr_t numElements, MlirAttribute const *elements)
Creates a dense elements attribute with the given Shaped type and elements in the same context as the...
intptr_t mlirDictionaryAttrGetNumElements(MlirAttribute attr)
Returns the number of attributes contained in a dictionary attribute.
MlirAttribute mlirBoolAttrGet(MlirContext ctx, int value)
Creates a bool attribute in the given context with the given value.
float mlirDenseElementsAttrGetFloatValue(MlirAttribute attr, intptr_t pos)
int64_t mlirDenseInt64ResourceElementsAttrGetValue(MlirAttribute attr, intptr_t pos)
MlirStringRef mlirFlatSymbolRefAttrGetValue(MlirAttribute attr)
Returns the referenced symbol as a string reference.
MlirAttribute mlirDenseF32ArrayGet(MlirContext ctx, intptr_t size, float const *values)
int16_t mlirDenseElementsAttrGetInt16Value(MlirAttribute attr, intptr_t pos)
MlirAttribute mlirSparseElementsAttrGetIndices(MlirAttribute attr)
Returns the dense elements attribute containing 64-bit integer indices of non-null elements in the gi...
MlirAttribute mlirUnmanagedDenseDoubleResourceElementsAttrGet(MlirType shapedType, MlirStringRef name, intptr_t numElements, const double *elements)
uint32_t mlirDenseElementsAttrGetUInt32SplatValue(MlirAttribute attr)
bool mlirAttributeIsALocation(MlirAttribute attr)
bool mlirAttributeIsAString(MlirAttribute attr)
Checks whether the given attribute is a string attribute.
MlirStringRef mlirDenseElementsAttrGetStringValue(MlirAttribute attr, intptr_t pos)
int8_t mlirDenseI8ArrayGetElement(MlirAttribute attr, intptr_t pos)
uint32_t mlirDenseElementsAttrGetUInt32Value(MlirAttribute attr, intptr_t pos)
bool mlirAttributeIsADenseI32Array(MlirAttribute attr)
int64_t mlirIntegerAttrGetValueInt(MlirAttribute attr)
Returns the value stored in the given integer attribute, assuming the value is of signless type and f...
MlirStringRef mlirSymbolRefAttrGetRootReference(MlirAttribute attr)
Returns the string reference to the root referenced symbol.
MlirAttribute mlirAffineMapAttrGet(MlirAffineMap map)
Creates an affine map attribute wrapping the given map.
int mlirDenseElementsAttrGetBoolSplatValue(MlirAttribute attr)
MlirAttribute mlirStridedLayoutAttrGet(MlirContext ctx, int64_t offset, intptr_t numStrides, const int64_t *strides)
double mlirDenseDoubleResourceElementsAttrGetValue(MlirAttribute attr, intptr_t pos)
MlirAttribute mlirDisctinctAttrCreate(MlirAttribute referencedAttr)
Creates a DisctinctAttr with the referenced attribute.
uint16_t mlirDenseElementsAttrGetUInt16Value(MlirAttribute attr, intptr_t pos)
MlirAttribute mlirDenseElementsAttrFloat16Get(MlirType shapedType, intptr_t numElements, const uint16_t *elements)
float mlirDenseFloatResourceElementsAttrGetValue(MlirAttribute attr, intptr_t pos)
float mlirDenseF32ArrayGetElement(MlirAttribute attr, intptr_t pos)
uint8_t mlirDenseElementsAttrGetUInt8SplatValue(MlirAttribute attr)
uint64_t mlirIntegerAttrGetValueUInt(MlirAttribute attr)
Returns the value stored in the given integer attribute, assuming the value is of unsigned type and f...
bool mlirDenseBoolArrayGetElement(MlirAttribute attr, intptr_t pos)
Get an element of a dense array.
MlirAttribute mlirSparseElementsAttribute(MlirType shapedType, MlirAttribute denseIndices, MlirAttribute denseValues)
Creates a sparse elements attribute of the given shape from a list of indices and a list of associate...
bool mlirAttributeIsADictionary(MlirAttribute attr)
Checks whether the given attribute is a dictionary attribute.
bool mlirDenseBoolResourceElementsAttrGetValue(MlirAttribute attr, intptr_t pos)
Returns the pos-th value (flat contiguous indexing) of a specific type contained by the given dense r...
MlirAttribute mlirFlatSymbolRefAttrGet(MlirContext ctx, MlirStringRef symbol)
Creates a flat symbol reference attribute in the given context referencing a symbol identified by the...
MlirAttribute mlirDenseElementsAttrInt16Get(MlirType shapedType, intptr_t numElements, const int16_t *elements)
bool mlirAttributeIsADenseElements(MlirAttribute attr)
Checks whether the given attribute is a dense elements attribute.
uint16_t mlirDenseUInt16ResourceElementsAttrGetValue(MlirAttribute attr, intptr_t pos)
MlirTypeID mlirFloatAttrGetTypeID(void)
Returns the typeID of a Float attribute.
MlirAttribute mlirSymbolRefAttrGet(MlirContext ctx, MlirStringRef symbol, intptr_t numReferences, MlirAttribute const *references)
Creates a symbol reference attribute in the given context referencing a symbol identified by the give...
uint64_t mlirDenseUInt64ResourceElementsAttrGetValue(MlirAttribute attr, intptr_t pos)
const void * mlirDenseElementsAttrGetRawData(MlirAttribute attr)
Returns the raw data of the given dense elements attribute.
bool mlirAttributeIsASparseElements(MlirAttribute attr)
Checks whether the given attribute is a sparse elements attribute.
MlirTypeID mlirAffineMapAttrGetTypeID(void)
Returns the typeID of an AffineMap attribute.
bool mlirBoolAttrGetValue(MlirAttribute attr)
Returns the value stored in the given bool attribute.
MlirTypeID mlirDenseArrayAttrGetTypeID()
int16_t mlirDenseInt16ResourceElementsAttrGetValue(MlirAttribute attr, intptr_t pos)
MlirAttribute mlirDenseElementsAttrBoolGet(MlirType shapedType, intptr_t numElements, const int *elements)
Creates a dense elements attribute with the given shaped type from elements of a specific type.
uint64_t mlirDenseElementsAttrGetUInt64SplatValue(MlirAttribute attr)
int64_t mlirIntegerAttrGetValueSInt(MlirAttribute attr)
Returns the value stored in the given integer attribute, assuming the value is of signed type and fit...
MlirAttribute mlirDenseI32ArrayGet(MlirContext ctx, intptr_t size, int32_t const *values)
MlirAttribute mlirSymbolRefAttrGetNestedReference(MlirAttribute attr, intptr_t pos)
Returns pos-th reference nested in the given symbol reference attribute.
MlirAttribute mlirDenseElementsAttrStringGet(MlirType shapedType, intptr_t numElements, MlirStringRef *strs)
Creates a dense elements attribute with the given shaped type from string elements.
MlirTypeID mlirIntegerSetAttrGetTypeID(void)
Returns the typeID of an IntegerSet attribute.
MlirAttribute mlirUnmanagedDenseResourceElementsAttrGet(MlirType shapedType, MlirStringRef name, void *data, size_t dataLength, size_t dataAlignment, bool dataIsMutable, void(*deleter)(void *userData, const void *data, size_t size, size_t align), void *userData)
Unlike the typed accessors below, constructs the attribute with a raw data buffer and no type/alignme...
MlirAttribute mlirUnmanagedDenseInt16ResourceElementsAttrGet(MlirType shapedType, MlirStringRef name, intptr_t numElements, const int16_t *elements)
MlirAttribute mlirDenseElementsAttrDoubleGet(MlirType shapedType, intptr_t numElements, const double *elements)
MlirAttribute mlirUnmanagedDenseUInt16ResourceElementsAttrGet(MlirType shapedType, MlirStringRef name, intptr_t numElements, const uint16_t *elements)
intptr_t mlirSymbolRefAttrGetNumNestedReferences(MlirAttribute attr)
Returns the number of references nested in the given symbol reference attribute.
bool mlirAttributeIsADenseI16Array(MlirAttribute attr)
MlirAttribute mlirDenseElementsAttrDoubleSplatGet(MlirType shapedType, double element)
intptr_t mlirDenseArrayGetNumElements(MlirAttribute attr)
Get the size of a dense array.
bool mlirAttributeIsADenseBoolArray(MlirAttribute attr)
Checks whether the given attribute is a dense array attribute.
MlirAttribute mlirUnmanagedDenseBoolResourceElementsAttrGet(MlirType shapedType, MlirStringRef name, intptr_t numElements, const int *elements)
bool mlirAttributeIsADenseI64Array(MlirAttribute attr)
MlirStringRef mlirStringAttrGetValue(MlirAttribute attr)
Returns the attribute values as a string reference.
bool mlirAttributeIsAElements(MlirAttribute attr)
Checks whether the given attribute is an elements attribute.
MlirAttribute mlirStringAttrTypedGet(MlirType type, MlirStringRef str)
Creates a string attribute in the given context containing the given string.
uint8_t mlirDenseElementsAttrGetUInt8Value(MlirAttribute attr, intptr_t pos)
uint64_t mlirDenseElementsAttrGetUInt64Value(MlirAttribute attr, intptr_t pos)
MlirAttribute mlirDenseElementsAttrUInt8SplatGet(MlirType shapedType, uint8_t element)
MlirTypeID mlirTypeAttrGetTypeID(void)
Returns the typeID of a Type attribute.
MlirAttribute mlirDictionaryAttrGet(MlirContext ctx, intptr_t numElements, MlirNamedAttribute const *elements)
Creates a dictionary attribute containing the given list of elements in the provided context.
uint8_t mlirDenseUInt8ResourceElementsAttrGetValue(MlirAttribute attr, intptr_t pos)
int8_t mlirDenseElementsAttrGetInt8SplatValue(MlirAttribute attr)
MlirTypeID mlirDenseIntOrFPElementsAttrGetTypeID(void)
Returns the typeID of an DenseIntOrFPElements attribute.
MlirAttribute mlirDenseElementsAttrUInt16Get(MlirType shapedType, intptr_t numElements, const uint16_t *elements)
MlirNamedAttribute mlirDictionaryAttrGetElement(MlirAttribute attr, intptr_t pos)
Returns pos-th element of the given dictionary attribute.
MlirAttribute mlirDenseElementsAttrBFloat16Get(MlirType shapedType, intptr_t numElements, const uint16_t *elements)
int16_t mlirDenseI16ArrayGetElement(MlirAttribute attr, intptr_t pos)
int32_t mlirDenseI32ArrayGetElement(MlirAttribute attr, intptr_t pos)
MlirAttribute mlirStringAttrGet(MlirContext ctx, MlirStringRef str)
Creates a string attribute in the given context containing the given string.
bool mlirAttributeIsADenseFPElements(MlirAttribute attr)
bool mlirAttributeIsADenseI8Array(MlirAttribute attr)
MlirTypeID mlirOpaqueAttrGetTypeID(void)
Returns the typeID of an Opaque attribute.
MlirStringRef mlirSymbolRefAttrGetLeafReference(MlirAttribute attr)
Returns the string reference to the leaf referenced symbol.
bool mlirAttributeIsAType(MlirAttribute attr)
Checks whether the given attribute is a type attribute.
MlirAttribute mlirIntegerAttrGet(MlirType type, int64_t value)
Creates an integer attribute of the given type with the given integer value.
MlirType mlirTypeAttrGetValue(MlirAttribute attr)
Returns the type stored in the given type attribute.
MlirAttribute mlirArrayAttrGet(MlirContext ctx, intptr_t numElements, MlirAttribute const *elements)
Creates an array element containing the given list of elements in the given context.
double mlirDenseElementsAttrGetDoubleSplatValue(MlirAttribute attr)
MlirAttribute mlirUnmanagedDenseFloatResourceElementsAttrGet(MlirType shapedType, MlirStringRef name, intptr_t numElements, const float *elements)
MlirAttribute mlirDenseElementsAttrInt64SplatGet(MlirType shapedType, int64_t element)
double mlirFloatAttrGetValueDouble(MlirAttribute attr)
Returns the value stored in the given floating point attribute, interpreting the value as double.
bool mlirAttributeIsAArray(MlirAttribute attr)
Checks whether the given attribute is an array attribute.
bool mlirAttributeIsAOpaque(MlirAttribute attr)
Checks whether the given attribute is an opaque attribute.
MlirAttribute mlirDenseElementsAttrFloatSplatGet(MlirType shapedType, float element)
MlirAttribute mlirDenseF64ArrayGet(MlirContext ctx, intptr_t size, double const *values)
bool mlirAttributeIsAAffineMap(MlirAttribute attr)
Checks whether the given attribute is an affine map attribute.
MlirAttribute mlirDenseElementsAttrFloatGet(MlirType shapedType, intptr_t numElements, const float *elements)
MlirAttribute mlirSparseElementsAttrGetValues(MlirAttribute attr)
Returns the dense elements attribute containing the non-null elements in the given sparse elements at...
int64_t mlirStridedLayoutAttrGetStride(MlirAttribute attr, intptr_t pos)
MlirAttribute mlirArrayAttrGetElement(MlirAttribute attr, intptr_t pos)
Returns pos-th element stored in the given array attribute.
MlirStringRef mlirDenseElementsAttrGetStringSplatValue(MlirAttribute attr)
bool mlirDenseElementsAttrGetBoolValue(MlirAttribute attr, intptr_t pos)
Returns the pos-th value (flat contiguous indexing) of a specific type contained by the given dense e...
int32_t mlirDenseElementsAttrGetInt32Value(MlirAttribute attr, intptr_t pos)
intptr_t mlirStridedLayoutAttrGetNumStrides(MlirAttribute attr)
bool mlirAttributeIsADenseIntElements(MlirAttribute attr)
MlirTypeID mlirUnitAttrGetTypeID(void)
Returns the typeID of a Unit attribute.
bool mlirAttributeIsADenseF64Array(MlirAttribute attr)
MlirAttribute mlirDenseBoolArrayGet(MlirContext ctx, intptr_t size, int const *values)
Create a dense array attribute with the given elements.
MlirAttribute mlirDenseElementsAttrUInt32Get(MlirType shapedType, intptr_t numElements, const uint32_t *elements)
bool mlirAttributeIsABool(MlirAttribute attr)
Checks whether the given attribute is a bool attribute.
bool mlirAttributeIsADenseF32Array(MlirAttribute attr)
MlirAttribute mlirUnitAttrGet(MlirContext ctx)
Creates a unit attribute in the given context.
MlirAttribute mlirDenseI16ArrayGet(MlirContext ctx, intptr_t size, int16_t const *values)
int32_t mlirDenseElementsAttrGetInt32SplatValue(MlirAttribute attr)
int64_t mlirElementsAttrGetNumElements(MlirAttribute attr)
Gets the total number of elements in the given elements attribute.
MlirTypeID mlirStridedLayoutAttrGetTypeID(void)
Returns the typeID of a StridedLayout attribute.
double mlirDenseElementsAttrGetDoubleValue(MlirAttribute attr, intptr_t pos)
bool mlirElementsAttrIsValidIndex(MlirAttribute attr, intptr_t rank, uint64_t *idxs)
Checks whether the given rank-dimensional index is valid in the given elements attribute.
MlirAttribute mlirDenseElementsAttrRawBufferGet(MlirType shapedType, size_t rawBufferSize, const void *rawBuffer)
Creates a dense elements attribute with the given Shaped type and elements populated from a packed,...
bool mlirAttributeIsAFloat(MlirAttribute attr)
Checks whether the given attribute is a floating point attribute.
MlirAttribute mlirUnmanagedDenseInt32ResourceElementsAttrGet(MlirType shapedType, MlirStringRef name, intptr_t numElements, const int32_t *elements)
MlirAttribute mlirFloatAttrDoubleGet(MlirContext ctx, MlirType type, double value)
Creates a floating point attribute in the given context with the given double value and double-precis...
MlirAttribute mlirUnmanagedDenseInt8ResourceElementsAttrGet(MlirType shapedType, MlirStringRef name, intptr_t numElements, const int8_t *elements)
intptr_t mlirArrayAttrGetNumElements(MlirAttribute attr)
Returns the number of elements stored in the given array attribute.
MlirAttribute mlirDenseI64ArrayGet(MlirContext ctx, intptr_t size, int64_t const *values)
int64_t mlirDenseElementsAttrGetInt64Value(MlirAttribute attr, intptr_t pos)
bool mlirAttributeIsAStridedLayout(MlirAttribute attr)
bool mlirAttributeIsAIntegerSet(MlirAttribute attr)
Checks whether the given attribute is an integer set attribute.
int8_t mlirDenseInt8ResourceElementsAttrGetValue(MlirAttribute attr, intptr_t pos)
MlirAttribute mlirDenseElementsAttrGetSplatValue(MlirAttribute attr)
Returns the single replicated value (splat) of a specific type contained by the given dense elements ...
MlirTypeID mlirStringAttrGetTypeID(void)
Returns the typeID of a String attribute.
static MlirAttribute getDenseResource(MlirType shapedType, MlirStringRef name, intptr_t numElements, const T *elements)
MlirAttribute mlirDenseElementsAttrUInt8Get(MlirType shapedType, intptr_t numElements, const uint8_t *elements)
static MlirAttribute getDenseAttribute(MlirType shapedType, intptr_t numElements, const T *elements)
Creates a dense attribute with elements of the type deduced by templates.
MlirAttribute mlirUnmanagedDenseInt64ResourceElementsAttrGet(MlirType shapedType, MlirStringRef name, intptr_t numElements, const int64_t *elements)
bool mlirDenseElementsAttrIsSplat(MlirAttribute attr)
Checks whether the given dense elements attribute contains a single replicated value (splat).
MlirAttribute mlirElementsAttrGetValue(MlirAttribute attr, intptr_t rank, uint64_t *idxs)
Returns the element at the given rank-dimensional index.
MlirTypeID mlirSparseElementsAttrGetTypeID(void)
Returns the typeID of a SparseElements attribute.
MlirTypeID mlirIntegerAttrGetTypeID(void)
Returns the typeID of an Integer attribute.
MlirAttribute mlirDictionaryAttrGetElementByName(MlirAttribute attr, MlirStringRef name)
Returns the dictionary attribute element with the given name or NULL if the given name does not exist...
MlirAttribute mlirUnmanagedDenseUInt8ResourceElementsAttrGet(MlirType shapedType, MlirStringRef name, intptr_t numElements, const uint8_t *elements)
double mlirDenseF64ArrayGetElement(MlirAttribute attr, intptr_t pos)
MlirAttribute mlirDenseElementsAttrInt8SplatGet(MlirType shapedType, int8_t element)
MlirAttribute mlirDenseElementsAttrInt32Get(MlirType shapedType, intptr_t numElements, const int32_t *elements)
MlirAttribute mlirDenseElementsAttrReshapeGet(MlirAttribute attr, MlirType shapedType)
Creates a dense elements attribute that has the same data as the given dense elements attribute and a...
MlirAttribute mlirDenseElementsAttrSplatGet(MlirType shapedType, MlirAttribute element)
Creates a dense elements attribute with the given Shaped type containing a single replicated element ...
MlirStringRef mlirOpaqueAttrGetDialectNamespace(MlirAttribute attr)
Returns the namespace of the dialect with which the given opaque attribute is associated.
MlirAttribute mlirOpaqueAttrGet(MlirContext ctx, MlirStringRef dialectNamespace, intptr_t dataLength, const char *data, MlirType type)
Creates an opaque attribute in the given context associated with the dialect identified by its namesp...
int64_t mlirDenseI64ArrayGetElement(MlirAttribute attr, intptr_t pos)
MlirAttribute mlirFloatAttrDoubleGetChecked(MlirLocation loc, MlirType type, double value)
Same as "mlirFloatAttrDoubleGet", but if the type is not valid for a construction of a FloatAttr,...
int64_t mlirDenseElementsAttrGetInt64SplatValue(MlirAttribute attr)
MlirAttribute mlirDenseElementsAttrInt8Get(MlirType shapedType, intptr_t numElements, const int8_t *elements)
MlirAttribute mlirDenseElementsAttrUInt64Get(MlirType shapedType, intptr_t numElements, const uint64_t *elements)
float mlirDenseElementsAttrGetFloatSplatValue(MlirAttribute attr)
MlirAttribute mlirDenseElementsAttrUInt32SplatGet(MlirType shapedType, uint32_t element)
MlirAttribute mlirUnmanagedDenseUInt64ResourceElementsAttrGet(MlirType shapedType, MlirStringRef name, intptr_t numElements, const uint64_t *elements)
bool mlirAttributeIsAUnit(MlirAttribute attr)
Checks whether the given attribute is a unit attribute.
MlirAttribute mlirDenseElementsAttrUInt64SplatGet(MlirType shapedType, uint64_t element)
MlirTypeID mlirArrayAttrGetTypeID(void)
Returns the typeID of an Array attribute.
MlirAttribute mlirDenseElementsAttrBoolSplatGet(MlirType shapedType, bool element)
int8_t mlirDenseElementsAttrGetInt8Value(MlirAttribute attr, intptr_t pos)
MlirAttribute mlirDenseI8ArrayGet(MlirContext ctx, intptr_t size, int8_t const *values)
MlirAttribute mlirDenseElementsAttrInt32SplatGet(MlirType shapedType, int32_t element)
MlirTypeID mlirSymbolRefAttrGetTypeID(void)
Returns the typeID of an SymbolRef attribute.
uint32_t mlirDenseUInt32ResourceElementsAttrGetValue(MlirAttribute attr, intptr_t pos)
bool mlirAttributeIsAInteger(MlirAttribute attr)
Checks whether the given attribute is an integer attribute.
MlirAttribute mlirDenseElementsAttrInt64Get(MlirType shapedType, intptr_t numElements, const int64_t *elements)
static T getDenseResourceVal(MlirAttribute attr, intptr_t pos)
bool mlirAttributeIsADenseResourceElements(MlirAttribute attr)
bool mlirAttributeIsASymbolRef(MlirAttribute attr)
Checks whether the given attribute is a symbol reference attribute.
MlirAttribute mlirUnmanagedDenseUInt32ResourceElementsAttrGet(MlirType shapedType, MlirStringRef name, intptr_t numElements, const uint32_t *elements)
int64_t mlirStridedLayoutAttrGetOffset(MlirAttribute attr)
MlirStringRef mlirOpaqueAttrGetData(MlirAttribute attr)
Returns the raw data as a string reference.
MlirTypeID mlirDictionaryAttrGetTypeID(void)
Returns the typeID of a Dictionary attribute.
MlirAttribute mlirTypeAttrGet(MlirType type)
Creates a type attribute wrapping the given type in the same context as the type.
int32_t mlirDenseInt32ResourceElementsAttrGetValue(MlirAttribute attr, intptr_t pos)
MlirAttribute mlirAttributeGetNull()
Returns an empty attribute.
static llvm::ArrayRef< CppTy > unwrapList(size_t size, CTy *first, llvm::SmallVectorImpl< CppTy > &storage)
The following classes enable support for parsing and printing resources within MLIR assembly formats.
llvm::unique_function< void(void *data, size_t size, size_t align)> DeleterFn
A deleter function that frees a blob given the data, allocation size, and allocation aligment.
Attributes are known-constant values of operations.
static BoolAttr get(MLIRContext *context, bool value)
static DenseElementsAttr getFromRawBuffer(ShapedType type, ArrayRef< char > rawBuffer)
Construct a dense elements attribute from a raw buffer representing the data for this attribute.
static DenseElementsAttr get(ShapedType type, ArrayRef< Attribute > values)
Constructs a dense elements attribute from an array of element values.
static bool isValidRawBuffer(ShapedType type, ArrayRef< char > rawBuffer, bool &detectedSplat)
Returns true if the given buffer is a valid raw buffer for the given type.
static DistinctAttr create(Attribute referencedAttr)
Creates a distinct attribute that associates a referenced attribute with a unique identifier.
static FlatSymbolRefAttr get(StringAttr value)
Construct a symbol reference for the given value name.
NamedAttribute represents a combination of a name and an Attribute value.
StringAttr getName() const
Return the name of the attribute.
Attribute getValue() const
Return the value of the attribute.
static AsmResourceBlob allocateInferAlign(ArrayRef< T > data, AsmResourceBlob::DeleterFn deleter={}, bool dataIsMutable=false)
static DenseArrayAttrImpl get(MLIRContext *context, ArrayRef< T > content)
Builder from ArrayRef<T>.
mlir::Diagnostic & unwrap(MlirDiagnostic diagnostic)
MlirDiagnostic wrap(mlir::Diagnostic &diagnostic)
Operation::operand_range getIndices(Operation *op)
Get the indices that the given load/store operation is operating on.
Include the generated interface declarations.
auto get(MLIRContext *context, Ts &&...params)
Helper method that injects context only if needed, this helps unify some of the attribute constructio...
A pointer to a sized fragment of a string, not necessarily null-terminated.