MLIR 22.0.0git
BuiltinAttributes.h
Go to the documentation of this file.
1//===-- mlir-c/BuiltinAttributes.h - C API for Builtin Attributes -*- C -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM
4// Exceptions.
5// See https://llvm.org/LICENSE.txt for license information.
6// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7//
8//===----------------------------------------------------------------------===//
9//
10// This header declares the C interface to MLIR Builtin attributes.
11//
12//===----------------------------------------------------------------------===//
13
14#ifndef MLIR_C_BUILTINATTRIBUTES_H
15#define MLIR_C_BUILTINATTRIBUTES_H
16
17#include "mlir-c/AffineMap.h"
18#include "mlir-c/IR.h"
19#include "mlir-c/IntegerSet.h"
20#include "mlir-c/Support.h"
21
22#ifdef __cplusplus
23extern "C" {
24#endif
25
26/// Returns an empty attribute.
28
29//===----------------------------------------------------------------------===//
30// Location attribute.
31//===----------------------------------------------------------------------===//
32
33MLIR_CAPI_EXPORTED bool mlirAttributeIsALocation(MlirAttribute attr);
34
35//===----------------------------------------------------------------------===//
36// Affine map attribute.
37//===----------------------------------------------------------------------===//
38
39/// Checks whether the given attribute is an affine map attribute.
40MLIR_CAPI_EXPORTED bool mlirAttributeIsAAffineMap(MlirAttribute attr);
41
42/// Creates an affine map attribute wrapping the given map. The attribute
43/// belongs to the same context as the affine map.
44MLIR_CAPI_EXPORTED MlirAttribute mlirAffineMapAttrGet(MlirAffineMap map);
45
46/// Returns the affine map wrapped in the given affine map attribute.
47MLIR_CAPI_EXPORTED MlirAffineMap mlirAffineMapAttrGetValue(MlirAttribute attr);
48
49/// Returns the typeID of an AffineMap attribute.
51
52//===----------------------------------------------------------------------===//
53// Array attribute.
54//===----------------------------------------------------------------------===//
55
56/// Checks whether the given attribute is an array attribute.
57MLIR_CAPI_EXPORTED bool mlirAttributeIsAArray(MlirAttribute attr);
58
59/// Creates an array element containing the given list of elements in the given
60/// context.
62 MlirContext ctx, intptr_t numElements, MlirAttribute const *elements);
63
64/// Returns the number of elements stored in the given array attribute.
65MLIR_CAPI_EXPORTED intptr_t mlirArrayAttrGetNumElements(MlirAttribute attr);
66
67/// Returns pos-th element stored in the given array attribute.
68MLIR_CAPI_EXPORTED MlirAttribute mlirArrayAttrGetElement(MlirAttribute attr,
69 intptr_t pos);
70
71/// Returns the typeID of an Array attribute.
73
74//===----------------------------------------------------------------------===//
75// Dictionary attribute.
76//===----------------------------------------------------------------------===//
77
78/// Checks whether the given attribute is a dictionary attribute.
79MLIR_CAPI_EXPORTED bool mlirAttributeIsADictionary(MlirAttribute attr);
80
81/// Creates a dictionary attribute containing the given list of elements in the
82/// provided context.
84 MlirContext ctx, intptr_t numElements, MlirNamedAttribute const *elements);
85
86/// Returns the number of attributes contained in a dictionary attribute.
87MLIR_CAPI_EXPORTED intptr_t
88mlirDictionaryAttrGetNumElements(MlirAttribute attr);
89
90/// Returns pos-th element of the given dictionary attribute.
92mlirDictionaryAttrGetElement(MlirAttribute attr, intptr_t pos);
93
94/// Returns the dictionary attribute element with the given name or NULL if the
95/// given name does not exist in the dictionary.
96MLIR_CAPI_EXPORTED MlirAttribute
98
99/// Returns the typeID of a Dictionary attribute.
101
102//===----------------------------------------------------------------------===//
103// Floating point attribute.
104//===----------------------------------------------------------------------===//
105
106// TODO: add support for APFloat and APInt to LLVM IR C API, then expose the
107// relevant functions here.
108
109/// Checks whether the given attribute is a floating point attribute.
110MLIR_CAPI_EXPORTED bool mlirAttributeIsAFloat(MlirAttribute attr);
111
112/// Creates a floating point attribute in the given context with the given
113/// double value and double-precision FP semantics.
114MLIR_CAPI_EXPORTED MlirAttribute mlirFloatAttrDoubleGet(MlirContext ctx,
115 MlirType type,
116 double value);
117
118/// Same as "mlirFloatAttrDoubleGet", but if the type is not valid for a
119/// construction of a FloatAttr, returns a null MlirAttribute.
120MLIR_CAPI_EXPORTED MlirAttribute mlirFloatAttrDoubleGetChecked(MlirLocation loc,
121 MlirType type,
122 double value);
123
124/// Returns the value stored in the given floating point attribute, interpreting
125/// the value as double.
126MLIR_CAPI_EXPORTED double mlirFloatAttrGetValueDouble(MlirAttribute attr);
127
128/// Returns the typeID of a Float attribute.
130
131//===----------------------------------------------------------------------===//
132// Integer attribute.
133//===----------------------------------------------------------------------===//
134
135// TODO: add support for APFloat and APInt to LLVM IR C API, then expose the
136// relevant functions here.
137
138/// Checks whether the given attribute is an integer attribute.
139MLIR_CAPI_EXPORTED bool mlirAttributeIsAInteger(MlirAttribute attr);
140
141/// Creates an integer attribute of the given type with the given integer
142/// value.
143MLIR_CAPI_EXPORTED MlirAttribute mlirIntegerAttrGet(MlirType type,
144 int64_t value);
145
146/// Returns the value stored in the given integer attribute, assuming the value
147/// is of signless type and fits into a signed 64-bit integer.
149
150/// Returns the value stored in the given integer attribute, assuming the value
151/// is of signed type and fits into a signed 64-bit integer.
153
154/// Returns the value stored in the given integer attribute, assuming the value
155/// is of unsigned type and fits into an unsigned 64-bit integer.
156MLIR_CAPI_EXPORTED uint64_t mlirIntegerAttrGetValueUInt(MlirAttribute attr);
157
158/// Returns the typeID of an Integer attribute.
160
161//===----------------------------------------------------------------------===//
162// Bool attribute.
163//===----------------------------------------------------------------------===//
164
165/// Checks whether the given attribute is a bool attribute.
166MLIR_CAPI_EXPORTED bool mlirAttributeIsABool(MlirAttribute attr);
167
168/// Creates a bool attribute in the given context with the given value.
169MLIR_CAPI_EXPORTED MlirAttribute mlirBoolAttrGet(MlirContext ctx, int value);
170
171/// Returns the value stored in the given bool attribute.
172MLIR_CAPI_EXPORTED bool mlirBoolAttrGetValue(MlirAttribute attr);
173
174//===----------------------------------------------------------------------===//
175// Integer set attribute.
176//===----------------------------------------------------------------------===//
177
178/// Checks whether the given attribute is an integer set attribute.
179MLIR_CAPI_EXPORTED bool mlirAttributeIsAIntegerSet(MlirAttribute attr);
180
181/// Creates an integer set attribute wrapping the given set. The attribute
182/// belongs to the same context as the integer set.
183MLIR_CAPI_EXPORTED MlirAttribute mlirIntegerSetAttrGet(MlirIntegerSet set);
184
185/// Returns the integer set wrapped in the given integer set attribute.
186MLIR_CAPI_EXPORTED MlirIntegerSet
187mlirIntegerSetAttrGetValue(MlirAttribute attr);
188
189/// Returns the typeID of an IntegerSet attribute.
191
192//===----------------------------------------------------------------------===//
193// Opaque attribute.
194//===----------------------------------------------------------------------===//
195
196/// Checks whether the given attribute is an opaque attribute.
197MLIR_CAPI_EXPORTED bool mlirAttributeIsAOpaque(MlirAttribute attr);
198
199/// Creates an opaque attribute in the given context associated with the dialect
200/// identified by its namespace. The attribute contains opaque byte data of the
201/// specified length (data need not be null-terminated).
202MLIR_CAPI_EXPORTED MlirAttribute
203mlirOpaqueAttrGet(MlirContext ctx, MlirStringRef dialectNamespace,
204 intptr_t dataLength, const char *data, MlirType type);
205
206/// Returns the namespace of the dialect with which the given opaque attribute
207/// is associated. The namespace string is owned by the context.
209mlirOpaqueAttrGetDialectNamespace(MlirAttribute attr);
210
211/// Returns the raw data as a string reference. The data remains live as long as
212/// the context in which the attribute lives.
214
215/// Returns the typeID of an Opaque attribute.
217
218//===----------------------------------------------------------------------===//
219// String attribute.
220//===----------------------------------------------------------------------===//
221
222/// Checks whether the given attribute is a string attribute.
223MLIR_CAPI_EXPORTED bool mlirAttributeIsAString(MlirAttribute attr);
224
225/// Creates a string attribute in the given context containing the given string.
226
227MLIR_CAPI_EXPORTED MlirAttribute mlirStringAttrGet(MlirContext ctx,
228 MlirStringRef str);
229
230/// Creates a string attribute in the given context containing the given string.
231/// Additionally, the attribute has the given type.
232MLIR_CAPI_EXPORTED MlirAttribute mlirStringAttrTypedGet(MlirType type,
233 MlirStringRef str);
234
235/// Returns the attribute values as a string reference. The data remains live as
236/// long as the context in which the attribute lives.
238
239/// Returns the typeID of a String attribute.
241
242//===----------------------------------------------------------------------===//
243// SymbolRef attribute.
244//===----------------------------------------------------------------------===//
245
246/// Checks whether the given attribute is a symbol reference attribute.
247MLIR_CAPI_EXPORTED bool mlirAttributeIsASymbolRef(MlirAttribute attr);
248
249/// Creates a symbol reference attribute in the given context referencing a
250/// symbol identified by the given string inside a list of nested references.
251/// Each of the references in the list must not be nested.
252MLIR_CAPI_EXPORTED MlirAttribute
253mlirSymbolRefAttrGet(MlirContext ctx, MlirStringRef symbol,
254 intptr_t numReferences, MlirAttribute const *references);
255
256/// Returns the string reference to the root referenced symbol. The data remains
257/// live as long as the context in which the attribute lives.
259mlirSymbolRefAttrGetRootReference(MlirAttribute attr);
260
261/// Returns the string reference to the leaf referenced symbol. The data remains
262/// live as long as the context in which the attribute lives.
264mlirSymbolRefAttrGetLeafReference(MlirAttribute attr);
265
266/// Returns the number of references nested in the given symbol reference
267/// attribute.
268MLIR_CAPI_EXPORTED intptr_t
270
271/// Returns pos-th reference nested in the given symbol reference attribute.
272MLIR_CAPI_EXPORTED MlirAttribute
273mlirSymbolRefAttrGetNestedReference(MlirAttribute attr, intptr_t pos);
274
275/// Returns the typeID of an SymbolRef attribute.
277
278/// Creates a DisctinctAttr with the referenced attribute.
279MLIR_CAPI_EXPORTED MlirAttribute
280mlirDisctinctAttrCreate(MlirAttribute referencedAttr);
281
282//===----------------------------------------------------------------------===//
283// Flat SymbolRef attribute.
284//===----------------------------------------------------------------------===//
285
286/// Checks whether the given attribute is a flat symbol reference attribute.
288
289/// Creates a flat symbol reference attribute in the given context referencing a
290/// symbol identified by the given string.
291MLIR_CAPI_EXPORTED MlirAttribute mlirFlatSymbolRefAttrGet(MlirContext ctx,
292 MlirStringRef symbol);
293
294/// Returns the referenced symbol as a string reference. The data remains live
295/// as long as the context in which the attribute lives.
297mlirFlatSymbolRefAttrGetValue(MlirAttribute attr);
298
299//===----------------------------------------------------------------------===//
300// Type attribute.
301//===----------------------------------------------------------------------===//
302
303/// Checks whether the given attribute is a type attribute.
304MLIR_CAPI_EXPORTED bool mlirAttributeIsAType(MlirAttribute attr);
305
306/// Creates a type attribute wrapping the given type in the same context as the
307/// type.
308MLIR_CAPI_EXPORTED MlirAttribute mlirTypeAttrGet(MlirType type);
309
310/// Returns the type stored in the given type attribute.
311MLIR_CAPI_EXPORTED MlirType mlirTypeAttrGetValue(MlirAttribute attr);
312
313/// Returns the typeID of a Type attribute.
315
316//===----------------------------------------------------------------------===//
317// Unit attribute.
318//===----------------------------------------------------------------------===//
319
320/// Checks whether the given attribute is a unit attribute.
321MLIR_CAPI_EXPORTED bool mlirAttributeIsAUnit(MlirAttribute attr);
322
323/// Creates a unit attribute in the given context.
324MLIR_CAPI_EXPORTED MlirAttribute mlirUnitAttrGet(MlirContext ctx);
325
326/// Returns the typeID of a Unit attribute.
328
329//===----------------------------------------------------------------------===//
330// Elements attributes.
331//===----------------------------------------------------------------------===//
332
333/// Checks whether the given attribute is an elements attribute.
334MLIR_CAPI_EXPORTED bool mlirAttributeIsAElements(MlirAttribute attr);
335
336/// Returns the element at the given rank-dimensional index.
337MLIR_CAPI_EXPORTED MlirAttribute mlirElementsAttrGetValue(MlirAttribute attr,
338 intptr_t rank,
339 uint64_t *idxs);
340
341/// Checks whether the given rank-dimensional index is valid in the given
342/// elements attribute.
344mlirElementsAttrIsValidIndex(MlirAttribute attr, intptr_t rank, uint64_t *idxs);
345
346/// Gets the total number of elements in the given elements attribute. In order
347/// to iterate over the attribute, obtain its type, which must be a statically
348/// shaped type and use its sizes to build a multi-dimensional index.
350
351//===----------------------------------------------------------------------===//
352// Dense array attribute.
353//===----------------------------------------------------------------------===//
354
356
357/// Checks whether the given attribute is a dense array attribute.
359MLIR_CAPI_EXPORTED bool mlirAttributeIsADenseI8Array(MlirAttribute attr);
365
366/// Create a dense array attribute with the given elements.
367MLIR_CAPI_EXPORTED MlirAttribute mlirDenseBoolArrayGet(MlirContext ctx,
368 intptr_t size,
369 int const *values);
370MLIR_CAPI_EXPORTED MlirAttribute mlirDenseI8ArrayGet(MlirContext ctx,
371 intptr_t size,
372 int8_t const *values);
373MLIR_CAPI_EXPORTED MlirAttribute mlirDenseI16ArrayGet(MlirContext ctx,
374 intptr_t size,
375 int16_t const *values);
376MLIR_CAPI_EXPORTED MlirAttribute mlirDenseI32ArrayGet(MlirContext ctx,
377 intptr_t size,
378 int32_t const *values);
379MLIR_CAPI_EXPORTED MlirAttribute mlirDenseI64ArrayGet(MlirContext ctx,
380 intptr_t size,
381 int64_t const *values);
382MLIR_CAPI_EXPORTED MlirAttribute mlirDenseF32ArrayGet(MlirContext ctx,
383 intptr_t size,
384 float const *values);
385MLIR_CAPI_EXPORTED MlirAttribute mlirDenseF64ArrayGet(MlirContext ctx,
386 intptr_t size,
387 double const *values);
388
389/// Get the size of a dense array.
390MLIR_CAPI_EXPORTED intptr_t mlirDenseArrayGetNumElements(MlirAttribute attr);
391
392/// Get an element of a dense array.
394 intptr_t pos);
395MLIR_CAPI_EXPORTED int8_t mlirDenseI8ArrayGetElement(MlirAttribute attr,
396 intptr_t pos);
397MLIR_CAPI_EXPORTED int16_t mlirDenseI16ArrayGetElement(MlirAttribute attr,
398 intptr_t pos);
399MLIR_CAPI_EXPORTED int32_t mlirDenseI32ArrayGetElement(MlirAttribute attr,
400 intptr_t pos);
402 intptr_t pos);
403MLIR_CAPI_EXPORTED float mlirDenseF32ArrayGetElement(MlirAttribute attr,
404 intptr_t pos);
405MLIR_CAPI_EXPORTED double mlirDenseF64ArrayGetElement(MlirAttribute attr,
406 intptr_t pos);
407
408//===----------------------------------------------------------------------===//
409// Dense elements attribute.
410//===----------------------------------------------------------------------===//
411
412// TODO: decide on the interface and add support for complex elements.
413// TODO: add support for APFloat and APInt to LLVM IR C API, then expose the
414// relevant functions here.
415
416/// Checks whether the given attribute is a dense elements attribute.
420
421/// Returns the typeID of an DenseIntOrFPElements attribute.
423
424/// Creates a dense elements attribute with the given Shaped type and elements
425/// in the same context as the type.
427 MlirType shapedType, intptr_t numElements, MlirAttribute const *elements);
428
429/// Creates a dense elements attribute with the given Shaped type and elements
430/// populated from a packed, row-major opaque buffer of contents.
431///
432/// The format of the raw buffer is a densely packed array of values that
433/// can be bitcast to the storage format of the element type specified.
434/// Types that are not byte aligned will be:
435/// - For bitwidth > 1: Rounded up to the next byte.
436/// - For bitwidth = 1: Packed into 8bit bytes with bits corresponding to
437/// the linear order of the shape type from MSB to LSB, padded to on the
438/// right.
439///
440/// A raw buffer of a single element (or for 1-bit, a byte of value 0 or 255)
441/// will be interpreted as a splat. User code should be prepared for additional,
442/// conformant patterns to be identified as splats in the future.
444 MlirType shapedType, size_t rawBufferSize, const void *rawBuffer);
445
446/// Creates a dense elements attribute with the given Shaped type containing a
447/// single replicated element (splat).
448MLIR_CAPI_EXPORTED MlirAttribute
449mlirDenseElementsAttrSplatGet(MlirType shapedType, MlirAttribute element);
450MLIR_CAPI_EXPORTED MlirAttribute
451mlirDenseElementsAttrBoolSplatGet(MlirType shapedType, bool element);
452MLIR_CAPI_EXPORTED MlirAttribute
453mlirDenseElementsAttrUInt8SplatGet(MlirType shapedType, uint8_t element);
454MLIR_CAPI_EXPORTED MlirAttribute
455mlirDenseElementsAttrInt8SplatGet(MlirType shapedType, int8_t element);
456MLIR_CAPI_EXPORTED MlirAttribute
457mlirDenseElementsAttrUInt32SplatGet(MlirType shapedType, uint32_t element);
458MLIR_CAPI_EXPORTED MlirAttribute
459mlirDenseElementsAttrInt32SplatGet(MlirType shapedType, int32_t element);
460MLIR_CAPI_EXPORTED MlirAttribute
461mlirDenseElementsAttrUInt64SplatGet(MlirType shapedType, uint64_t element);
462MLIR_CAPI_EXPORTED MlirAttribute
463mlirDenseElementsAttrInt64SplatGet(MlirType shapedType, int64_t element);
464MLIR_CAPI_EXPORTED MlirAttribute
465mlirDenseElementsAttrFloatSplatGet(MlirType shapedType, float element);
466MLIR_CAPI_EXPORTED MlirAttribute
467mlirDenseElementsAttrDoubleSplatGet(MlirType shapedType, double element);
468
469/// Creates a dense elements attribute with the given shaped type from elements
470/// of a specific type. Expects the element type of the shaped type to match the
471/// data element type.
473 MlirType shapedType, intptr_t numElements, const int *elements);
475 MlirType shapedType, intptr_t numElements, const uint8_t *elements);
477 MlirType shapedType, intptr_t numElements, const int8_t *elements);
479 MlirType shapedType, intptr_t numElements, const uint16_t *elements);
481 MlirType shapedType, intptr_t numElements, const int16_t *elements);
483 MlirType shapedType, intptr_t numElements, const uint32_t *elements);
485 MlirType shapedType, intptr_t numElements, const int32_t *elements);
487 MlirType shapedType, intptr_t numElements, const uint64_t *elements);
489 MlirType shapedType, intptr_t numElements, const int64_t *elements);
491 MlirType shapedType, intptr_t numElements, const float *elements);
493 MlirType shapedType, intptr_t numElements, const double *elements);
495 MlirType shapedType, intptr_t numElements, const uint16_t *elements);
497 MlirType shapedType, intptr_t numElements, const uint16_t *elements);
498
499/// Creates a dense elements attribute with the given shaped type from string
500/// elements.
502 MlirType shapedType, intptr_t numElements, MlirStringRef *strs);
503
504/// Creates a dense elements attribute that has the same data as the given dense
505/// elements attribute and a different shaped type. The new type must have the
506/// same total number of elements.
507MLIR_CAPI_EXPORTED MlirAttribute
508mlirDenseElementsAttrReshapeGet(MlirAttribute attr, MlirType shapedType);
509
510/// Checks whether the given dense elements attribute contains a single
511/// replicated value (splat).
512MLIR_CAPI_EXPORTED bool mlirDenseElementsAttrIsSplat(MlirAttribute attr);
513
514/// Returns the single replicated value (splat) of a specific type contained by
515/// the given dense elements attribute.
516MLIR_CAPI_EXPORTED MlirAttribute
517mlirDenseElementsAttrGetSplatValue(MlirAttribute attr);
522MLIR_CAPI_EXPORTED uint8_t
524MLIR_CAPI_EXPORTED int32_t
526MLIR_CAPI_EXPORTED uint32_t
530MLIR_CAPI_EXPORTED uint64_t
538
539/// Returns the pos-th value (flat contiguous indexing) of a specific type
540/// contained by the given dense elements attribute.
542 intptr_t pos);
544 intptr_t pos);
545MLIR_CAPI_EXPORTED uint8_t
546mlirDenseElementsAttrGetUInt8Value(MlirAttribute attr, intptr_t pos);
547MLIR_CAPI_EXPORTED int16_t
548mlirDenseElementsAttrGetInt16Value(MlirAttribute attr, intptr_t pos);
549MLIR_CAPI_EXPORTED uint16_t
550mlirDenseElementsAttrGetUInt16Value(MlirAttribute attr, intptr_t pos);
551MLIR_CAPI_EXPORTED int32_t
552mlirDenseElementsAttrGetInt32Value(MlirAttribute attr, intptr_t pos);
553MLIR_CAPI_EXPORTED uint32_t
554mlirDenseElementsAttrGetUInt32Value(MlirAttribute attr, intptr_t pos);
556mlirDenseElementsAttrGetInt64Value(MlirAttribute attr, intptr_t pos);
557MLIR_CAPI_EXPORTED uint64_t
558mlirDenseElementsAttrGetUInt64Value(MlirAttribute attr, intptr_t pos);
559MLIR_CAPI_EXPORTED uint64_t
560mlirDenseElementsAttrGetIndexValue(MlirAttribute attr, intptr_t pos);
562 intptr_t pos);
564mlirDenseElementsAttrGetDoubleValue(MlirAttribute attr, intptr_t pos);
566mlirDenseElementsAttrGetStringValue(MlirAttribute attr, intptr_t pos);
567
568/// Returns the raw data of the given dense elements attribute.
569MLIR_CAPI_EXPORTED const void *
570mlirDenseElementsAttrGetRawData(MlirAttribute attr);
571
572//===----------------------------------------------------------------------===//
573// Resource blob attributes.
574//===----------------------------------------------------------------------===//
575
577mlirAttributeIsADenseResourceElements(MlirAttribute attr);
578
579/// Unlike the typed accessors below, constructs the attribute with a raw
580/// data buffer and no type/alignment checking. Use a more strongly typed
581/// accessor if possible. If dataIsMutable is false, then an immutable
582/// AsmResourceBlob will be created and that passed data contents will be
583/// treated as const.
584/// If the deleter is non NULL, then it will be called when the data buffer
585/// can no longer be accessed (passing userData to it).
587 MlirType shapedType, MlirStringRef name, void *data, size_t dataLength,
588 size_t dataAlignment, bool dataIsMutable,
589 void (*deleter)(void *userData, const void *data, size_t size,
590 size_t align),
591 void *userData);
592
594 MlirType shapedType, MlirStringRef name, intptr_t numElements,
595 const int *elements);
597 MlirType shapedType, MlirStringRef name, intptr_t numElements,
598 const uint8_t *elements);
600 MlirType shapedType, MlirStringRef name, intptr_t numElements,
601 const int8_t *elements);
602MLIR_CAPI_EXPORTED MlirAttribute
604 MlirStringRef name,
605 intptr_t numElements,
606 const uint16_t *elements);
608 MlirType shapedType, MlirStringRef name, intptr_t numElements,
609 const int16_t *elements);
610MLIR_CAPI_EXPORTED MlirAttribute
612 MlirStringRef name,
613 intptr_t numElements,
614 const uint32_t *elements);
616 MlirType shapedType, MlirStringRef name, intptr_t numElements,
617 const int32_t *elements);
618MLIR_CAPI_EXPORTED MlirAttribute
620 MlirStringRef name,
621 intptr_t numElements,
622 const uint64_t *elements);
624 MlirType shapedType, MlirStringRef name, intptr_t numElements,
625 const int64_t *elements);
627 MlirType shapedType, MlirStringRef name, intptr_t numElements,
628 const float *elements);
629MLIR_CAPI_EXPORTED MlirAttribute
631 MlirStringRef name,
632 intptr_t numElements,
633 const double *elements);
634
635/// Returns the pos-th value (flat contiguous indexing) of a specific type
636/// contained by the given dense resource elements attribute.
638mlirDenseBoolResourceElementsAttrGetValue(MlirAttribute attr, intptr_t pos);
640mlirDenseInt8ResourceElementsAttrGetValue(MlirAttribute attr, intptr_t pos);
641MLIR_CAPI_EXPORTED uint8_t
642mlirDenseUInt8ResourceElementsAttrGetValue(MlirAttribute attr, intptr_t pos);
643MLIR_CAPI_EXPORTED int16_t
644mlirDenseInt16ResourceElementsAttrGetValue(MlirAttribute attr, intptr_t pos);
645MLIR_CAPI_EXPORTED uint16_t
646mlirDenseUInt16ResourceElementsAttrGetValue(MlirAttribute attr, intptr_t pos);
647MLIR_CAPI_EXPORTED int32_t
648mlirDenseInt32ResourceElementsAttrGetValue(MlirAttribute attr, intptr_t pos);
649MLIR_CAPI_EXPORTED uint32_t
650mlirDenseUInt32ResourceElementsAttrGetValue(MlirAttribute attr, intptr_t pos);
652mlirDenseInt64ResourceElementsAttrGetValue(MlirAttribute attr, intptr_t pos);
653MLIR_CAPI_EXPORTED uint64_t
654mlirDenseUInt64ResourceElementsAttrGetValue(MlirAttribute attr, intptr_t pos);
656mlirDenseFloatResourceElementsAttrGetValue(MlirAttribute attr, intptr_t pos);
658mlirDenseDoubleResourceElementsAttrGetValue(MlirAttribute attr, intptr_t pos);
659
660//===----------------------------------------------------------------------===//
661// Sparse elements attribute.
662//===----------------------------------------------------------------------===//
663
664/// Checks whether the given attribute is a sparse elements attribute.
666
667/// Creates a sparse elements attribute of the given shape from a list of
668/// indices and a list of associated values. Both lists are expected to be dense
669/// elements attributes with the same number of elements. The list of indices is
670/// expected to contain 64-bit integers. The attribute is created in the same
671/// context as the type.
673 MlirType shapedType, MlirAttribute denseIndices, MlirAttribute denseValues);
674
675/// Returns the dense elements attribute containing 64-bit integer indices of
676/// non-null elements in the given sparse elements attribute.
677MLIR_CAPI_EXPORTED MlirAttribute
678mlirSparseElementsAttrGetIndices(MlirAttribute attr);
679
680/// Returns the dense elements attribute containing the non-null elements in the
681/// given sparse elements attribute.
682MLIR_CAPI_EXPORTED MlirAttribute
683mlirSparseElementsAttrGetValues(MlirAttribute attr);
684
685/// Returns the typeID of a SparseElements attribute.
687
688//===----------------------------------------------------------------------===//
689// Strided layout attribute.
690//===----------------------------------------------------------------------===//
691
692// Checks wheather the given attribute is a strided layout attribute.
694
695// Creates a strided layout attribute from given strides and offset.
696MLIR_CAPI_EXPORTED MlirAttribute
697mlirStridedLayoutAttrGet(MlirContext ctx, int64_t offset, intptr_t numStrides,
698 const int64_t *strides);
699
700// Returns the offset in the given strided layout layout attribute.
702
703// Returns the number of strides in the given strided layout attribute.
704MLIR_CAPI_EXPORTED intptr_t
705mlirStridedLayoutAttrGetNumStrides(MlirAttribute attr);
706
707// Returns the pos-th stride stored in the given strided layout attribute.
709 intptr_t pos);
710
711/// Returns the typeID of a StridedLayout attribute.
713
714#ifdef __cplusplus
715}
716#endif
717
718#endif // MLIR_C_BUILTINATTRIBUTES_H
MLIR_CAPI_EXPORTED MlirAttribute mlirAffineMapAttrGet(MlirAffineMap map)
Creates an affine map attribute wrapping the given map.
MLIR_CAPI_EXPORTED bool mlirAttributeIsADenseFPElements(MlirAttribute attr)
MLIR_CAPI_EXPORTED 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...
MLIR_CAPI_EXPORTED MlirAttribute mlirFloatAttrDoubleGetChecked(MlirLocation loc, MlirType type, double value)
Same as "mlirFloatAttrDoubleGet", but if the type is not valid for a construction of a FloatAttr,...
MLIR_CAPI_EXPORTED int16_t mlirDenseI16ArrayGetElement(MlirAttribute attr, intptr_t pos)
MLIR_CAPI_EXPORTED bool mlirAttributeIsAStridedLayout(MlirAttribute attr)
MLIR_CAPI_EXPORTED uint8_t mlirDenseElementsAttrGetUInt8Value(MlirAttribute attr, intptr_t pos)
MLIR_CAPI_EXPORTED int64_t mlirStridedLayoutAttrGetOffset(MlirAttribute attr)
MLIR_CAPI_EXPORTED bool mlirAttributeIsADenseI64Array(MlirAttribute attr)
MLIR_CAPI_EXPORTED uint64_t mlirDenseElementsAttrGetUInt64SplatValue(MlirAttribute attr)
MLIR_CAPI_EXPORTED MlirAffineMap mlirAffineMapAttrGetValue(MlirAttribute attr)
Returns the affine map wrapped in the given affine map attribute.
MLIR_CAPI_EXPORTED int64_t mlirStridedLayoutAttrGetStride(MlirAttribute attr, intptr_t pos)
MLIR_CAPI_EXPORTED MlirAttribute mlirSparseElementsAttrGetValues(MlirAttribute attr)
Returns the dense elements attribute containing the non-null elements in the given sparse elements at...
MLIR_CAPI_EXPORTED int8_t mlirDenseElementsAttrGetInt8Value(MlirAttribute attr, intptr_t pos)
MLIR_CAPI_EXPORTED MlirAttribute mlirStridedLayoutAttrGet(MlirContext ctx, int64_t offset, intptr_t numStrides, const int64_t *strides)
MLIR_CAPI_EXPORTED int32_t mlirDenseInt32ResourceElementsAttrGetValue(MlirAttribute attr, intptr_t pos)
MLIR_CAPI_EXPORTED MlirAttribute mlirUnmanagedDenseInt8ResourceElementsAttrGet(MlirType shapedType, MlirStringRef name, intptr_t numElements, const int8_t *elements)
MLIR_CAPI_EXPORTED 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...
MLIR_CAPI_EXPORTED MlirAttribute mlirDenseElementsAttrStringGet(MlirType shapedType, intptr_t numElements, MlirStringRef *strs)
Creates a dense elements attribute with the given shaped type from string elements.
MLIR_CAPI_EXPORTED MlirAttribute mlirDenseElementsAttrInt64SplatGet(MlirType shapedType, int64_t element)
MLIR_CAPI_EXPORTED MlirTypeID mlirStringAttrGetTypeID(void)
Returns the typeID of a String attribute.
MLIR_CAPI_EXPORTED bool mlirAttributeIsAUnit(MlirAttribute attr)
Checks whether the given attribute is a unit attribute.
MLIR_CAPI_EXPORTED bool mlirAttributeIsADenseElements(MlirAttribute attr)
Checks whether the given attribute is a dense elements attribute.
MLIR_CAPI_EXPORTED bool mlirAttributeIsAIntegerSet(MlirAttribute attr)
Checks whether the given attribute is an integer set attribute.
MLIR_CAPI_EXPORTED bool mlirAttributeIsAAffineMap(MlirAttribute attr)
Checks whether the given attribute is an affine map attribute.
MLIR_CAPI_EXPORTED int32_t mlirDenseI32ArrayGetElement(MlirAttribute attr, intptr_t pos)
MLIR_CAPI_EXPORTED double mlirDenseF64ArrayGetElement(MlirAttribute attr, intptr_t pos)
MLIR_CAPI_EXPORTED MlirAttribute mlirFlatSymbolRefAttrGet(MlirContext ctx, MlirStringRef symbol)
Creates a flat symbol reference attribute in the given context referencing a symbol identified by the...
MLIR_CAPI_EXPORTED MlirTypeID mlirStridedLayoutAttrGetTypeID(void)
Returns the typeID of a StridedLayout attribute.
MLIR_CAPI_EXPORTED uint64_t mlirDenseElementsAttrGetIndexValue(MlirAttribute attr, intptr_t pos)
MLIR_CAPI_EXPORTED const void * mlirDenseElementsAttrGetRawData(MlirAttribute attr)
Returns the raw data of the given dense elements attribute.
MLIR_CAPI_EXPORTED MlirTypeID mlirIntegerAttrGetTypeID(void)
Returns the typeID of an Integer attribute.
MLIR_CAPI_EXPORTED MlirAttribute mlirUnmanagedDenseUInt8ResourceElementsAttrGet(MlirType shapedType, MlirStringRef name, intptr_t numElements, const uint8_t *elements)
MLIR_CAPI_EXPORTED bool mlirAttributeIsADenseResourceElements(MlirAttribute attr)
MLIR_CAPI_EXPORTED MlirAttribute mlirDenseElementsAttrUInt8SplatGet(MlirType shapedType, uint8_t element)
MLIR_CAPI_EXPORTED int16_t mlirDenseElementsAttrGetInt16Value(MlirAttribute attr, intptr_t pos)
MLIR_CAPI_EXPORTED MlirAttribute mlirDenseElementsAttrFloatSplatGet(MlirType shapedType, float element)
MLIR_CAPI_EXPORTED MlirStringRef mlirSymbolRefAttrGetRootReference(MlirAttribute attr)
Returns the string reference to the root referenced symbol.
MLIR_CAPI_EXPORTED MlirAttribute mlirDenseElementsAttrReshapeGet(MlirAttribute attr, MlirType shapedType)
Creates a dense elements attribute that has the same data as the given dense elements attribute and a...
MLIR_CAPI_EXPORTED MlirAttribute mlirDenseElementsAttrInt8SplatGet(MlirType shapedType, int8_t element)
MLIR_CAPI_EXPORTED bool mlirAttributeIsAType(MlirAttribute attr)
Checks whether the given attribute is a type attribute.
MLIR_CAPI_EXPORTED MlirTypeID mlirDenseIntOrFPElementsAttrGetTypeID(void)
Returns the typeID of an DenseIntOrFPElements attribute.
MLIR_CAPI_EXPORTED bool mlirAttributeIsADenseIntElements(MlirAttribute attr)
MLIR_CAPI_EXPORTED bool mlirAttributeIsAArray(MlirAttribute attr)
Checks whether the given attribute is an array attribute.
MLIR_CAPI_EXPORTED MlirAttribute mlirDenseElementsAttrInt32Get(MlirType shapedType, intptr_t numElements, const int32_t *elements)
MLIR_CAPI_EXPORTED bool mlirAttributeIsAInteger(MlirAttribute attr)
Checks whether the given attribute is an integer attribute.
MLIR_CAPI_EXPORTED MlirAttribute mlirElementsAttrGetValue(MlirAttribute attr, intptr_t rank, uint64_t *idxs)
Returns the element at the given rank-dimensional index.
MLIR_CAPI_EXPORTED intptr_t mlirDictionaryAttrGetNumElements(MlirAttribute attr)
Returns the number of attributes contained in a dictionary attribute.
MLIR_CAPI_EXPORTED MlirAttribute mlirIntegerSetAttrGet(MlirIntegerSet set)
Creates an integer set attribute wrapping the given set.
MLIR_CAPI_EXPORTED bool mlirAttributeIsALocation(MlirAttribute attr)
MLIR_CAPI_EXPORTED int8_t mlirDenseInt8ResourceElementsAttrGetValue(MlirAttribute attr, intptr_t pos)
MLIR_CAPI_EXPORTED uint16_t mlirDenseElementsAttrGetUInt16Value(MlirAttribute attr, intptr_t pos)
MLIR_CAPI_EXPORTED MlirAttribute mlirDenseElementsAttrInt16Get(MlirType shapedType, intptr_t numElements, const int16_t *elements)
MLIR_CAPI_EXPORTED uint64_t mlirDenseElementsAttrGetUInt64Value(MlirAttribute attr, intptr_t pos)
MLIR_CAPI_EXPORTED bool mlirBoolAttrGetValue(MlirAttribute attr)
Returns the value stored in the given bool attribute.
MLIR_CAPI_EXPORTED double mlirDenseDoubleResourceElementsAttrGetValue(MlirAttribute attr, intptr_t pos)
MLIR_CAPI_EXPORTED MlirAttribute mlirDenseElementsAttrUInt16Get(MlirType shapedType, intptr_t numElements, const uint16_t *elements)
MLIR_CAPI_EXPORTED MlirAttribute mlirDisctinctAttrCreate(MlirAttribute referencedAttr)
Creates a DisctinctAttr with the referenced attribute.
MLIR_CAPI_EXPORTED int64_t mlirDenseI64ArrayGetElement(MlirAttribute attr, intptr_t pos)
MLIR_CAPI_EXPORTED MlirAttribute mlirIntegerAttrGet(MlirType type, int64_t value)
Creates an integer attribute of the given type with the given integer value.
MLIR_CAPI_EXPORTED MlirTypeID mlirIntegerSetAttrGetTypeID(void)
Returns the typeID of an IntegerSet attribute.
MLIR_CAPI_EXPORTED 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...
MLIR_CAPI_EXPORTED MlirStringRef mlirDenseElementsAttrGetStringValue(MlirAttribute attr, intptr_t pos)
MLIR_CAPI_EXPORTED MlirAttribute mlirDictionaryAttrGet(MlirContext ctx, intptr_t numElements, MlirNamedAttribute const *elements)
Creates a dictionary attribute containing the given list of elements in the provided context.
MLIR_CAPI_EXPORTED uint64_t mlirDenseUInt64ResourceElementsAttrGetValue(MlirAttribute attr, intptr_t pos)
MLIR_CAPI_EXPORTED int8_t mlirDenseElementsAttrGetInt8SplatValue(MlirAttribute attr)
MLIR_CAPI_EXPORTED MlirAttribute mlirDenseElementsAttrUInt32Get(MlirType shapedType, intptr_t numElements, const uint32_t *elements)
MLIR_CAPI_EXPORTED 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...
MLIR_CAPI_EXPORTED MlirAttribute mlirDenseElementsAttrFloat16Get(MlirType shapedType, intptr_t numElements, const uint16_t *elements)
MLIR_CAPI_EXPORTED MlirIntegerSet mlirIntegerSetAttrGetValue(MlirAttribute attr)
Returns the integer set wrapped in the given integer set attribute.
MLIR_CAPI_EXPORTED bool mlirAttributeIsABool(MlirAttribute attr)
Checks whether the given attribute is a bool attribute.
MLIR_CAPI_EXPORTED bool mlirAttributeIsASparseElements(MlirAttribute attr)
Checks whether the given attribute is a sparse elements attribute.
MLIR_CAPI_EXPORTED bool mlirDenseBoolArrayGetElement(MlirAttribute attr, intptr_t pos)
Get an element of a dense array.
MLIR_CAPI_EXPORTED MlirAttribute mlirDenseI64ArrayGet(MlirContext ctx, intptr_t size, int64_t const *values)
MLIR_CAPI_EXPORTED MlirTypeID mlirAffineMapAttrGetTypeID(void)
Returns the typeID of an AffineMap attribute.
MLIR_CAPI_EXPORTED MlirTypeID mlirSparseElementsAttrGetTypeID(void)
Returns the typeID of a SparseElements attribute.
MLIR_CAPI_EXPORTED MlirAttribute mlirSymbolRefAttrGetNestedReference(MlirAttribute attr, intptr_t pos)
Returns pos-th reference nested in the given symbol reference attribute.
MLIR_CAPI_EXPORTED MlirAttribute mlirDenseElementsAttrBFloat16Get(MlirType shapedType, intptr_t numElements, const uint16_t *elements)
MLIR_CAPI_EXPORTED MlirTypeID mlirArrayAttrGetTypeID(void)
Returns the typeID of an Array attribute.
MLIR_CAPI_EXPORTED float mlirDenseF32ArrayGetElement(MlirAttribute attr, intptr_t pos)
MLIR_CAPI_EXPORTED MlirAttribute mlirDenseF64ArrayGet(MlirContext ctx, intptr_t size, double const *values)
MLIR_CAPI_EXPORTED 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...
MLIR_CAPI_EXPORTED int64_t mlirIntegerAttrGetValueInt(MlirAttribute attr)
Returns the value stored in the given integer attribute, assuming the value is of signless type and f...
MLIR_CAPI_EXPORTED intptr_t mlirSymbolRefAttrGetNumNestedReferences(MlirAttribute attr)
Returns the number of references nested in the given symbol reference attribute.
MLIR_CAPI_EXPORTED MlirAttribute mlirDenseElementsAttrInt64Get(MlirType shapedType, intptr_t numElements, const int64_t *elements)
MLIR_CAPI_EXPORTED MlirType mlirTypeAttrGetValue(MlirAttribute attr)
Returns the type stored in the given type attribute.
MLIR_CAPI_EXPORTED bool mlirDenseElementsAttrIsSplat(MlirAttribute attr)
Checks whether the given dense elements attribute contains a single replicated value (splat).
MLIR_CAPI_EXPORTED 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...
MLIR_CAPI_EXPORTED bool mlirAttributeIsADenseBoolArray(MlirAttribute attr)
Checks whether the given attribute is a dense array attribute.
MLIR_CAPI_EXPORTED MlirStringRef mlirOpaqueAttrGetData(MlirAttribute attr)
Returns the raw data as a string reference.
MLIR_CAPI_EXPORTED MlirAttribute mlirUnmanagedDenseUInt16ResourceElementsAttrGet(MlirType shapedType, MlirStringRef name, intptr_t numElements, const uint16_t *elements)
MLIR_CAPI_EXPORTED uint8_t mlirDenseElementsAttrGetUInt8SplatValue(MlirAttribute attr)
MLIR_CAPI_EXPORTED double mlirDenseElementsAttrGetDoubleSplatValue(MlirAttribute attr)
MLIR_CAPI_EXPORTED MlirAttribute mlirAttributeGetNull(void)
Returns an empty attribute.
MLIR_CAPI_EXPORTED MlirAttribute mlirBoolAttrGet(MlirContext ctx, int value)
Creates a bool attribute in the given context with the given value.
MLIR_CAPI_EXPORTED MlirTypeID mlirFloatAttrGetTypeID(void)
Returns the typeID of a Float attribute.
MLIR_CAPI_EXPORTED int64_t mlirIntegerAttrGetValueSInt(MlirAttribute attr)
Returns the value stored in the given integer attribute, assuming the value is of signed type and fit...
MLIR_CAPI_EXPORTED int8_t mlirDenseI8ArrayGetElement(MlirAttribute attr, intptr_t pos)
MLIR_CAPI_EXPORTED MlirAttribute mlirDenseElementsAttrUInt32SplatGet(MlirType shapedType, uint32_t element)
MLIR_CAPI_EXPORTED MlirAttribute mlirDenseI32ArrayGet(MlirContext ctx, intptr_t size, int32_t const *values)
MLIR_CAPI_EXPORTED int64_t mlirDenseElementsAttrGetInt64Value(MlirAttribute attr, intptr_t pos)
MLIR_CAPI_EXPORTED MlirNamedAttribute mlirDictionaryAttrGetElement(MlirAttribute attr, intptr_t pos)
Returns pos-th element of the given dictionary attribute.
MLIR_CAPI_EXPORTED MlirTypeID mlirUnitAttrGetTypeID(void)
Returns the typeID of a Unit attribute.
MLIR_CAPI_EXPORTED MlirAttribute mlirDenseF32ArrayGet(MlirContext ctx, intptr_t size, float const *values)
MLIR_CAPI_EXPORTED MlirAttribute mlirDenseBoolArrayGet(MlirContext ctx, intptr_t size, int const *values)
Create a dense array attribute with the given elements.
MLIR_CAPI_EXPORTED MlirAttribute mlirSparseElementsAttrGetIndices(MlirAttribute attr)
Returns the dense elements attribute containing 64-bit integer indices of non-null elements in the gi...
MLIR_CAPI_EXPORTED bool mlirAttributeIsAOpaque(MlirAttribute attr)
Checks whether the given attribute is an opaque attribute.
MLIR_CAPI_EXPORTED MlirAttribute mlirArrayAttrGetElement(MlirAttribute attr, intptr_t pos)
Returns pos-th element stored in the given array attribute.
MLIR_CAPI_EXPORTED MlirAttribute mlirDictionaryAttrGetElementByName(MlirAttribute attr, MlirStringRef name)
Returns the dictionary attribute element with the given name or NULL if the given name does not exist...
MLIR_CAPI_EXPORTED MlirAttribute mlirDenseElementsAttrDoubleSplatGet(MlirType shapedType, double element)
MLIR_CAPI_EXPORTED MlirAttribute mlirUnmanagedDenseUInt64ResourceElementsAttrGet(MlirType shapedType, MlirStringRef name, intptr_t numElements, const uint64_t *elements)
MLIR_CAPI_EXPORTED bool mlirAttributeIsADenseF32Array(MlirAttribute attr)
MLIR_CAPI_EXPORTED MlirTypeID mlirSymbolRefAttrGetTypeID(void)
Returns the typeID of an SymbolRef attribute.
MLIR_CAPI_EXPORTED MlirTypeID mlirDenseArrayAttrGetTypeID(void)
MLIR_CAPI_EXPORTED MlirAttribute mlirDenseElementsAttrGetSplatValue(MlirAttribute attr)
Returns the single replicated value (splat) of a specific type contained by the given dense elements ...
MLIR_CAPI_EXPORTED bool mlirAttributeIsASymbolRef(MlirAttribute attr)
Checks whether the given attribute is a symbol reference attribute.
MLIR_CAPI_EXPORTED MlirAttribute mlirDenseElementsAttrUInt8Get(MlirType shapedType, intptr_t numElements, const uint8_t *elements)
MLIR_CAPI_EXPORTED MlirAttribute mlirUnmanagedDenseInt16ResourceElementsAttrGet(MlirType shapedType, MlirStringRef name, intptr_t numElements, const int16_t *elements)
MLIR_CAPI_EXPORTED float mlirDenseElementsAttrGetFloatValue(MlirAttribute attr, intptr_t pos)
MLIR_CAPI_EXPORTED bool mlirAttributeIsAString(MlirAttribute attr)
Checks whether the given attribute is a string attribute.
MLIR_CAPI_EXPORTED MlirAttribute mlirUnmanagedDenseInt32ResourceElementsAttrGet(MlirType shapedType, MlirStringRef name, intptr_t numElements, const int32_t *elements)
MLIR_CAPI_EXPORTED int64_t mlirElementsAttrGetNumElements(MlirAttribute attr)
Gets the total number of elements in the given elements attribute.
MLIR_CAPI_EXPORTED int16_t mlirDenseInt16ResourceElementsAttrGetValue(MlirAttribute attr, intptr_t pos)
MLIR_CAPI_EXPORTED MlirAttribute mlirDenseElementsAttrInt8Get(MlirType shapedType, intptr_t numElements, const int8_t *elements)
MLIR_CAPI_EXPORTED MlirStringRef mlirOpaqueAttrGetDialectNamespace(MlirAttribute attr)
Returns the namespace of the dialect with which the given opaque attribute is associated.
MLIR_CAPI_EXPORTED bool mlirAttributeIsADictionary(MlirAttribute attr)
Checks whether the given attribute is a dictionary attribute.
MLIR_CAPI_EXPORTED int32_t mlirDenseElementsAttrGetInt32Value(MlirAttribute attr, intptr_t pos)
MLIR_CAPI_EXPORTED MlirStringRef mlirStringAttrGetValue(MlirAttribute attr)
Returns the attribute values as a string reference.
MLIR_CAPI_EXPORTED uint32_t mlirDenseUInt32ResourceElementsAttrGetValue(MlirAttribute attr, intptr_t pos)
MLIR_CAPI_EXPORTED uint16_t mlirDenseUInt16ResourceElementsAttrGetValue(MlirAttribute attr, intptr_t pos)
MLIR_CAPI_EXPORTED 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.
MLIR_CAPI_EXPORTED MlirAttribute mlirDenseI16ArrayGet(MlirContext ctx, intptr_t size, int16_t const *values)
MLIR_CAPI_EXPORTED MlirAttribute mlirDenseElementsAttrInt32SplatGet(MlirType shapedType, int32_t element)
MLIR_CAPI_EXPORTED uint32_t mlirDenseElementsAttrGetUInt32SplatValue(MlirAttribute attr)
MLIR_CAPI_EXPORTED MlirStringRef mlirDenseElementsAttrGetStringSplatValue(MlirAttribute attr)
MLIR_CAPI_EXPORTED MlirTypeID mlirOpaqueAttrGetTypeID(void)
Returns the typeID of an Opaque attribute.
MLIR_CAPI_EXPORTED int64_t mlirDenseInt64ResourceElementsAttrGetValue(MlirAttribute attr, intptr_t pos)
MLIR_CAPI_EXPORTED double mlirFloatAttrGetValueDouble(MlirAttribute attr)
Returns the value stored in the given floating point attribute, interpreting the value as double.
MLIR_CAPI_EXPORTED uint64_t mlirIntegerAttrGetValueUInt(MlirAttribute attr)
Returns the value stored in the given integer attribute, assuming the value is of unsigned type and f...
MLIR_CAPI_EXPORTED uint8_t mlirDenseUInt8ResourceElementsAttrGetValue(MlirAttribute attr, intptr_t pos)
MLIR_CAPI_EXPORTED MlirAttribute mlirDenseElementsAttrFloatGet(MlirType shapedType, intptr_t numElements, const float *elements)
MLIR_CAPI_EXPORTED MlirAttribute mlirDenseElementsAttrUInt64Get(MlirType shapedType, intptr_t numElements, const uint64_t *elements)
MLIR_CAPI_EXPORTED MlirAttribute mlirDenseI8ArrayGet(MlirContext ctx, intptr_t size, int8_t const *values)
MLIR_CAPI_EXPORTED MlirAttribute mlirUnitAttrGet(MlirContext ctx)
Creates a unit attribute in the given context.
MLIR_CAPI_EXPORTED double mlirDenseElementsAttrGetDoubleValue(MlirAttribute attr, intptr_t pos)
MLIR_CAPI_EXPORTED MlirAttribute mlirUnmanagedDenseFloatResourceElementsAttrGet(MlirType shapedType, MlirStringRef name, intptr_t numElements, const float *elements)
MLIR_CAPI_EXPORTED intptr_t mlirStridedLayoutAttrGetNumStrides(MlirAttribute attr)
MLIR_CAPI_EXPORTED MlirAttribute mlirUnmanagedDenseBoolResourceElementsAttrGet(MlirType shapedType, MlirStringRef name, intptr_t numElements, const int *elements)
MLIR_CAPI_EXPORTED 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...
MLIR_CAPI_EXPORTED int64_t mlirDenseElementsAttrGetInt64SplatValue(MlirAttribute attr)
MLIR_CAPI_EXPORTED MlirAttribute mlirArrayAttrGet(MlirContext ctx, intptr_t numElements, MlirAttribute const *elements)
Creates an array element containing the given list of elements in the given context.
MLIR_CAPI_EXPORTED intptr_t mlirDenseArrayGetNumElements(MlirAttribute attr)
Get the size of a dense array.
MLIR_CAPI_EXPORTED MlirAttribute mlirDenseElementsAttrBoolSplatGet(MlirType shapedType, bool element)
MLIR_CAPI_EXPORTED bool mlirElementsAttrIsValidIndex(MlirAttribute attr, intptr_t rank, uint64_t *idxs)
Checks whether the given rank-dimensional index is valid in the given elements attribute.
MLIR_CAPI_EXPORTED bool mlirAttributeIsAFloat(MlirAttribute attr)
Checks whether the given attribute is a floating point attribute.
MLIR_CAPI_EXPORTED 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...
MLIR_CAPI_EXPORTED int32_t mlirDenseElementsAttrGetInt32SplatValue(MlirAttribute attr)
MLIR_CAPI_EXPORTED MlirTypeID mlirTypeAttrGetTypeID(void)
Returns the typeID of a Type attribute.
MLIR_CAPI_EXPORTED float mlirDenseFloatResourceElementsAttrGetValue(MlirAttribute attr, intptr_t pos)
MLIR_CAPI_EXPORTED MlirAttribute mlirDenseElementsAttrSplatGet(MlirType shapedType, MlirAttribute element)
Creates a dense elements attribute with the given Shaped type containing a single replicated element ...
MLIR_CAPI_EXPORTED MlirTypeID mlirDictionaryAttrGetTypeID(void)
Returns the typeID of a Dictionary attribute.
MLIR_CAPI_EXPORTED bool mlirAttributeIsAElements(MlirAttribute attr)
Checks whether the given attribute is an elements attribute.
MLIR_CAPI_EXPORTED MlirAttribute mlirStringAttrGet(MlirContext ctx, MlirStringRef str)
Creates a string attribute in the given context containing the given string.
MLIR_CAPI_EXPORTED MlirAttribute mlirDenseElementsAttrUInt64SplatGet(MlirType shapedType, uint64_t element)
MLIR_CAPI_EXPORTED MlirAttribute mlirTypeAttrGet(MlirType type)
Creates a type attribute wrapping the given type in the same context as the type.
MLIR_CAPI_EXPORTED intptr_t mlirArrayAttrGetNumElements(MlirAttribute attr)
Returns the number of elements stored in the given array attribute.
MLIR_CAPI_EXPORTED 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,...
MLIR_CAPI_EXPORTED MlirAttribute mlirUnmanagedDenseInt64ResourceElementsAttrGet(MlirType shapedType, MlirStringRef name, intptr_t numElements, const int64_t *elements)
MLIR_CAPI_EXPORTED bool mlirAttributeIsADenseI32Array(MlirAttribute attr)
MLIR_CAPI_EXPORTED int mlirDenseElementsAttrGetBoolSplatValue(MlirAttribute attr)
MLIR_CAPI_EXPORTED MlirAttribute mlirUnmanagedDenseDoubleResourceElementsAttrGet(MlirType shapedType, MlirStringRef name, intptr_t numElements, const double *elements)
MLIR_CAPI_EXPORTED bool mlirAttributeIsADenseI8Array(MlirAttribute attr)
MLIR_CAPI_EXPORTED MlirAttribute mlirStringAttrTypedGet(MlirType type, MlirStringRef str)
Creates a string attribute in the given context containing the given string.
MLIR_CAPI_EXPORTED bool mlirAttributeIsAFlatSymbolRef(MlirAttribute attr)
Checks whether the given attribute is a flat symbol reference attribute.
MLIR_CAPI_EXPORTED MlirStringRef mlirFlatSymbolRefAttrGetValue(MlirAttribute attr)
Returns the referenced symbol as a string reference.
MLIR_CAPI_EXPORTED MlirAttribute mlirUnmanagedDenseUInt32ResourceElementsAttrGet(MlirType shapedType, MlirStringRef name, intptr_t numElements, const uint32_t *elements)
MLIR_CAPI_EXPORTED MlirStringRef mlirSymbolRefAttrGetLeafReference(MlirAttribute attr)
Returns the string reference to the leaf referenced symbol.
MLIR_CAPI_EXPORTED bool mlirAttributeIsADenseI16Array(MlirAttribute attr)
MLIR_CAPI_EXPORTED MlirAttribute mlirDenseElementsAttrDoubleGet(MlirType shapedType, intptr_t numElements, const double *elements)
MLIR_CAPI_EXPORTED bool mlirAttributeIsADenseF64Array(MlirAttribute attr)
MLIR_CAPI_EXPORTED uint32_t mlirDenseElementsAttrGetUInt32Value(MlirAttribute attr, intptr_t pos)
MLIR_CAPI_EXPORTED float mlirDenseElementsAttrGetFloatSplatValue(MlirAttribute attr)
#define MLIR_CAPI_EXPORTED
Definition Support.h:46
Named MLIR attribute.
Definition IR.h:76
A pointer to a sized fragment of a string, not necessarily null-terminated.
Definition Support.h:73