Fast & Device Agnostic
Effortlessly execute your code on CPU, GPU, and TPU with MLIR and XLA.
diff --git a/previews/PR363/404.html b/previews/PR363/404.html new file mode 100644 index 00000000..03555956 --- /dev/null +++ b/previews/PR363/404.html @@ -0,0 +1,25 @@ + + +
+ + +apply
The affine.apply
operation applies an affine mapping to a list of SSA values, yielding a single SSA value. The number of dimension and symbol arguments to affine.apply
must be equal to the respective number of dimensional and symbolic inputs to the affine mapping; the affine mapping has to be one-dimensional, and so the affine.apply
operation always returns one value. The input operands and result must all have ‘index’ type.
Example
#map10 = affine_map<(d0, d1) -> (d0 floordiv 8 + d1 floordiv 128)>
+...
+%1 = affine.apply #map10 (%s, %t)
+
+// Inline example.
+%2 = affine.apply affine_map<(i)[s0] -> (i+s0)> (%42)[%n]
delinearize_index
The affine.delinearize_index
operation takes a single index value and calculates the multi-index according to the given basis.
Example
%indices:3 = affine.delinearize_index %linear_index into (%c16, %c224, %c224) : index, index, index
In the above example, %indices:3
conceptually holds the following:
#map0 = affine_map<()[s0] -> (s0 floordiv 50176)>
+#map1 = affine_map<()[s0] -> ((s0 mod 50176) floordiv 224)>
+#map2 = affine_map<()[s0] -> (s0 mod 224)>
+%indices_0 = affine.apply #map0()[%linear_index]
+%indices_1 = affine.apply #map1()[%linear_index]
+%indices_2 = affine.apply #map2()[%linear_index]
for_
Syntax
operation ::= \`affine.for\` ssa-id \`=\` lower-bound \`to\` upper-bound
+ (\`step\` integer-literal)? \`{\` op* \`}\`
+
+lower-bound ::= \`max\`? affine-map-attribute dim-and-symbol-use-list | shorthand-bound
+upper-bound ::= \`min\`? affine-map-attribute dim-and-symbol-use-list | shorthand-bound
+shorthand-bound ::= ssa-id | \`-\`? integer-literal
The affine.for
operation represents an affine loop nest. It has one region containing its body. This region must contain one block that terminates with affine.yield
. Note: when affine.for
is printed in custom format, the terminator is omitted. The block has one argument of index
type that represents the induction variable of the loop.
The affine.for
operation executes its body a number of times iterating from a lower bound to an upper bound by a stride. The stride, represented by step
, is a positive constant integer which defaults to "1" if not present. The lower and upper bounds specify a half-open range: the range includes the lower bound but does not include the upper bound.
The lower and upper bounds of a affine.for
operation are represented as an application of an affine mapping to a list of SSA values passed to the map. The same restrictions hold for these SSA values as for all bindings of SSA values to dimensions and symbols.
The affine mappings for the bounds may return multiple results, in which case the max
/min
keywords are required (for the lower/upper bound respectively), and the bound is the maximum/minimum of the returned values. There is no semantic ambiguity, but MLIR syntax requires the use of these keywords to make things more obvious to human readers.
Many upper and lower bounds are simple, so MLIR accepts two custom form syntaxes: the form that accepts a single 'ssa-id' (e.g. %N
) is shorthand for applying that SSA value to a function that maps a single symbol to itself, e.g., ()[s]->(s)()[%N]
. The integer literal form (e.g. -42
) is shorthand for a nullary mapping function that returns the constant value (e.g. ()->(-42)()
).
Example showing reverse iteration of the inner loop:
#map57 = affine_map<(d0)[s0] -> (s0 - d0 - 1)>
+
+func.func @simple_example(%A: memref<?x?xf32>, %B: memref<?x?xf32>) {
+ %N = dim %A, 0 : memref<?x?xf32>
+ affine.for %i = 0 to %N step 1 {
+ affine.for %j = 0 to %N { // implicitly steps by 1
+ %0 = affine.apply #map57(%j)[%N]
+ %tmp = call @F1(%A, %i, %0) : (memref<?x?xf32>, index, index)->(f32)
+ call @F2(%tmp, %B, %i, %0) : (f32, memref<?x?xf32>, index, index)->()
+ }
+ }
+ return
+}
affine.for
can also operate on loop-carried variables (iter_args
) and return the final values after loop termination. The initial values of the variables are passed as additional SSA operands to the affine.for
following the operands for the loop's lower and upper bounds. The operation's region has equivalent arguments for each variable representing the value of the variable at the current iteration.
The region must terminate with an affine.yield
that passes all the current iteration variables to the next iteration, or to the affine.for
's results if at the last iteration. For affine.for
's that execute zero iterations, the initial values of the loop-carried variables (corresponding to the SSA operands) will be the op's results.
For example, to sum-reduce a memref:
func.func @reduce(%buffer: memref<1024xf32>) -> (f32) {
+ // Initial sum set to 0.
+ %sum_0 = arith.constant 0.0 : f32
+ // iter_args binds initial values to the loop's region arguments.
+ %sum = affine.for %i = 0 to 10 step 2
+ iter_args(%sum_iter = %sum_0) -> (f32) {
+ %t = affine.load %buffer[%i] : memref<1024xf32>
+ %sum_next = arith.addf %sum_iter, %t : f32
+ // Yield current iteration sum to next iteration %sum_iter or to %sum
+ // if final iteration.
+ affine.yield %sum_next : f32
+ }
+ return %sum : f32
+}
%res:2 = affine.for %i = 0 to 128 iter_args(%arg0 = %init0, %arg1 = %init1)
+ -> (index, index) {
+ %y0 = arith.addi %arg0, %c1 : index
+ %y1 = arith.addi %arg1, %c2 : index
+ affine.yield %y0, %y1 : index, index
+}
If the affine.for
defines any values, a yield terminator must be explicitly present. The number and types of the "affine.for" results must match the initial values in the iter_args
binding and the yield operands.
if_
Syntax
operation ::= \`affine.if\` if-op-cond \`{\` op* \`}\` (\`else\` \`{\` op* \`}\`)?
+if-op-cond ::= integer-set-attr dim-and-symbol-use-list
The affine.if
operation restricts execution to a subset of the loop iteration space defined by an integer set (a conjunction of affine constraints). A single affine.if
may end with an optional else
clause.
The condition of the affine.if
is represented by an integer set (a conjunction of affine constraints), and the SSA values bound to the dimensions and symbols in the integer set. The same restrictions hold for these SSA values as for all bindings of SSA values to dimensions and symbols.
The affine.if
operation contains two regions for the "then" and "else" clauses. affine.if
may return results that are defined in its regions. The values defined are determined by which execution path is taken. Each region of the affine.if
must contain a single block with no arguments, and be terminated by affine.yield
. If affine.if
defines no values, the affine.yield
can be left out, and will be inserted implicitly. Otherwise, it must be explicit. If no values are defined, the else block may be empty (i.e. contain no blocks).
Example
#set = affine_set<(d0, d1)[s0]: (d0 - 10 >= 0, s0 - d0 - 9 >= 0,
+ d1 - 10 >= 0, s0 - d1 - 9 >= 0)>
+func.func @reduced_domain_example(%A, %X, %N) : (memref<10xi32>, i32, i32) {
+ affine.for %i = 0 to %N {
+ affine.for %j = 0 to %N {
+ %0 = affine.apply #map42(%j)
+ %tmp = call @S1(%X, %i, %0)
+ affine.if #set(%i, %j)[%N] {
+ %1 = affine.apply #map43(%i, %j)
+ call @S2(%tmp, %A, %i, %1)
+ }
+ }
+ }
+ return
+}
Example with an explicit yield (initialization with edge padding):
#interior = affine_set<(i, j) : (i - 1 >= 0, j - 1 >= 0, 10 - i >= 0, 10 - j >= 0)> (%i, %j)
+func.func @pad_edges(%I : memref<10x10xf32>) -> (memref<12x12xf32) {
+ %O = alloc memref<12x12xf32>
+ affine.parallel (%i, %j) = (0, 0) to (12, 12) {
+ %1 = affine.if #interior (%i, %j) {
+ %2 = load %I[%i - 1, %j - 1] : memref<10x10xf32>
+ affine.yield %2
+ } else {
+ %2 = arith.constant 0.0 : f32
+ affine.yield %2 : f32
+ }
+ affine.store %1, %O[%i, %j] : memref<12x12xf32>
+ }
+ return %O
+}
load
Syntax
operation ::= ssa-id `=` `affine.load` ssa-use `[` multi-dim-affine-map-of-ssa-ids `]` `:` memref-type
The affine.load
op reads an element from a memref, where the index for each memref dimension is an affine expression of loop induction variables and symbols. The output of affine.load
is a new value with the same type as the elements of the memref. An affine expression of loop IVs and symbols must be specified for each dimension of the memref. The keyword symbol
can be used to indicate SSA identifiers which are symbolic.
Example 1:
%1 = affine.load %0[%i0 + 3, %i1 + 7] : memref<100x100xf32>
Example 2: Uses symbol
keyword for symbols %n
and %m
.
%1 = affine.load %0[%i0 + symbol(%n), %i1 + symbol(%m)] : memref<100x100xf32>
max
The affine.max
operation computes the maximum value result from a multi-result affine map.
Example
%0 = affine.max (d0) -> (1000, d0 + 512) (%i0) : index
min
Syntax
operation ::= ssa-id `=` `affine.min` affine-map-attribute dim-and-symbol-use-list
The affine.min
operation applies an affine mapping to a list of SSA values, and returns the minimum value of all result expressions. The number of dimension and symbol arguments to affine.min
must be equal to the respective number of dimensional and symbolic inputs to the affine mapping; the affine.min
operation always returns one value. The input operands and result must all have 'index' type.
Example
%0 = affine.min affine_map<(d0)[s0] -> (1000, d0 + 512, s0)> (%arg0)[%arg1]
parallel
The affine.parallel
operation represents a hyper-rectangular affine parallel band, defining zero or more SSA values for its induction variables. It has one region capturing the parallel band body. The induction variables are represented as arguments of this region. These SSA values always have type index, which is the size of the machine word. The strides, represented by steps, are positive constant integers which defaults to "1" if not present. The lower and upper bounds specify a half-open range: the range includes the lower bound but does not include the upper bound. The body region must contain exactly one block that terminates with affine.yield
.
The lower and upper bounds of a parallel operation are represented as an application of an affine mapping to a list of SSA values passed to the map. The same restrictions hold for these SSA values as for all bindings of SSA values to dimensions and symbols. The list of expressions in each map is interpreted according to the respective bounds group attribute. If a single expression belongs to the group, then the result of this expression is taken as a lower(upper) bound of the corresponding loop induction variable. If multiple expressions belong to the group, then the lower(upper) bound is the max(min) of these values obtained from these expressions. The loop band has as many loops as elements in the group bounds attributes.
Each value yielded by affine.yield
will be accumulated/reduced via one of the reduction methods defined in the AtomicRMWKind enum. The order of reduction is unspecified, and lowering may produce any valid ordering. Loops with a 0 trip count will produce as a result the identity value associated with each reduction (i.e. 0.0 for addf, 1.0 for mulf). Assign reductions for loops with a trip count != 1 produces undefined results.
Note: Calling AffineParallelOp::build
will create the required region and block, and insert the required terminator if it is trivial (i.e. no values are yielded). Parsing will also create the required region, block, and terminator, even when they are missing from the textual representation.
Example (3x3 valid convolution):
func.func @conv_2d(%D : memref<100x100xf32>, %K : memref<3x3xf32>) -> (memref<98x98xf32>) {
+ %O = memref.alloc() : memref<98x98xf32>
+ affine.parallel (%x, %y) = (0, 0) to (98, 98) {
+ %0 = affine.parallel (%kx, %ky) = (0, 0) to (2, 2) reduce ("addf") -> f32 {
+ %1 = affine.load %D[%x + %kx, %y + %ky] : memref<100x100xf32>
+ %2 = affine.load %K[%kx, %ky] : memref<3x3xf32>
+ %3 = arith.mulf %1, %2 : f32
+ affine.yield %3 : f32
+ }
+ affine.store %0, %O[%x, %y] : memref<98x98xf32>
+ }
+ return %O : memref<98x98xf32>
+}
Example (tiling by potentially imperfectly dividing sizes):
affine.parallel (%ii, %jj) = (0, 0) to (%N, %M) step (32, 32) {
+ affine.parallel (%i, %j) = (%ii, %jj)
+ to (min(%ii + 32, %N), min(%jj + 32, %M)) {
+ call @f(%i, %j) : (index, index) -> ()
+ }
+}
prefetch
The affine.prefetch
op prefetches data from a memref location described with an affine subscript similar to affine.load, and has three attributes: a read/write specifier, a locality hint, and a cache type specifier as shown below:
affine.prefetch %0[%i, %j + 5], read, locality<3>, data : memref<400x400xi32>
The read/write specifier is either 'read' or 'write', the locality hint specifier ranges from locality<0> (no locality) to locality<3> (extremely local keep in cache). The cache type specifier is either 'data' or 'instr' and specifies whether the prefetch is performed on data cache or on instruction cache.
',5))]),a("details",R,[a("summary",null,[e[27]||(e[27]=a("a",{id:"Reactant.MLIR.Dialects.affine.store-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value, Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.affine.store-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value, Vector{Reactant.MLIR.IR.Value}}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.affine.store")],-1)),e[28]||(e[28]=s()),t(n,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[29]||(e[29]=i('store
Syntax
operation ::= `affine.store` ssa-use, ssa-use `[` multi-dim-affine-map-of-ssa-ids `]` `:` memref-type
The affine.store
op writes an element to a memref, where the index for each memref dimension is an affine expression of loop induction variables and symbols. The affine.store
op stores a new value which is the same type as the elements of the memref. An affine expression of loop IVs and symbols must be specified for each dimension of the memref. The keyword symbol
can be used to indicate SSA identifiers which are symbolic.
Example 1:
affine.store %v0, %0[%i0 + 3, %i1 + 7] : memref<100x100xf32>
Example 2: Uses symbol
keyword for symbols %n
and %m
.
affine.store %v0, %0[%i0 + symbol(%n), %i1 + symbol(%m)] : memref<100x100xf32>
vector_load
The affine.vector_load
is the vector counterpart of affine.load. It reads a slice from a MemRef, supplied as its first operand, into a vector of the same base elemental type. The index for each memref dimension is an affine expression of loop induction variables and symbols. These indices determine the start position of the read within the memref. The shape of the return vector type determines the shape of the slice read from the memref. This slice is contiguous along the respective dimensions of the shape. Strided vector loads will be supported in the future. An affine expression of loop IVs and symbols must be specified for each dimension of the memref. The keyword symbol
can be used to indicate SSA identifiers which are symbolic.
Example 1: 8-wide f32 vector load.
%1 = affine.vector_load %0[%i0 + 3, %i1 + 7] : memref<100x100xf32>, vector<8xf32>
Example 2: 4-wide f32 vector load. Uses symbol
keyword for symbols %n
and %m
.
%1 = affine.vector_load %0[%i0 + symbol(%n), %i1 + symbol(%m)] : memref<100x100xf32>, vector<4xf32>
Example 3: 2-dim f32 vector load.
%1 = affine.vector_load %0[%i0, %i1] : memref<100x100xf32>, vector<2x8xf32>
TODOs:
Add support for strided vector loads.
Consider adding a permutation map to permute the slice that is read from memory
(see vector.transfer_read).
',12))]),a("details",I,[a("summary",null,[e[33]||(e[33]=a("a",{id:"Reactant.MLIR.Dialects.affine.vector_store-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value, Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.affine.vector_store-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value, Vector{Reactant.MLIR.IR.Value}}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.affine.vector_store")],-1)),e[34]||(e[34]=s()),t(n,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[35]||(e[35]=i('vector_store
The affine.vector_store
is the vector counterpart of affine.store. It writes a vector, supplied as its first operand, into a slice within a MemRef of the same base elemental type, supplied as its second operand. The index for each memref dimension is an affine expression of loop induction variables and symbols. These indices determine the start position of the write within the memref. The shape of th input vector determines the shape of the slice written to the memref. This slice is contiguous along the respective dimensions of the shape. Strided vector stores will be supported in the future. An affine expression of loop IVs and symbols must be specified for each dimension of the memref. The keyword symbol
can be used to indicate SSA identifiers which are symbolic.
Example 1: 8-wide f32 vector store.
affine.vector_store %v0, %0[%i0 + 3, %i1 + 7] : memref<100x100xf32>, vector<8xf32>
Example 2: 4-wide f32 vector store. Uses symbol
keyword for symbols %n
and %m
.
affine.vector_store %v0, %0[%i0 + symbol(%n), %i1 + symbol(%m)] : memref<100x100xf32>, vector<4xf32>
Example 3: 2-dim f32 vector store.
affine.vector_store %v0, %0[%i0, %i1] : memref<100x100xf32>, vector<2x8xf32>
TODOs:
Add support for strided vector stores.
Consider adding a permutation map to permute the slice that is written to memory
(see vector.transfer_write).
',12))]),a("details",k,[a("summary",null,[e[36]||(e[36]=a("a",{id:"Reactant.MLIR.Dialects.affine.yield-Tuple{Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.affine.yield-Tuple{Vector{Reactant.MLIR.IR.Value}}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.affine.yield")],-1)),e[37]||(e[37]=s()),t(n,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[38]||(e[38]=a("p",null,[a("code",null,"yield")],-1)),e[39]||(e[39]=a("p",null,[s("The "),a("code",null,"affine.yield"),s(" yields zero or more SSA values from an affine op region and terminates the region. The semantics of how the values yielded are used is defined by the parent operation. If "),a("code",null,"affine.yield"),s(" has any operands, the operands must match the parent operation's results. If the parent operation defines no values, then the "),a("code",null,"affine.yield"),s(" may be left out in the custom syntax and the builders will insert one implicitly. Otherwise, it has to be present in the syntax to indicate which values are yielded.")],-1)),e[40]||(e[40]=a("p",null,[a("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/Affine.jl#L808-L820",target:"_blank",rel:"noreferrer"},"source")],-1))])])}const C=l(d,[["render",j]]);export{A as __pageData,C as default}; diff --git a/previews/PR363/assets/api_affine.md.5iiZk8SU.lean.js b/previews/PR363/assets/api_affine.md.5iiZk8SU.lean.js new file mode 100644 index 00000000..8381284c --- /dev/null +++ b/previews/PR363/assets/api_affine.md.5iiZk8SU.lean.js @@ -0,0 +1,92 @@ +import{_ as l,c as o,j as a,a as s,G as t,a2 as i,B as p,o as r}from"./chunks/framework.2yyKLD8d.js";const A=JSON.parse('{"title":"Affine Dialect","description":"","frontmatter":{},"headers":[],"relativePath":"api/affine.md","filePath":"api/affine.md","lastUpdated":null}'),d={name:"api/affine.md"},c={class:"jldocstring custom-block"},f={class:"jldocstring custom-block"},m={class:"jldocstring custom-block"},u={class:"jldocstring custom-block"},h={class:"jldocstring custom-block"},g={class:"jldocstring custom-block"},b={class:"jldocstring custom-block"},y={class:"jldocstring custom-block"},v={class:"jldocstring custom-block"},R={class:"jldocstring custom-block"},x={class:"jldocstring custom-block"},I={class:"jldocstring custom-block"},k={class:"jldocstring custom-block"};function j(M,e,L,w,T,V){const n=p("Badge");return r(),o("div",null,[e[41]||(e[41]=a("h1",{id:"Affine-Dialect",tabindex:"-1"},[s("Affine Dialect "),a("a",{class:"header-anchor",href:"#Affine-Dialect","aria-label":'Permalink to "Affine Dialect {#Affine-Dialect}"'},"")],-1)),e[42]||(e[42]=a("p",null,[s("Refer to the "),a("a",{href:"https://mlir.llvm.org/docs/Dialects/Affine/",target:"_blank",rel:"noreferrer"},"official documentation"),s(" for more details.")],-1)),a("details",c,[a("summary",null,[e[0]||(e[0]=a("a",{id:"Reactant.MLIR.Dialects.affine.apply-Tuple{Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.affine.apply-Tuple{Vector{Reactant.MLIR.IR.Value}}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.affine.apply")],-1)),e[1]||(e[1]=s()),t(n,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[2]||(e[2]=i(`apply
The affine.apply
operation applies an affine mapping to a list of SSA values, yielding a single SSA value. The number of dimension and symbol arguments to affine.apply
must be equal to the respective number of dimensional and symbolic inputs to the affine mapping; the affine mapping has to be one-dimensional, and so the affine.apply
operation always returns one value. The input operands and result must all have ‘index’ type.
Example
#map10 = affine_map<(d0, d1) -> (d0 floordiv 8 + d1 floordiv 128)>
+...
+%1 = affine.apply #map10 (%s, %t)
+
+// Inline example.
+%2 = affine.apply affine_map<(i)[s0] -> (i+s0)> (%42)[%n]
delinearize_index
The affine.delinearize_index
operation takes a single index value and calculates the multi-index according to the given basis.
Example
%indices:3 = affine.delinearize_index %linear_index into (%c16, %c224, %c224) : index, index, index
In the above example, %indices:3
conceptually holds the following:
#map0 = affine_map<()[s0] -> (s0 floordiv 50176)>
+#map1 = affine_map<()[s0] -> ((s0 mod 50176) floordiv 224)>
+#map2 = affine_map<()[s0] -> (s0 mod 224)>
+%indices_0 = affine.apply #map0()[%linear_index]
+%indices_1 = affine.apply #map1()[%linear_index]
+%indices_2 = affine.apply #map2()[%linear_index]
for_
Syntax
operation ::= \`affine.for\` ssa-id \`=\` lower-bound \`to\` upper-bound
+ (\`step\` integer-literal)? \`{\` op* \`}\`
+
+lower-bound ::= \`max\`? affine-map-attribute dim-and-symbol-use-list | shorthand-bound
+upper-bound ::= \`min\`? affine-map-attribute dim-and-symbol-use-list | shorthand-bound
+shorthand-bound ::= ssa-id | \`-\`? integer-literal
The affine.for
operation represents an affine loop nest. It has one region containing its body. This region must contain one block that terminates with affine.yield
. Note: when affine.for
is printed in custom format, the terminator is omitted. The block has one argument of index
type that represents the induction variable of the loop.
The affine.for
operation executes its body a number of times iterating from a lower bound to an upper bound by a stride. The stride, represented by step
, is a positive constant integer which defaults to "1" if not present. The lower and upper bounds specify a half-open range: the range includes the lower bound but does not include the upper bound.
The lower and upper bounds of a affine.for
operation are represented as an application of an affine mapping to a list of SSA values passed to the map. The same restrictions hold for these SSA values as for all bindings of SSA values to dimensions and symbols.
The affine mappings for the bounds may return multiple results, in which case the max
/min
keywords are required (for the lower/upper bound respectively), and the bound is the maximum/minimum of the returned values. There is no semantic ambiguity, but MLIR syntax requires the use of these keywords to make things more obvious to human readers.
Many upper and lower bounds are simple, so MLIR accepts two custom form syntaxes: the form that accepts a single 'ssa-id' (e.g. %N
) is shorthand for applying that SSA value to a function that maps a single symbol to itself, e.g., ()[s]->(s)()[%N]
. The integer literal form (e.g. -42
) is shorthand for a nullary mapping function that returns the constant value (e.g. ()->(-42)()
).
Example showing reverse iteration of the inner loop:
#map57 = affine_map<(d0)[s0] -> (s0 - d0 - 1)>
+
+func.func @simple_example(%A: memref<?x?xf32>, %B: memref<?x?xf32>) {
+ %N = dim %A, 0 : memref<?x?xf32>
+ affine.for %i = 0 to %N step 1 {
+ affine.for %j = 0 to %N { // implicitly steps by 1
+ %0 = affine.apply #map57(%j)[%N]
+ %tmp = call @F1(%A, %i, %0) : (memref<?x?xf32>, index, index)->(f32)
+ call @F2(%tmp, %B, %i, %0) : (f32, memref<?x?xf32>, index, index)->()
+ }
+ }
+ return
+}
affine.for
can also operate on loop-carried variables (iter_args
) and return the final values after loop termination. The initial values of the variables are passed as additional SSA operands to the affine.for
following the operands for the loop's lower and upper bounds. The operation's region has equivalent arguments for each variable representing the value of the variable at the current iteration.
The region must terminate with an affine.yield
that passes all the current iteration variables to the next iteration, or to the affine.for
's results if at the last iteration. For affine.for
's that execute zero iterations, the initial values of the loop-carried variables (corresponding to the SSA operands) will be the op's results.
For example, to sum-reduce a memref:
func.func @reduce(%buffer: memref<1024xf32>) -> (f32) {
+ // Initial sum set to 0.
+ %sum_0 = arith.constant 0.0 : f32
+ // iter_args binds initial values to the loop's region arguments.
+ %sum = affine.for %i = 0 to 10 step 2
+ iter_args(%sum_iter = %sum_0) -> (f32) {
+ %t = affine.load %buffer[%i] : memref<1024xf32>
+ %sum_next = arith.addf %sum_iter, %t : f32
+ // Yield current iteration sum to next iteration %sum_iter or to %sum
+ // if final iteration.
+ affine.yield %sum_next : f32
+ }
+ return %sum : f32
+}
%res:2 = affine.for %i = 0 to 128 iter_args(%arg0 = %init0, %arg1 = %init1)
+ -> (index, index) {
+ %y0 = arith.addi %arg0, %c1 : index
+ %y1 = arith.addi %arg1, %c2 : index
+ affine.yield %y0, %y1 : index, index
+}
If the affine.for
defines any values, a yield terminator must be explicitly present. The number and types of the "affine.for" results must match the initial values in the iter_args
binding and the yield operands.
if_
Syntax
operation ::= \`affine.if\` if-op-cond \`{\` op* \`}\` (\`else\` \`{\` op* \`}\`)?
+if-op-cond ::= integer-set-attr dim-and-symbol-use-list
The affine.if
operation restricts execution to a subset of the loop iteration space defined by an integer set (a conjunction of affine constraints). A single affine.if
may end with an optional else
clause.
The condition of the affine.if
is represented by an integer set (a conjunction of affine constraints), and the SSA values bound to the dimensions and symbols in the integer set. The same restrictions hold for these SSA values as for all bindings of SSA values to dimensions and symbols.
The affine.if
operation contains two regions for the "then" and "else" clauses. affine.if
may return results that are defined in its regions. The values defined are determined by which execution path is taken. Each region of the affine.if
must contain a single block with no arguments, and be terminated by affine.yield
. If affine.if
defines no values, the affine.yield
can be left out, and will be inserted implicitly. Otherwise, it must be explicit. If no values are defined, the else block may be empty (i.e. contain no blocks).
Example
#set = affine_set<(d0, d1)[s0]: (d0 - 10 >= 0, s0 - d0 - 9 >= 0,
+ d1 - 10 >= 0, s0 - d1 - 9 >= 0)>
+func.func @reduced_domain_example(%A, %X, %N) : (memref<10xi32>, i32, i32) {
+ affine.for %i = 0 to %N {
+ affine.for %j = 0 to %N {
+ %0 = affine.apply #map42(%j)
+ %tmp = call @S1(%X, %i, %0)
+ affine.if #set(%i, %j)[%N] {
+ %1 = affine.apply #map43(%i, %j)
+ call @S2(%tmp, %A, %i, %1)
+ }
+ }
+ }
+ return
+}
Example with an explicit yield (initialization with edge padding):
#interior = affine_set<(i, j) : (i - 1 >= 0, j - 1 >= 0, 10 - i >= 0, 10 - j >= 0)> (%i, %j)
+func.func @pad_edges(%I : memref<10x10xf32>) -> (memref<12x12xf32) {
+ %O = alloc memref<12x12xf32>
+ affine.parallel (%i, %j) = (0, 0) to (12, 12) {
+ %1 = affine.if #interior (%i, %j) {
+ %2 = load %I[%i - 1, %j - 1] : memref<10x10xf32>
+ affine.yield %2
+ } else {
+ %2 = arith.constant 0.0 : f32
+ affine.yield %2 : f32
+ }
+ affine.store %1, %O[%i, %j] : memref<12x12xf32>
+ }
+ return %O
+}
load
Syntax
operation ::= ssa-id `=` `affine.load` ssa-use `[` multi-dim-affine-map-of-ssa-ids `]` `:` memref-type
The affine.load
op reads an element from a memref, where the index for each memref dimension is an affine expression of loop induction variables and symbols. The output of affine.load
is a new value with the same type as the elements of the memref. An affine expression of loop IVs and symbols must be specified for each dimension of the memref. The keyword symbol
can be used to indicate SSA identifiers which are symbolic.
Example 1:
%1 = affine.load %0[%i0 + 3, %i1 + 7] : memref<100x100xf32>
Example 2: Uses symbol
keyword for symbols %n
and %m
.
%1 = affine.load %0[%i0 + symbol(%n), %i1 + symbol(%m)] : memref<100x100xf32>
max
The affine.max
operation computes the maximum value result from a multi-result affine map.
Example
%0 = affine.max (d0) -> (1000, d0 + 512) (%i0) : index
min
Syntax
operation ::= ssa-id `=` `affine.min` affine-map-attribute dim-and-symbol-use-list
The affine.min
operation applies an affine mapping to a list of SSA values, and returns the minimum value of all result expressions. The number of dimension and symbol arguments to affine.min
must be equal to the respective number of dimensional and symbolic inputs to the affine mapping; the affine.min
operation always returns one value. The input operands and result must all have 'index' type.
Example
%0 = affine.min affine_map<(d0)[s0] -> (1000, d0 + 512, s0)> (%arg0)[%arg1]
parallel
The affine.parallel
operation represents a hyper-rectangular affine parallel band, defining zero or more SSA values for its induction variables. It has one region capturing the parallel band body. The induction variables are represented as arguments of this region. These SSA values always have type index, which is the size of the machine word. The strides, represented by steps, are positive constant integers which defaults to "1" if not present. The lower and upper bounds specify a half-open range: the range includes the lower bound but does not include the upper bound. The body region must contain exactly one block that terminates with affine.yield
.
The lower and upper bounds of a parallel operation are represented as an application of an affine mapping to a list of SSA values passed to the map. The same restrictions hold for these SSA values as for all bindings of SSA values to dimensions and symbols. The list of expressions in each map is interpreted according to the respective bounds group attribute. If a single expression belongs to the group, then the result of this expression is taken as a lower(upper) bound of the corresponding loop induction variable. If multiple expressions belong to the group, then the lower(upper) bound is the max(min) of these values obtained from these expressions. The loop band has as many loops as elements in the group bounds attributes.
Each value yielded by affine.yield
will be accumulated/reduced via one of the reduction methods defined in the AtomicRMWKind enum. The order of reduction is unspecified, and lowering may produce any valid ordering. Loops with a 0 trip count will produce as a result the identity value associated with each reduction (i.e. 0.0 for addf, 1.0 for mulf). Assign reductions for loops with a trip count != 1 produces undefined results.
Note: Calling AffineParallelOp::build
will create the required region and block, and insert the required terminator if it is trivial (i.e. no values are yielded). Parsing will also create the required region, block, and terminator, even when they are missing from the textual representation.
Example (3x3 valid convolution):
func.func @conv_2d(%D : memref<100x100xf32>, %K : memref<3x3xf32>) -> (memref<98x98xf32>) {
+ %O = memref.alloc() : memref<98x98xf32>
+ affine.parallel (%x, %y) = (0, 0) to (98, 98) {
+ %0 = affine.parallel (%kx, %ky) = (0, 0) to (2, 2) reduce ("addf") -> f32 {
+ %1 = affine.load %D[%x + %kx, %y + %ky] : memref<100x100xf32>
+ %2 = affine.load %K[%kx, %ky] : memref<3x3xf32>
+ %3 = arith.mulf %1, %2 : f32
+ affine.yield %3 : f32
+ }
+ affine.store %0, %O[%x, %y] : memref<98x98xf32>
+ }
+ return %O : memref<98x98xf32>
+}
Example (tiling by potentially imperfectly dividing sizes):
affine.parallel (%ii, %jj) = (0, 0) to (%N, %M) step (32, 32) {
+ affine.parallel (%i, %j) = (%ii, %jj)
+ to (min(%ii + 32, %N), min(%jj + 32, %M)) {
+ call @f(%i, %j) : (index, index) -> ()
+ }
+}
prefetch
The affine.prefetch
op prefetches data from a memref location described with an affine subscript similar to affine.load, and has three attributes: a read/write specifier, a locality hint, and a cache type specifier as shown below:
affine.prefetch %0[%i, %j + 5], read, locality<3>, data : memref<400x400xi32>
The read/write specifier is either 'read' or 'write', the locality hint specifier ranges from locality<0> (no locality) to locality<3> (extremely local keep in cache). The cache type specifier is either 'data' or 'instr' and specifies whether the prefetch is performed on data cache or on instruction cache.
',5))]),a("details",R,[a("summary",null,[e[27]||(e[27]=a("a",{id:"Reactant.MLIR.Dialects.affine.store-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value, Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.affine.store-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value, Vector{Reactant.MLIR.IR.Value}}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.affine.store")],-1)),e[28]||(e[28]=s()),t(n,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[29]||(e[29]=i('store
Syntax
operation ::= `affine.store` ssa-use, ssa-use `[` multi-dim-affine-map-of-ssa-ids `]` `:` memref-type
The affine.store
op writes an element to a memref, where the index for each memref dimension is an affine expression of loop induction variables and symbols. The affine.store
op stores a new value which is the same type as the elements of the memref. An affine expression of loop IVs and symbols must be specified for each dimension of the memref. The keyword symbol
can be used to indicate SSA identifiers which are symbolic.
Example 1:
affine.store %v0, %0[%i0 + 3, %i1 + 7] : memref<100x100xf32>
Example 2: Uses symbol
keyword for symbols %n
and %m
.
affine.store %v0, %0[%i0 + symbol(%n), %i1 + symbol(%m)] : memref<100x100xf32>
vector_load
The affine.vector_load
is the vector counterpart of affine.load. It reads a slice from a MemRef, supplied as its first operand, into a vector of the same base elemental type. The index for each memref dimension is an affine expression of loop induction variables and symbols. These indices determine the start position of the read within the memref. The shape of the return vector type determines the shape of the slice read from the memref. This slice is contiguous along the respective dimensions of the shape. Strided vector loads will be supported in the future. An affine expression of loop IVs and symbols must be specified for each dimension of the memref. The keyword symbol
can be used to indicate SSA identifiers which are symbolic.
Example 1: 8-wide f32 vector load.
%1 = affine.vector_load %0[%i0 + 3, %i1 + 7] : memref<100x100xf32>, vector<8xf32>
Example 2: 4-wide f32 vector load. Uses symbol
keyword for symbols %n
and %m
.
%1 = affine.vector_load %0[%i0 + symbol(%n), %i1 + symbol(%m)] : memref<100x100xf32>, vector<4xf32>
Example 3: 2-dim f32 vector load.
%1 = affine.vector_load %0[%i0, %i1] : memref<100x100xf32>, vector<2x8xf32>
TODOs:
Add support for strided vector loads.
Consider adding a permutation map to permute the slice that is read from memory
(see vector.transfer_read).
',12))]),a("details",I,[a("summary",null,[e[33]||(e[33]=a("a",{id:"Reactant.MLIR.Dialects.affine.vector_store-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value, Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.affine.vector_store-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value, Vector{Reactant.MLIR.IR.Value}}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.affine.vector_store")],-1)),e[34]||(e[34]=s()),t(n,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[35]||(e[35]=i('vector_store
The affine.vector_store
is the vector counterpart of affine.store. It writes a vector, supplied as its first operand, into a slice within a MemRef of the same base elemental type, supplied as its second operand. The index for each memref dimension is an affine expression of loop induction variables and symbols. These indices determine the start position of the write within the memref. The shape of th input vector determines the shape of the slice written to the memref. This slice is contiguous along the respective dimensions of the shape. Strided vector stores will be supported in the future. An affine expression of loop IVs and symbols must be specified for each dimension of the memref. The keyword symbol
can be used to indicate SSA identifiers which are symbolic.
Example 1: 8-wide f32 vector store.
affine.vector_store %v0, %0[%i0 + 3, %i1 + 7] : memref<100x100xf32>, vector<8xf32>
Example 2: 4-wide f32 vector store. Uses symbol
keyword for symbols %n
and %m
.
affine.vector_store %v0, %0[%i0 + symbol(%n), %i1 + symbol(%m)] : memref<100x100xf32>, vector<4xf32>
Example 3: 2-dim f32 vector store.
affine.vector_store %v0, %0[%i0, %i1] : memref<100x100xf32>, vector<2x8xf32>
TODOs:
Add support for strided vector stores.
Consider adding a permutation map to permute the slice that is written to memory
(see vector.transfer_write).
',12))]),a("details",k,[a("summary",null,[e[36]||(e[36]=a("a",{id:"Reactant.MLIR.Dialects.affine.yield-Tuple{Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.affine.yield-Tuple{Vector{Reactant.MLIR.IR.Value}}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.affine.yield")],-1)),e[37]||(e[37]=s()),t(n,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[38]||(e[38]=a("p",null,[a("code",null,"yield")],-1)),e[39]||(e[39]=a("p",null,[s("The "),a("code",null,"affine.yield"),s(" yields zero or more SSA values from an affine op region and terminates the region. The semantics of how the values yielded are used is defined by the parent operation. If "),a("code",null,"affine.yield"),s(" has any operands, the operands must match the parent operation's results. If the parent operation defines no values, then the "),a("code",null,"affine.yield"),s(" may be left out in the custom syntax and the builders will insert one implicitly. Otherwise, it has to be present in the syntax to indicate which values are yielded.")],-1)),e[40]||(e[40]=a("p",null,[a("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/Affine.jl#L808-L820",target:"_blank",rel:"noreferrer"},"source")],-1))])])}const C=l(d,[["render",j]]);export{A as __pageData,C as default}; diff --git a/previews/PR363/assets/api_api.md.CxfFeNTq.js b/previews/PR363/assets/api_api.md.CxfFeNTq.js new file mode 100644 index 00000000..f851d2bf --- /dev/null +++ b/previews/PR363/assets/api_api.md.CxfFeNTq.js @@ -0,0 +1,27 @@ +import{_ as l,c as p,j as i,a,G as t,a2 as n,B as h,o}from"./chunks/framework.2yyKLD8d.js";const j=JSON.parse('{"title":"Core Reactant API","description":"","frontmatter":{},"headers":[],"relativePath":"api/api.md","filePath":"api/api.md","lastUpdated":null}'),r={name:"api/api.md"},d={class:"jldocstring custom-block"},k={class:"jldocstring custom-block"},c={class:"jldocstring custom-block"},g={class:"jldocstring custom-block"},y={class:"jldocstring custom-block"},u={class:"jldocstring custom-block"},m={class:"jldocstring custom-block"};function E(b,s,f,C,F,A){const e=h("Badge");return o(),p("div",null,[s[21]||(s[21]=i("h1",{id:"Core-Reactant-API",tabindex:"-1"},[a("Core Reactant API "),i("a",{class:"header-anchor",href:"#Core-Reactant-API","aria-label":'Permalink to "Core Reactant API {#Core-Reactant-API}"'},"")],-1)),s[22]||(s[22]=i("h2",{id:"Compile-API",tabindex:"-1"},[a("Compile API "),i("a",{class:"header-anchor",href:"#Compile-API","aria-label":'Permalink to "Compile API {#Compile-API}"'},"")],-1)),i("details",d,[i("summary",null,[s[0]||(s[0]=i("a",{id:"Reactant.Compiler.@compile",href:"#Reactant.Compiler.@compile"},[i("span",{class:"jlbinding"},"Reactant.Compiler.@compile")],-1)),s[1]||(s[1]=a()),t(e,{type:"info",class:"jlObjectType jlMacro",text:"Macro"})]),s[2]||(s[2]=n('@compile f(args...)
@jit f(args...)
+
+Run @compile f(args..) then immediately execute it
@trace <expr>
Converts certain expressions like control flow into a Reactant friendly form. Importantly, if no traced value is found inside the expression, then there is no overhead.
Currently Supported
if
conditions (with elseif
and other niceties) (@trace if ...
)
if
statements with a preceeding assignment (@trace a = if ...
) (note the positioning of the macro needs to be before the assignment and not before the if
)
for
statements with a single induction variable iterating over a syntactic StepRange
of integers.
Special Considerations
@trace
only at the outermost if
. Nested if
statements will be automatically expanded into the correct form.Extended Help
Caveats (Deviations from Core Julia Semantics)
New variables introduced
@trace if x > 0
+ y = x + 1
+ p = 1
+else
+ y = x - 1
+end
In the outer scope p
is not defined if x ≤ 0
. However, for the traced version, it is defined and set to a dummy value.
Short Circuiting Operations
@trace if x > 0 && z > 0
+ y = x + 1
+else
+ y = x - 1
+end
&&
and ||
are short circuiting operations. In the traced version, we replace them with &
and |
respectively.
Type-Unstable Branches
@trace if x > 0
+ y = 1.0f0
+else
+ y = 1.0
+end
This will not compile since y
is a Float32
in one branch and a Float64
in the other. You need to ensure that all branches have the same type.
Another example is the following for loop which changes the type of x
between iterations.
x = ... # ConcreteRArray{Int64, 1}
+for i in 1f0:0.5f0:10f0
+ x = x .+ i # ConcreteRArray{Float32, 1}
+end
Certain Symbols are Reserved
Symbols like [😦😃, :nothing, :missing, :Inf, :Inf16, :Inf32, :Inf64, :Base, :Core] are not allowed as variables in @trace
expressions. While certain cases might work but these are not guaranteed to work. For example, the following will not work:
function fn(x)
+ nothing = sum(x)
+ @trace if nothing > 0
+ y = 1.0
+ else
+ y = 2.0
+ end
+ return y, nothing
+end
@code_hlo [optimize = ...] f(args...)
codegen_unflatten!
Generate Julia code to wrap the XLA buffers back into the output result datatypes. The name is due to its similarity to the unflatten
function in jax.tree_util.register_pytree_node
.
codegen_flatten!
Generate Julia code to extract the XLA buffers from input arguments. The name is due to its similarity to the flatten
function in jax.tree_util.register_pytree_node
.
Arguments
linear_args
: A list of arguments to be flattened.Returns
flatten_names
: A list of Symbol
s representing the names of the flattened arguments.
flatten_code
: A list of Expr
s to extract the XLA buffers from the input arguments.
Note
The linearized arguments do not directly refer to the are the arguments that have been flattened into a single list.
',9))]),i("details",m,[i("summary",null,[s[18]||(s[18]=i("a",{id:"Reactant.Compiler.codegen_xla_call",href:"#Reactant.Compiler.codegen_xla_call"},[i("span",{class:"jlbinding"},"Reactant.Compiler.codegen_xla_call")],-1)),s[19]||(s[19]=a()),t(e,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[20]||(s[20]=n('codegen_xla_call
Generate Julia code to call the XLA executable.
Arguments
exec
: The XLA executable to call.
flatten_names
: A list of Symbol
s representing the names of the flattened linear arguments.
donated_args_mask
: A list of UInt8
s representing whether the argument is donated.
nresults
: The number of results to expect.
@compile f(args...)
@jit f(args...)
+
+Run @compile f(args..) then immediately execute it
@trace <expr>
Converts certain expressions like control flow into a Reactant friendly form. Importantly, if no traced value is found inside the expression, then there is no overhead.
Currently Supported
if
conditions (with elseif
and other niceties) (@trace if ...
)
if
statements with a preceeding assignment (@trace a = if ...
) (note the positioning of the macro needs to be before the assignment and not before the if
)
for
statements with a single induction variable iterating over a syntactic StepRange
of integers.
Special Considerations
@trace
only at the outermost if
. Nested if
statements will be automatically expanded into the correct form.Extended Help
Caveats (Deviations from Core Julia Semantics)
New variables introduced
@trace if x > 0
+ y = x + 1
+ p = 1
+else
+ y = x - 1
+end
In the outer scope p
is not defined if x ≤ 0
. However, for the traced version, it is defined and set to a dummy value.
Short Circuiting Operations
@trace if x > 0 && z > 0
+ y = x + 1
+else
+ y = x - 1
+end
&&
and ||
are short circuiting operations. In the traced version, we replace them with &
and |
respectively.
Type-Unstable Branches
@trace if x > 0
+ y = 1.0f0
+else
+ y = 1.0
+end
This will not compile since y
is a Float32
in one branch and a Float64
in the other. You need to ensure that all branches have the same type.
Another example is the following for loop which changes the type of x
between iterations.
x = ... # ConcreteRArray{Int64, 1}
+for i in 1f0:0.5f0:10f0
+ x = x .+ i # ConcreteRArray{Float32, 1}
+end
Certain Symbols are Reserved
Symbols like [😦😃, :nothing, :missing, :Inf, :Inf16, :Inf32, :Inf64, :Base, :Core] are not allowed as variables in @trace
expressions. While certain cases might work but these are not guaranteed to work. For example, the following will not work:
function fn(x)
+ nothing = sum(x)
+ @trace if nothing > 0
+ y = 1.0
+ else
+ y = 2.0
+ end
+ return y, nothing
+end
@code_hlo [optimize = ...] f(args...)
codegen_unflatten!
Generate Julia code to wrap the XLA buffers back into the output result datatypes. The name is due to its similarity to the unflatten
function in jax.tree_util.register_pytree_node
.
codegen_flatten!
Generate Julia code to extract the XLA buffers from input arguments. The name is due to its similarity to the flatten
function in jax.tree_util.register_pytree_node
.
Arguments
linear_args
: A list of arguments to be flattened.Returns
flatten_names
: A list of Symbol
s representing the names of the flattened arguments.
flatten_code
: A list of Expr
s to extract the XLA buffers from the input arguments.
Note
The linearized arguments do not directly refer to the are the arguments that have been flattened into a single list.
',9))]),i("details",m,[i("summary",null,[s[18]||(s[18]=i("a",{id:"Reactant.Compiler.codegen_xla_call",href:"#Reactant.Compiler.codegen_xla_call"},[i("span",{class:"jlbinding"},"Reactant.Compiler.codegen_xla_call")],-1)),s[19]||(s[19]=a()),t(e,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[20]||(s[20]=n('codegen_xla_call
Generate Julia code to call the XLA executable.
Arguments
exec
: The XLA executable to call.
flatten_names
: A list of Symbol
s representing the names of the flattened linear arguments.
donated_args_mask
: A list of UInt8
s representing whether the argument is donated.
nresults
: The number of results to expect.
addf
The addf
operation takes two operands and returns one result, each of these is required to be the same type. This type may be a floating point scalar type, a vector whose element type is a floating point type, or a floating point tensor.
Example
// Scalar addition.
+%a = arith.addf %b, %c : f64
+
+// SIMD vector addition, e.g. for Intel SSE.
+%f = arith.addf %g, %h : vector<4xf32>
+
+// Tensor addition.
+%x = arith.addf %y, %z : tensor<4x?xbf16>
TODO: In the distant future, this will accept optional attributes for fast math, contraction, rounding mode, and other controls.
`,6))]),a("details",u,[a("summary",null,[e[3]||(e[3]=a("a",{id:"Reactant.MLIR.Dialects.arith.addi-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.addi-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.addi")],-1)),e[4]||(e[4]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[5]||(e[5]=i(`addi
Performs N-bit addition on the operands. The operands are interpreted as unsigned bitvectors. The result is represented by a bitvector containing the mathematical value of the addition modulo 2^n, where n
is the bitwidth. Because arith
integers use a two's complement representation, this operation is applicable on both signed and unsigned integer operands.
The addi
operation takes two operands and returns one result, each of these is required to be the same type. This type may be an integer scalar type, a vector whose element type is integer, or a tensor of integers.
This op supports nuw
/nsw
overflow flags which stands stand for "No Unsigned Wrap" and "No Signed Wrap", respectively. If the nuw
and/or nsw
flags are present, and an unsigned/signed overflow occurs (respectively), the result is poison.
Example
// Scalar addition.
+%a = arith.addi %b, %c : i64
+
+// Scalar addition with overflow flags.
+%a = arith.addi %b, %c overflow<nsw, nuw> : i64
+
+// SIMD vector element-wise addition.
+%f = arith.addi %g, %h : vector<4xi32>
+
+// Tensor element-wise addition.
+%x = arith.addi %y, %z : tensor<4x?xi8>
addui_extended
Performs (N+1)-bit addition on zero-extended operands. Returns two results: the N-bit sum (same type as both operands), and the overflow bit (boolean-like), where 1
indicates unsigned addition overflow, while 0
indicates no overflow.
Example
// Scalar addition.
+%sum, %overflow = arith.addui_extended %b, %c : i64, i1
+
+// Vector element-wise addition.
+%d:2 = arith.addui_extended %e, %f : vector<4xi32>, vector<4xi1>
+
+// Tensor element-wise addition.
+%x:2 = arith.addui_extended %y, %z : tensor<4x?xi8>, tensor<4x?xi1>
andi
The andi
operation takes two operands and returns one result, each of these is required to be the same type. This type may be an integer scalar type, a vector whose element type is integer, or a tensor of integers. It has no standard attributes.
Example
// Scalar integer bitwise and.
+%a = arith.andi %b, %c : i64
+
+// SIMD vector element-wise bitwise integer and.
+%f = arith.andi %g, %h : vector<4xi32>
+
+// Tensor element-wise bitwise integer and.
+%x = arith.andi %y, %z : tensor<4x?xi8>
ceildivsi
Signed integer division. Rounds towards positive infinity, i.e. 7 / -2 = -3
.
Divison by zero, or signed division overflow (minimum value divided by -1) is undefined behavior. When applied to vector
and tensor
values, the behavior is undefined if any of its elements are divided by zero or has a signed division overflow.
Example
// Scalar signed integer division.
+%a = arith.ceildivsi %b, %c : i64
ceildivui
Unsigned integer division. Rounds towards positive infinity. Treats the leading bit as the most significant, i.e. for i16
given two's complement representation, 6 / -2 = 6 / (2^16 - 2) = 1
.
Division by zero is undefined behavior. When applied to vector
and tensor
values, the behavior is undefined if any elements are divided by zero.
Example
// Scalar unsigned integer division.
+%a = arith.ceildivui %b, %c : i64
cmpf
The cmpf
operation compares its two operands according to the float comparison rules and the predicate specified by the respective attribute. The predicate defines the type of comparison: (un)orderedness, (in)equality and signed less/greater than (or equal to) as well as predicates that are always true or false. The operands must have the same type, and this type must be a float type, or a vector or tensor thereof. The result is an i1, or a vector/tensor thereof having the same shape as the inputs. Unlike cmpi, the operands are always treated as signed. The u prefix indicates unordered comparison, not unsigned comparison, so "une" means unordered or not equal. For the sake of readability by humans, custom assembly form for the operation uses a string-typed attribute for the predicate. The value of this attribute corresponds to lower-cased name of the predicate constant, e.g., "one" means "ordered not equal". The string representation of the attribute is merely a syntactic sugar and is converted to an integer attribute by the parser.
Example
%r1 = arith.cmpf oeq, %0, %1 : f32
+%r2 = arith.cmpf ult, %0, %1 : tensor<42x42xf64>
+%r3 = "arith.cmpf"(%0, %1) {predicate: 0} : (f8, f8) -> i1
cmpi
The cmpi
operation is a generic comparison for integer-like types. Its two arguments can be integers, vectors or tensors thereof as long as their types match. The operation produces an i1 for the former case, a vector or a tensor of i1 with the same shape as inputs in the other cases.
Its first argument is an attribute that defines which type of comparison is performed. The following comparisons are supported:
equal (mnemonic: "eq"
; integer value: 0
)
not equal (mnemonic: "ne"
; integer value: 1
)
signed less than (mnemonic: "slt"
; integer value: 2
)
signed less than or equal (mnemonic: "sle"
; integer value: 3
)
signed greater than (mnemonic: "sgt"
; integer value: 4
)
signed greater than or equal (mnemonic: "sge"
; integer value: 5
)
unsigned less than (mnemonic: "ult"
; integer value: 6
)
unsigned less than or equal (mnemonic: "ule"
; integer value: 7
)
unsigned greater than (mnemonic: "ugt"
; integer value: 8
)
unsigned greater than or equal (mnemonic: "uge"
; integer value: 9
)
The result is 1
if the comparison is true and 0
otherwise. For vector or tensor operands, the comparison is performed elementwise and the element of the result indicates whether the comparison is true for the operand elements with the same indices as those of the result.
Note: while the custom assembly form uses strings, the actual underlying attribute has integer type (or rather enum class in C++ code) as seen from the generic assembly form. String literals are used to improve readability of the IR by humans.
This operation only applies to integer-like operands, but not floats. The main reason being that comparison operations have diverging sets of attributes: integers require sign specification while floats require various floating point-related particularities, e.g., -ffast-math
behavior, IEEE754 compliance, etc (rationale). The type of comparison is specified as attribute to avoid introducing ten similar operations, taking into account that they are often implemented using the same operation downstream (rationale). The separation between signed and unsigned order comparisons is necessary because of integers being signless. The comparison operation must know how to interpret values with the foremost bit being set: negatives in two's complement or large positives (rationale).
Example
// Custom form of scalar "signed less than" comparison.
+%x = arith.cmpi slt, %lhs, %rhs : i32
+
+// Generic form of the same operation.
+%x = "arith.cmpi"(%lhs, %rhs) {predicate = 2 : i64} : (i32, i32) -> i1
+
+// Custom form of vector equality comparison.
+%x = arith.cmpi eq, %lhs, %rhs : vector<4xi64>
+
+// Generic form of the same operation.
+%x = "arith.cmpi"(%lhs, %rhs) {predicate = 0 : i64}
+ : (vector<4xi64>, vector<4xi64>) -> vector<4xi1>
constant
The constant
operation produces an SSA value equal to some integer or floating-point constant specified by an attribute. This is the way MLIR forms simple integer and floating point constants.
Example
// Integer constant
+%1 = arith.constant 42 : i32
+
+// Equivalent generic form
+%1 = "arith.constant"() {value = 42 : i32} : () -> i32
divsi
Signed integer division. Rounds towards zero. Treats the leading bit as sign, i.e. 6 / -2 = -3
.
Divison by zero, or signed division overflow (minimum value divided by -1) is undefined behavior. When applied to vector
and tensor
values, the behavior is undefined if any of its elements are divided by zero or has a signed division overflow.
Example
// Scalar signed integer division.
+%a = arith.divsi %b, %c : i64
+
+// SIMD vector element-wise division.
+%f = arith.divsi %g, %h : vector<4xi32>
+
+// Tensor element-wise integer division.
+%x = arith.divsi %y, %z : tensor<4x?xi8>
divui
Unsigned integer division. Rounds towards zero. Treats the leading bit as the most significant, i.e. for i16
given two's complement representation, 6 / -2 = 6 / (2^16 - 2) = 0
.
Division by zero is undefined behavior. When applied to vector
and tensor
values, the behavior is undefined if any elements are divided by zero.
Example
// Scalar unsigned integer division.
+%a = arith.divui %b, %c : i64
+
+// SIMD vector element-wise division.
+%f = arith.divui %g, %h : vector<4xi32>
+
+// Tensor element-wise integer division.
+%x = arith.divui %y, %z : tensor<4x?xi8>
extsi
The integer sign extension operation takes an integer input of width M and an integer destination type of width N. The destination bit-width must be larger than the input bit-width (N > M). The top-most (N - M) bits of the output are filled with copies of the most-significant bit of the input.
Example
%1 = arith.constant 5 : i3 // %1 is 0b101
+%2 = arith.extsi %1 : i3 to i6 // %2 is 0b111101
+%3 = arith.constant 2 : i3 // %3 is 0b010
+%4 = arith.extsi %3 : i3 to i6 // %4 is 0b000010
+
+%5 = arith.extsi %0 : vector<2 x i32> to vector<2 x i64>
extui
The integer zero extension operation takes an integer input of width M and an integer destination type of width N. The destination bit-width must be larger than the input bit-width (N > M). The top-most (N - M) bits of the output are filled with zeros.
Example
%1 = arith.constant 5 : i3 // %1 is 0b101
+ %2 = arith.extui %1 : i3 to i6 // %2 is 0b000101
+ %3 = arith.constant 2 : i3 // %3 is 0b010
+ %4 = arith.extui %3 : i3 to i6 // %4 is 0b000010
+
+ %5 = arith.extui %0 : vector<2 x i32> to vector<2 x i64>
floordivsi
Signed integer division. Rounds towards negative infinity, i.e. 5 / -2 = -3
.
Divison by zero, or signed division overflow (minimum value divided by -1) is undefined behavior. When applied to vector
and tensor
values, the behavior is undefined if any of its elements are divided by zero or has a signed division overflow.
Example
// Scalar signed integer division.
+%a = arith.floordivsi %b, %c : i64
maximumf
Returns the maximum of the two arguments, treating -0.0 as less than +0.0. If one of the arguments is NaN, then the result is also NaN.
Example
// Scalar floating-point maximum.
+%a = arith.maximumf %b, %c : f64
maxnumf
Returns the maximum of the two arguments. If the arguments are -0.0 and +0.0, then the result is either of them. If one of the arguments is NaN, then the result is the other argument.
Example
// Scalar floating-point maximum.
+%a = arith.maxnumf %b, %c : f64
minimumf
Returns the minimum of the two arguments, treating -0.0 as less than +0.0. If one of the arguments is NaN, then the result is also NaN.
Example
// Scalar floating-point minimum.
+%a = arith.minimumf %b, %c : f64
minnumf
Returns the minimum of the two arguments. If the arguments are -0.0 and +0.0, then the result is either of them. If one of the arguments is NaN, then the result is the other argument.
Example
// Scalar floating-point minimum.
+%a = arith.minnumf %b, %c : f64
mulf
The mulf
operation takes two operands and returns one result, each of these is required to be the same type. This type may be a floating point scalar type, a vector whose element type is a floating point type, or a floating point tensor.
Example
// Scalar multiplication.
+%a = arith.mulf %b, %c : f64
+
+// SIMD pointwise vector multiplication, e.g. for Intel SSE.
+%f = arith.mulf %g, %h : vector<4xf32>
+
+// Tensor pointwise multiplication.
+%x = arith.mulf %y, %z : tensor<4x?xbf16>
TODO: In the distant future, this will accept optional attributes for fast math, contraction, rounding mode, and other controls.
`,6))]),a("details",S,[a("summary",null,[e[88]||(e[88]=a("a",{id:"Reactant.MLIR.Dialects.arith.muli-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.muli-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.muli")],-1)),e[89]||(e[89]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[90]||(e[90]=i(`muli
Performs N-bit multiplication on the operands. The operands are interpreted as unsigned bitvectors. The result is represented by a bitvector containing the mathematical value of the multiplication modulo 2^n, where n
is the bitwidth. Because arith
integers use a two's complement representation, this operation is applicable on both signed and unsigned integer operands.
The muli
operation takes two operands and returns one result, each of these is required to be the same type. This type may be an integer scalar type, a vector whose element type is integer, or a tensor of integers.
This op supports nuw
/nsw
overflow flags which stands stand for "No Unsigned Wrap" and "No Signed Wrap", respectively. If the nuw
and/or nsw
flags are present, and an unsigned/signed overflow occurs (respectively), the result is poison.
Example
// Scalar multiplication.
+%a = arith.muli %b, %c : i64
+
+// Scalar multiplication with overflow flags.
+%a = arith.muli %b, %c overflow<nsw, nuw> : i64
+
+// SIMD vector element-wise multiplication.
+%f = arith.muli %g, %h : vector<4xi32>
+
+// Tensor element-wise multiplication.
+%x = arith.muli %y, %z : tensor<4x?xi8>
mulsi_extended
Performs (2*N)-bit multiplication on sign-extended operands. Returns two N-bit results: the low and the high halves of the product. The low half has the same value as the result of regular multiplication arith.muli
with the same operands.
Example
// Scalar multiplication.
+%low, %high = arith.mulsi_extended %a, %b : i32
+
+// Vector element-wise multiplication.
+%c:2 = arith.mulsi_extended %d, %e : vector<4xi32>
+
+// Tensor element-wise multiplication.
+%x:2 = arith.mulsi_extended %y, %z : tensor<4x?xi8>
mului_extended
Performs (2*N)-bit multiplication on zero-extended operands. Returns two N-bit results: the low and the high halves of the product. The low half has the same value as the result of regular multiplication arith.muli
with the same operands.
Example
// Scalar multiplication.
+%low, %high = arith.mului_extended %a, %b : i32
+
+// Vector element-wise multiplication.
+%c:2 = arith.mului_extended %d, %e : vector<4xi32>
+
+// Tensor element-wise multiplication.
+%x:2 = arith.mului_extended %y, %z : tensor<4x?xi8>
negf
The negf
operation computes the negation of a given value. It takes one operand and returns one result of the same type. This type may be a float scalar type, a vector whose element type is float, or a tensor of floats. It has no standard attributes.
Example
// Scalar negation value.
+%a = arith.negf %b : f64
+
+// SIMD vector element-wise negation value.
+%f = arith.negf %g : vector<4xf32>
+
+// Tensor element-wise negation value.
+%x = arith.negf %y : tensor<4x?xf8>
ori
The ori
operation takes two operands and returns one result, each of these is required to be the same type. This type may be an integer scalar type, a vector whose element type is integer, or a tensor of integers. It has no standard attributes.
Example
// Scalar integer bitwise or.
+%a = arith.ori %b, %c : i64
+
+// SIMD vector element-wise bitwise integer or.
+%f = arith.ori %g, %h : vector<4xi32>
+
+// Tensor element-wise bitwise integer or.
+%x = arith.ori %y, %z : tensor<4x?xi8>
remsi
Signed integer division remainder. Treats the leading bit as sign, i.e. 6 % -2 = 0
.
Division by zero is undefined behavior. When applied to vector
and tensor
values, the behavior is undefined if any elements are divided by zero.
Example
// Scalar signed integer division remainder.
+%a = arith.remsi %b, %c : i64
+
+// SIMD vector element-wise division remainder.
+%f = arith.remsi %g, %h : vector<4xi32>
+
+// Tensor element-wise integer division remainder.
+%x = arith.remsi %y, %z : tensor<4x?xi8>
remui
Unsigned integer division remainder. Treats the leading bit as the most significant, i.e. for i16
, 6 % -2 = 6 % (2^16 - 2) = 6
.
Division by zero is undefined behavior. When applied to vector
and tensor
values, the behavior is undefined if any elements are divided by zero.
Example
// Scalar unsigned integer division remainder.
+%a = arith.remui %b, %c : i64
+
+// SIMD vector element-wise division remainder.
+%f = arith.remui %g, %h : vector<4xi32>
+
+// Tensor element-wise integer division remainder.
+%x = arith.remui %y, %z : tensor<4x?xi8>
select
The arith.select
operation chooses one value based on a binary condition supplied as its first operand.
If the value of the first operand (the condition) is 1
, then the second operand is returned, and the third operand is ignored, even if it was poison.
If the value of the first operand (the condition) is 0
, then the third operand is returned, and the second operand is ignored, even if it was poison.
If the value of the first operand (the condition) is poison, then the operation returns poison.
The operation applies to vectors and tensors elementwise given the shape of all operands is identical. The choice is made for each element individually based on the value at the same position as the element in the condition operand. If an i1 is provided as the condition, the entire vector or tensor is chosen.
Example
// Custom form of scalar selection.
+%x = arith.select %cond, %true, %false : i32
+
+// Generic form of the same operation.
+%x = "arith.select"(%cond, %true, %false) : (i1, i32, i32) -> i32
+
+// Element-wise vector selection.
+%vx = arith.select %vcond, %vtrue, %vfalse : vector<42xi1>, vector<42xf32>
+
+// Full vector selection.
+%vx = arith.select %cond, %vtrue, %vfalse : vector<42xf32>
shli
The shli
operation shifts the integer value of the first operand to the left by the integer value of the second operand. The second operand is interpreted as unsigned. The low order bits are filled with zeros. If the value of the second operand is greater or equal than the bitwidth of the first operand, then the operation returns poison.
This op supports nuw
/nsw
overflow flags which stands stand for "No Unsigned Wrap" and "No Signed Wrap", respectively. If the nuw
and/or nsw
flags are present, and an unsigned/signed overflow occurs (respectively), the result is poison.
Example
%1 = arith.constant 5 : i8 // %1 is 0b00000101
+%2 = arith.constant 3 : i8
+%3 = arith.shli %1, %2 : i8 // %3 is 0b00101000
+%4 = arith.shli %1, %2 overflow<nsw, nuw> : i8
shrsi
The shrsi
operation shifts an integer value of the first operand to the right by the value of the second operand. The first operand is interpreted as signed, and the second operand is interpreter as unsigned. The high order bits in the output are filled with copies of the most-significant bit of the shifted value (which means that the sign of the value is preserved). If the value of the second operand is greater or equal than bitwidth of the first operand, then the operation returns poison.
Example
%1 = arith.constant 160 : i8 // %1 is 0b10100000
+%2 = arith.constant 3 : i8
+%3 = arith.shrsi %1, %2 : (i8, i8) -> i8 // %3 is 0b11110100
+%4 = arith.constant 96 : i8 // %4 is 0b01100000
+%5 = arith.shrsi %4, %2 : (i8, i8) -> i8 // %5 is 0b00001100
shrui
The shrui
operation shifts an integer value of the first operand to the right by the value of the second operand. The first operand is interpreted as unsigned, and the second operand is interpreted as unsigned. The high order bits are always filled with zeros. If the value of the second operand is greater or equal than the bitwidth of the first operand, then the operation returns poison.
Example
%1 = arith.constant 160 : i8 // %1 is 0b10100000
+%2 = arith.constant 3 : i8
+%3 = arith.shrui %1, %2 : (i8, i8) -> i8 // %3 is 0b00010100
subf
The subf
operation takes two operands and returns one result, each of these is required to be the same type. This type may be a floating point scalar type, a vector whose element type is a floating point type, or a floating point tensor.
Example
// Scalar subtraction.
+%a = arith.subf %b, %c : f64
+
+// SIMD vector subtraction, e.g. for Intel SSE.
+%f = arith.subf %g, %h : vector<4xf32>
+
+// Tensor subtraction.
+%x = arith.subf %y, %z : tensor<4x?xbf16>
TODO: In the distant future, this will accept optional attributes for fast math, contraction, rounding mode, and other controls.
`,6))]),a("details",X,[a("summary",null,[e[134]||(e[134]=a("a",{id:"Reactant.MLIR.Dialects.arith.subi-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.subi-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.subi")],-1)),e[135]||(e[135]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[136]||(e[136]=i(`subi
Performs N-bit subtraction on the operands. The operands are interpreted as unsigned bitvectors. The result is represented by a bitvector containing the mathematical value of the subtraction modulo 2^n, where n
is the bitwidth. Because arith
integers use a two's complement representation, this operation is applicable on both signed and unsigned integer operands.
The subi
operation takes two operands and returns one result, each of these is required to be the same type. This type may be an integer scalar type, a vector whose element type is integer, or a tensor of integers.
This op supports nuw
/nsw
overflow flags which stands stand for "No Unsigned Wrap" and "No Signed Wrap", respectively. If the nuw
and/or nsw
flags are present, and an unsigned/signed overflow occurs (respectively), the result is poison.
Example
// Scalar subtraction.
+%a = arith.subi %b, %c : i64
+
+// Scalar subtraction with overflow flags.
+%a = arith.subi %b, %c overflow<nsw, nuw> : i64
+
+// SIMD vector element-wise subtraction.
+%f = arith.subi %g, %h : vector<4xi32>
+
+// Tensor element-wise subtraction.
+%x = arith.subi %y, %z : tensor<4x?xi8>
trunci
The integer truncation operation takes an integer input of width M and an integer destination type of width N. The destination bit-width must be smaller than the input bit-width (N < M). The top-most (N - M) bits of the input are discarded.
Example
%1 = arith.constant 21 : i5 // %1 is 0b10101
+ %2 = arith.trunci %1 : i5 to i4 // %2 is 0b0101
+ %3 = arith.trunci %1 : i5 to i3 // %3 is 0b101
+
+ %5 = arith.trunci %0 : vector<2 x i32> to vector<2 x i16>
xori
The xori
operation takes two operands and returns one result, each of these is required to be the same type. This type may be an integer scalar type, a vector whose element type is integer, or a tensor of integers. It has no standard attributes.
Example
// Scalar integer bitwise xor.
+%a = arith.xori %b, %c : i64
+
+// SIMD vector element-wise bitwise integer xor.
+%f = arith.xori %g, %h : vector<4xi32>
+
+// Tensor element-wise bitwise integer xor.
+%x = arith.xori %y, %z : tensor<4x?xi8>
addf
The addf
operation takes two operands and returns one result, each of these is required to be the same type. This type may be a floating point scalar type, a vector whose element type is a floating point type, or a floating point tensor.
Example
// Scalar addition.
+%a = arith.addf %b, %c : f64
+
+// SIMD vector addition, e.g. for Intel SSE.
+%f = arith.addf %g, %h : vector<4xf32>
+
+// Tensor addition.
+%x = arith.addf %y, %z : tensor<4x?xbf16>
TODO: In the distant future, this will accept optional attributes for fast math, contraction, rounding mode, and other controls.
`,6))]),a("details",u,[a("summary",null,[e[3]||(e[3]=a("a",{id:"Reactant.MLIR.Dialects.arith.addi-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.addi-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.addi")],-1)),e[4]||(e[4]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[5]||(e[5]=i(`addi
Performs N-bit addition on the operands. The operands are interpreted as unsigned bitvectors. The result is represented by a bitvector containing the mathematical value of the addition modulo 2^n, where n
is the bitwidth. Because arith
integers use a two's complement representation, this operation is applicable on both signed and unsigned integer operands.
The addi
operation takes two operands and returns one result, each of these is required to be the same type. This type may be an integer scalar type, a vector whose element type is integer, or a tensor of integers.
This op supports nuw
/nsw
overflow flags which stands stand for "No Unsigned Wrap" and "No Signed Wrap", respectively. If the nuw
and/or nsw
flags are present, and an unsigned/signed overflow occurs (respectively), the result is poison.
Example
// Scalar addition.
+%a = arith.addi %b, %c : i64
+
+// Scalar addition with overflow flags.
+%a = arith.addi %b, %c overflow<nsw, nuw> : i64
+
+// SIMD vector element-wise addition.
+%f = arith.addi %g, %h : vector<4xi32>
+
+// Tensor element-wise addition.
+%x = arith.addi %y, %z : tensor<4x?xi8>
addui_extended
Performs (N+1)-bit addition on zero-extended operands. Returns two results: the N-bit sum (same type as both operands), and the overflow bit (boolean-like), where 1
indicates unsigned addition overflow, while 0
indicates no overflow.
Example
// Scalar addition.
+%sum, %overflow = arith.addui_extended %b, %c : i64, i1
+
+// Vector element-wise addition.
+%d:2 = arith.addui_extended %e, %f : vector<4xi32>, vector<4xi1>
+
+// Tensor element-wise addition.
+%x:2 = arith.addui_extended %y, %z : tensor<4x?xi8>, tensor<4x?xi1>
andi
The andi
operation takes two operands and returns one result, each of these is required to be the same type. This type may be an integer scalar type, a vector whose element type is integer, or a tensor of integers. It has no standard attributes.
Example
// Scalar integer bitwise and.
+%a = arith.andi %b, %c : i64
+
+// SIMD vector element-wise bitwise integer and.
+%f = arith.andi %g, %h : vector<4xi32>
+
+// Tensor element-wise bitwise integer and.
+%x = arith.andi %y, %z : tensor<4x?xi8>
ceildivsi
Signed integer division. Rounds towards positive infinity, i.e. 7 / -2 = -3
.
Divison by zero, or signed division overflow (minimum value divided by -1) is undefined behavior. When applied to vector
and tensor
values, the behavior is undefined if any of its elements are divided by zero or has a signed division overflow.
Example
// Scalar signed integer division.
+%a = arith.ceildivsi %b, %c : i64
ceildivui
Unsigned integer division. Rounds towards positive infinity. Treats the leading bit as the most significant, i.e. for i16
given two's complement representation, 6 / -2 = 6 / (2^16 - 2) = 1
.
Division by zero is undefined behavior. When applied to vector
and tensor
values, the behavior is undefined if any elements are divided by zero.
Example
// Scalar unsigned integer division.
+%a = arith.ceildivui %b, %c : i64
cmpf
The cmpf
operation compares its two operands according to the float comparison rules and the predicate specified by the respective attribute. The predicate defines the type of comparison: (un)orderedness, (in)equality and signed less/greater than (or equal to) as well as predicates that are always true or false. The operands must have the same type, and this type must be a float type, or a vector or tensor thereof. The result is an i1, or a vector/tensor thereof having the same shape as the inputs. Unlike cmpi, the operands are always treated as signed. The u prefix indicates unordered comparison, not unsigned comparison, so "une" means unordered or not equal. For the sake of readability by humans, custom assembly form for the operation uses a string-typed attribute for the predicate. The value of this attribute corresponds to lower-cased name of the predicate constant, e.g., "one" means "ordered not equal". The string representation of the attribute is merely a syntactic sugar and is converted to an integer attribute by the parser.
Example
%r1 = arith.cmpf oeq, %0, %1 : f32
+%r2 = arith.cmpf ult, %0, %1 : tensor<42x42xf64>
+%r3 = "arith.cmpf"(%0, %1) {predicate: 0} : (f8, f8) -> i1
cmpi
The cmpi
operation is a generic comparison for integer-like types. Its two arguments can be integers, vectors or tensors thereof as long as their types match. The operation produces an i1 for the former case, a vector or a tensor of i1 with the same shape as inputs in the other cases.
Its first argument is an attribute that defines which type of comparison is performed. The following comparisons are supported:
equal (mnemonic: "eq"
; integer value: 0
)
not equal (mnemonic: "ne"
; integer value: 1
)
signed less than (mnemonic: "slt"
; integer value: 2
)
signed less than or equal (mnemonic: "sle"
; integer value: 3
)
signed greater than (mnemonic: "sgt"
; integer value: 4
)
signed greater than or equal (mnemonic: "sge"
; integer value: 5
)
unsigned less than (mnemonic: "ult"
; integer value: 6
)
unsigned less than or equal (mnemonic: "ule"
; integer value: 7
)
unsigned greater than (mnemonic: "ugt"
; integer value: 8
)
unsigned greater than or equal (mnemonic: "uge"
; integer value: 9
)
The result is 1
if the comparison is true and 0
otherwise. For vector or tensor operands, the comparison is performed elementwise and the element of the result indicates whether the comparison is true for the operand elements with the same indices as those of the result.
Note: while the custom assembly form uses strings, the actual underlying attribute has integer type (or rather enum class in C++ code) as seen from the generic assembly form. String literals are used to improve readability of the IR by humans.
This operation only applies to integer-like operands, but not floats. The main reason being that comparison operations have diverging sets of attributes: integers require sign specification while floats require various floating point-related particularities, e.g., -ffast-math
behavior, IEEE754 compliance, etc (rationale). The type of comparison is specified as attribute to avoid introducing ten similar operations, taking into account that they are often implemented using the same operation downstream (rationale). The separation between signed and unsigned order comparisons is necessary because of integers being signless. The comparison operation must know how to interpret values with the foremost bit being set: negatives in two's complement or large positives (rationale).
Example
// Custom form of scalar "signed less than" comparison.
+%x = arith.cmpi slt, %lhs, %rhs : i32
+
+// Generic form of the same operation.
+%x = "arith.cmpi"(%lhs, %rhs) {predicate = 2 : i64} : (i32, i32) -> i1
+
+// Custom form of vector equality comparison.
+%x = arith.cmpi eq, %lhs, %rhs : vector<4xi64>
+
+// Generic form of the same operation.
+%x = "arith.cmpi"(%lhs, %rhs) {predicate = 0 : i64}
+ : (vector<4xi64>, vector<4xi64>) -> vector<4xi1>
constant
The constant
operation produces an SSA value equal to some integer or floating-point constant specified by an attribute. This is the way MLIR forms simple integer and floating point constants.
Example
// Integer constant
+%1 = arith.constant 42 : i32
+
+// Equivalent generic form
+%1 = "arith.constant"() {value = 42 : i32} : () -> i32
divsi
Signed integer division. Rounds towards zero. Treats the leading bit as sign, i.e. 6 / -2 = -3
.
Divison by zero, or signed division overflow (minimum value divided by -1) is undefined behavior. When applied to vector
and tensor
values, the behavior is undefined if any of its elements are divided by zero or has a signed division overflow.
Example
// Scalar signed integer division.
+%a = arith.divsi %b, %c : i64
+
+// SIMD vector element-wise division.
+%f = arith.divsi %g, %h : vector<4xi32>
+
+// Tensor element-wise integer division.
+%x = arith.divsi %y, %z : tensor<4x?xi8>
divui
Unsigned integer division. Rounds towards zero. Treats the leading bit as the most significant, i.e. for i16
given two's complement representation, 6 / -2 = 6 / (2^16 - 2) = 0
.
Division by zero is undefined behavior. When applied to vector
and tensor
values, the behavior is undefined if any elements are divided by zero.
Example
// Scalar unsigned integer division.
+%a = arith.divui %b, %c : i64
+
+// SIMD vector element-wise division.
+%f = arith.divui %g, %h : vector<4xi32>
+
+// Tensor element-wise integer division.
+%x = arith.divui %y, %z : tensor<4x?xi8>
extsi
The integer sign extension operation takes an integer input of width M and an integer destination type of width N. The destination bit-width must be larger than the input bit-width (N > M). The top-most (N - M) bits of the output are filled with copies of the most-significant bit of the input.
Example
%1 = arith.constant 5 : i3 // %1 is 0b101
+%2 = arith.extsi %1 : i3 to i6 // %2 is 0b111101
+%3 = arith.constant 2 : i3 // %3 is 0b010
+%4 = arith.extsi %3 : i3 to i6 // %4 is 0b000010
+
+%5 = arith.extsi %0 : vector<2 x i32> to vector<2 x i64>
extui
The integer zero extension operation takes an integer input of width M and an integer destination type of width N. The destination bit-width must be larger than the input bit-width (N > M). The top-most (N - M) bits of the output are filled with zeros.
Example
%1 = arith.constant 5 : i3 // %1 is 0b101
+ %2 = arith.extui %1 : i3 to i6 // %2 is 0b000101
+ %3 = arith.constant 2 : i3 // %3 is 0b010
+ %4 = arith.extui %3 : i3 to i6 // %4 is 0b000010
+
+ %5 = arith.extui %0 : vector<2 x i32> to vector<2 x i64>
floordivsi
Signed integer division. Rounds towards negative infinity, i.e. 5 / -2 = -3
.
Divison by zero, or signed division overflow (minimum value divided by -1) is undefined behavior. When applied to vector
and tensor
values, the behavior is undefined if any of its elements are divided by zero or has a signed division overflow.
Example
// Scalar signed integer division.
+%a = arith.floordivsi %b, %c : i64
maximumf
Returns the maximum of the two arguments, treating -0.0 as less than +0.0. If one of the arguments is NaN, then the result is also NaN.
Example
// Scalar floating-point maximum.
+%a = arith.maximumf %b, %c : f64
maxnumf
Returns the maximum of the two arguments. If the arguments are -0.0 and +0.0, then the result is either of them. If one of the arguments is NaN, then the result is the other argument.
Example
// Scalar floating-point maximum.
+%a = arith.maxnumf %b, %c : f64
minimumf
Returns the minimum of the two arguments, treating -0.0 as less than +0.0. If one of the arguments is NaN, then the result is also NaN.
Example
// Scalar floating-point minimum.
+%a = arith.minimumf %b, %c : f64
minnumf
Returns the minimum of the two arguments. If the arguments are -0.0 and +0.0, then the result is either of them. If one of the arguments is NaN, then the result is the other argument.
Example
// Scalar floating-point minimum.
+%a = arith.minnumf %b, %c : f64
mulf
The mulf
operation takes two operands and returns one result, each of these is required to be the same type. This type may be a floating point scalar type, a vector whose element type is a floating point type, or a floating point tensor.
Example
// Scalar multiplication.
+%a = arith.mulf %b, %c : f64
+
+// SIMD pointwise vector multiplication, e.g. for Intel SSE.
+%f = arith.mulf %g, %h : vector<4xf32>
+
+// Tensor pointwise multiplication.
+%x = arith.mulf %y, %z : tensor<4x?xbf16>
TODO: In the distant future, this will accept optional attributes for fast math, contraction, rounding mode, and other controls.
`,6))]),a("details",S,[a("summary",null,[e[88]||(e[88]=a("a",{id:"Reactant.MLIR.Dialects.arith.muli-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.muli-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.muli")],-1)),e[89]||(e[89]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[90]||(e[90]=i(`muli
Performs N-bit multiplication on the operands. The operands are interpreted as unsigned bitvectors. The result is represented by a bitvector containing the mathematical value of the multiplication modulo 2^n, where n
is the bitwidth. Because arith
integers use a two's complement representation, this operation is applicable on both signed and unsigned integer operands.
The muli
operation takes two operands and returns one result, each of these is required to be the same type. This type may be an integer scalar type, a vector whose element type is integer, or a tensor of integers.
This op supports nuw
/nsw
overflow flags which stands stand for "No Unsigned Wrap" and "No Signed Wrap", respectively. If the nuw
and/or nsw
flags are present, and an unsigned/signed overflow occurs (respectively), the result is poison.
Example
// Scalar multiplication.
+%a = arith.muli %b, %c : i64
+
+// Scalar multiplication with overflow flags.
+%a = arith.muli %b, %c overflow<nsw, nuw> : i64
+
+// SIMD vector element-wise multiplication.
+%f = arith.muli %g, %h : vector<4xi32>
+
+// Tensor element-wise multiplication.
+%x = arith.muli %y, %z : tensor<4x?xi8>
mulsi_extended
Performs (2*N)-bit multiplication on sign-extended operands. Returns two N-bit results: the low and the high halves of the product. The low half has the same value as the result of regular multiplication arith.muli
with the same operands.
Example
// Scalar multiplication.
+%low, %high = arith.mulsi_extended %a, %b : i32
+
+// Vector element-wise multiplication.
+%c:2 = arith.mulsi_extended %d, %e : vector<4xi32>
+
+// Tensor element-wise multiplication.
+%x:2 = arith.mulsi_extended %y, %z : tensor<4x?xi8>
mului_extended
Performs (2*N)-bit multiplication on zero-extended operands. Returns two N-bit results: the low and the high halves of the product. The low half has the same value as the result of regular multiplication arith.muli
with the same operands.
Example
// Scalar multiplication.
+%low, %high = arith.mului_extended %a, %b : i32
+
+// Vector element-wise multiplication.
+%c:2 = arith.mului_extended %d, %e : vector<4xi32>
+
+// Tensor element-wise multiplication.
+%x:2 = arith.mului_extended %y, %z : tensor<4x?xi8>
negf
The negf
operation computes the negation of a given value. It takes one operand and returns one result of the same type. This type may be a float scalar type, a vector whose element type is float, or a tensor of floats. It has no standard attributes.
Example
// Scalar negation value.
+%a = arith.negf %b : f64
+
+// SIMD vector element-wise negation value.
+%f = arith.negf %g : vector<4xf32>
+
+// Tensor element-wise negation value.
+%x = arith.negf %y : tensor<4x?xf8>
ori
The ori
operation takes two operands and returns one result, each of these is required to be the same type. This type may be an integer scalar type, a vector whose element type is integer, or a tensor of integers. It has no standard attributes.
Example
// Scalar integer bitwise or.
+%a = arith.ori %b, %c : i64
+
+// SIMD vector element-wise bitwise integer or.
+%f = arith.ori %g, %h : vector<4xi32>
+
+// Tensor element-wise bitwise integer or.
+%x = arith.ori %y, %z : tensor<4x?xi8>
remsi
Signed integer division remainder. Treats the leading bit as sign, i.e. 6 % -2 = 0
.
Division by zero is undefined behavior. When applied to vector
and tensor
values, the behavior is undefined if any elements are divided by zero.
Example
// Scalar signed integer division remainder.
+%a = arith.remsi %b, %c : i64
+
+// SIMD vector element-wise division remainder.
+%f = arith.remsi %g, %h : vector<4xi32>
+
+// Tensor element-wise integer division remainder.
+%x = arith.remsi %y, %z : tensor<4x?xi8>
remui
Unsigned integer division remainder. Treats the leading bit as the most significant, i.e. for i16
, 6 % -2 = 6 % (2^16 - 2) = 6
.
Division by zero is undefined behavior. When applied to vector
and tensor
values, the behavior is undefined if any elements are divided by zero.
Example
// Scalar unsigned integer division remainder.
+%a = arith.remui %b, %c : i64
+
+// SIMD vector element-wise division remainder.
+%f = arith.remui %g, %h : vector<4xi32>
+
+// Tensor element-wise integer division remainder.
+%x = arith.remui %y, %z : tensor<4x?xi8>
select
The arith.select
operation chooses one value based on a binary condition supplied as its first operand.
If the value of the first operand (the condition) is 1
, then the second operand is returned, and the third operand is ignored, even if it was poison.
If the value of the first operand (the condition) is 0
, then the third operand is returned, and the second operand is ignored, even if it was poison.
If the value of the first operand (the condition) is poison, then the operation returns poison.
The operation applies to vectors and tensors elementwise given the shape of all operands is identical. The choice is made for each element individually based on the value at the same position as the element in the condition operand. If an i1 is provided as the condition, the entire vector or tensor is chosen.
Example
// Custom form of scalar selection.
+%x = arith.select %cond, %true, %false : i32
+
+// Generic form of the same operation.
+%x = "arith.select"(%cond, %true, %false) : (i1, i32, i32) -> i32
+
+// Element-wise vector selection.
+%vx = arith.select %vcond, %vtrue, %vfalse : vector<42xi1>, vector<42xf32>
+
+// Full vector selection.
+%vx = arith.select %cond, %vtrue, %vfalse : vector<42xf32>
shli
The shli
operation shifts the integer value of the first operand to the left by the integer value of the second operand. The second operand is interpreted as unsigned. The low order bits are filled with zeros. If the value of the second operand is greater or equal than the bitwidth of the first operand, then the operation returns poison.
This op supports nuw
/nsw
overflow flags which stands stand for "No Unsigned Wrap" and "No Signed Wrap", respectively. If the nuw
and/or nsw
flags are present, and an unsigned/signed overflow occurs (respectively), the result is poison.
Example
%1 = arith.constant 5 : i8 // %1 is 0b00000101
+%2 = arith.constant 3 : i8
+%3 = arith.shli %1, %2 : i8 // %3 is 0b00101000
+%4 = arith.shli %1, %2 overflow<nsw, nuw> : i8
shrsi
The shrsi
operation shifts an integer value of the first operand to the right by the value of the second operand. The first operand is interpreted as signed, and the second operand is interpreter as unsigned. The high order bits in the output are filled with copies of the most-significant bit of the shifted value (which means that the sign of the value is preserved). If the value of the second operand is greater or equal than bitwidth of the first operand, then the operation returns poison.
Example
%1 = arith.constant 160 : i8 // %1 is 0b10100000
+%2 = arith.constant 3 : i8
+%3 = arith.shrsi %1, %2 : (i8, i8) -> i8 // %3 is 0b11110100
+%4 = arith.constant 96 : i8 // %4 is 0b01100000
+%5 = arith.shrsi %4, %2 : (i8, i8) -> i8 // %5 is 0b00001100
shrui
The shrui
operation shifts an integer value of the first operand to the right by the value of the second operand. The first operand is interpreted as unsigned, and the second operand is interpreted as unsigned. The high order bits are always filled with zeros. If the value of the second operand is greater or equal than the bitwidth of the first operand, then the operation returns poison.
Example
%1 = arith.constant 160 : i8 // %1 is 0b10100000
+%2 = arith.constant 3 : i8
+%3 = arith.shrui %1, %2 : (i8, i8) -> i8 // %3 is 0b00010100
subf
The subf
operation takes two operands and returns one result, each of these is required to be the same type. This type may be a floating point scalar type, a vector whose element type is a floating point type, or a floating point tensor.
Example
// Scalar subtraction.
+%a = arith.subf %b, %c : f64
+
+// SIMD vector subtraction, e.g. for Intel SSE.
+%f = arith.subf %g, %h : vector<4xf32>
+
+// Tensor subtraction.
+%x = arith.subf %y, %z : tensor<4x?xbf16>
TODO: In the distant future, this will accept optional attributes for fast math, contraction, rounding mode, and other controls.
`,6))]),a("details",X,[a("summary",null,[e[134]||(e[134]=a("a",{id:"Reactant.MLIR.Dialects.arith.subi-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.arith.subi-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[a("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.arith.subi")],-1)),e[135]||(e[135]=t()),n(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[136]||(e[136]=i(`subi
Performs N-bit subtraction on the operands. The operands are interpreted as unsigned bitvectors. The result is represented by a bitvector containing the mathematical value of the subtraction modulo 2^n, where n
is the bitwidth. Because arith
integers use a two's complement representation, this operation is applicable on both signed and unsigned integer operands.
The subi
operation takes two operands and returns one result, each of these is required to be the same type. This type may be an integer scalar type, a vector whose element type is integer, or a tensor of integers.
This op supports nuw
/nsw
overflow flags which stands stand for "No Unsigned Wrap" and "No Signed Wrap", respectively. If the nuw
and/or nsw
flags are present, and an unsigned/signed overflow occurs (respectively), the result is poison.
Example
// Scalar subtraction.
+%a = arith.subi %b, %c : i64
+
+// Scalar subtraction with overflow flags.
+%a = arith.subi %b, %c overflow<nsw, nuw> : i64
+
+// SIMD vector element-wise subtraction.
+%f = arith.subi %g, %h : vector<4xi32>
+
+// Tensor element-wise subtraction.
+%x = arith.subi %y, %z : tensor<4x?xi8>
trunci
The integer truncation operation takes an integer input of width M and an integer destination type of width N. The destination bit-width must be smaller than the input bit-width (N < M). The top-most (N - M) bits of the input are discarded.
Example
%1 = arith.constant 21 : i5 // %1 is 0b10101
+ %2 = arith.trunci %1 : i5 to i4 // %2 is 0b0101
+ %3 = arith.trunci %1 : i5 to i3 // %3 is 0b101
+
+ %5 = arith.trunci %0 : vector<2 x i32> to vector<2 x i16>
xori
The xori
operation takes two operands and returns one result, each of these is required to be the same type. This type may be an integer scalar type, a vector whose element type is integer, or a tensor of integers. It has no standard attributes.
Example
// Scalar integer bitwise xor.
+%a = arith.xori %b, %c : i64
+
+// SIMD vector element-wise bitwise integer xor.
+%f = arith.xori %g, %h : vector<4xi32>
+
+// Tensor element-wise bitwise integer xor.
+%x = arith.xori %y, %z : tensor<4x?xi8>
module_
A module
represents a top-level container operation. It contains a single graph region containing a single block which can contain any operations and does not have a terminator. Operations within this region cannot implicitly capture values defined outside the module, i.e. Modules are IsolatedFromAbove. Modules have an optional symbol name which can be used to refer to them in operations.
Example
module {
+ func.func @foo()
+}
unrealized_conversion_cast
An unrealized_conversion_cast
operation represents an unrealized conversion from one set of types to another, that is used to enable the inter-mixing of different type systems. This operation should not be attributed any special representational or execution semantics, and is generally only intended to be used to satisfy the temporary intermixing of type systems during the conversion of one type system to another.
This operation may produce results of arity 1-N, and accept as input operands of arity 0-N.
Example
// An unrealized 0-1 conversion. These types of conversions are useful in
+// cases where a type is removed from the type system, but not all uses have
+// been converted. For example, imagine we have a tuple type that is
+// expanded to its element types. If only some uses of an empty tuple type
+// instance are converted we still need an instance of the tuple type, but
+// have no inputs to the unrealized conversion.
+%result = unrealized_conversion_cast to !bar.tuple_type<>
+
+// An unrealized 1-1 conversion.
+%result1 = unrealized_conversion_cast %operand : !foo.type to !bar.lowered_type
+
+// An unrealized 1-N conversion.
+%results2:2 = unrealized_conversion_cast %tuple_operand : !foo.tuple_type<!foo.type, !foo.type> to !foo.type, !foo.type
+
+// An unrealized N-1 conversion.
+%result3 = unrealized_conversion_cast %operand, %operand : !foo.type, !foo.type to !bar.tuple_type<!foo.type, !foo.type>
module_
A module
represents a top-level container operation. It contains a single graph region containing a single block which can contain any operations and does not have a terminator. Operations within this region cannot implicitly capture values defined outside the module, i.e. Modules are IsolatedFromAbove. Modules have an optional symbol name which can be used to refer to them in operations.
Example
module {
+ func.func @foo()
+}
unrealized_conversion_cast
An unrealized_conversion_cast
operation represents an unrealized conversion from one set of types to another, that is used to enable the inter-mixing of different type systems. This operation should not be attributed any special representational or execution semantics, and is generally only intended to be used to satisfy the temporary intermixing of type systems during the conversion of one type system to another.
This operation may produce results of arity 1-N, and accept as input operands of arity 0-N.
Example
// An unrealized 0-1 conversion. These types of conversions are useful in
+// cases where a type is removed from the type system, but not all uses have
+// been converted. For example, imagine we have a tuple type that is
+// expanded to its element types. If only some uses of an empty tuple type
+// instance are converted we still need an instance of the tuple type, but
+// have no inputs to the unrealized conversion.
+%result = unrealized_conversion_cast to !bar.tuple_type<>
+
+// An unrealized 1-1 conversion.
+%result1 = unrealized_conversion_cast %operand : !foo.type to !bar.lowered_type
+
+// An unrealized 1-N conversion.
+%results2:2 = unrealized_conversion_cast %tuple_operand : !foo.tuple_type<!foo.type, !foo.type> to !foo.type, !foo.type
+
+// An unrealized N-1 conversion.
+%result3 = unrealized_conversion_cast %operand, %operand : !foo.type, !foo.type to !bar.tuple_type<!foo.type, !foo.type>
broadcast_compare
Compares lhs
and rhs
elementwise according to comparison_direction
and compare_type
. If unspecified, compare_type
is FLOAT for float element types, SIGNED for signed element types and UNSIGNED for unsigned element types.
See https://www.tensorflow.org/xla/operation_semantics#element-wise_comparison_operations.
',4))]),l("details",D,[l("summary",null,[t[75]||(t[75]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_complex-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_complex-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_complex")],-1)),t[76]||(t[76]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[77]||(t[77]=l("p",null,[l("code",null,"broadcast_complex")],-1)),t[78]||(t[78]=l("p",null,"Performs element-wise conversion of a pair of real and imaginary values to a complex value.",-1)),t[79]||(t[79]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L413-L418",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",w,[l("summary",null,[t[80]||(t[80]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_divide-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_divide-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_divide")],-1)),t[81]||(t[81]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[82]||(t[82]=l("p",null,[l("code",null,"broadcast_divide")],-1)),t[83]||(t[83]=l("p",null,[e("Returns "),l("code",null,"lhs / rhs"),e(" element-wise.")],-1)),t[84]||(t[84]=l("p",null,[e("See "),l("a",{href:"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations",target:"_blank",rel:"noreferrer"},"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations"),e(".")],-1)),t[85]||(t[85]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L447-L454",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",x,[l("summary",null,[t[86]||(t[86]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_maximum-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_maximum-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_maximum")],-1)),t[87]||(t[87]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[88]||(t[88]=l("p",null,[l("code",null,"broadcast_maximum")],-1)),t[89]||(t[89]=l("p",null,[e("Returns "),l("code",null,"max(lhs, rhs)"),e(" element-wise.")],-1)),t[90]||(t[90]=l("p",null,[e("See "),l("a",{href:"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations",target:"_blank",rel:"noreferrer"},"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations"),e(".")],-1)),t[91]||(t[91]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L483-L490",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",T,[l("summary",null,[t[92]||(t[92]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_minimum-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_minimum-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_minimum")],-1)),t[93]||(t[93]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[94]||(t[94]=l("p",null,[l("code",null,"broadcast_minimum")],-1)),t[95]||(t[95]=l("p",null,[e("Returns "),l("code",null,"min(lhs, rhs)"),e(" element-wise.")],-1)),t[96]||(t[96]=l("p",null,[e("See "),l("a",{href:"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations",target:"_blank",rel:"noreferrer"},"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations"),e(".")],-1)),t[97]||(t[97]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L519-L526",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",h,[l("summary",null,[t[98]||(t[98]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_multiply-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_multiply-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_multiply")],-1)),t[99]||(t[99]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[100]||(t[100]=l("p",null,[l("code",null,"broadcast_multiply")],-1)),t[101]||(t[101]=l("p",null,[e("Returns "),l("code",null,"lhs * rhs"),e(" element-wise.")],-1)),t[102]||(t[102]=l("p",null,[e("See "),l("a",{href:"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations",target:"_blank",rel:"noreferrer"},"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations"),e(".")],-1)),t[103]||(t[103]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L555-L562",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",V,[l("summary",null,[t[104]||(t[104]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_next_after-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_next_after-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_next_after")],-1)),t[105]||(t[105]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[106]||(t[106]=l("p",null,[l("code",null,"broadcast_next_after")],-1)),t[107]||(t[107]=l("p",null,[e("Returns the next representable value of "),l("code",null,"lhs"),e(" in the direction of "),l("code",null,"rhs"),e(", element-wise. It can also return a subnormal number.")],-1)),t[108]||(t[108]=l("p",null,"Equivalent to the C++ std::nextafter function.",-1)),t[109]||(t[109]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L591-L598",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",k,[l("summary",null,[t[110]||(t[110]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_or-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_or-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_or")],-1)),t[111]||(t[111]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[112]||(t[112]=l("p",null,[l("code",null,"broadcast_or")],-1)),t[113]||(t[113]=l("p",null,[e("Returns "),l("code",null,"logical_or(lhs, rhs)"),e(" element-wise.")],-1)),t[114]||(t[114]=l("p",null,[e("See "),l("a",{href:"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations",target:"_blank",rel:"noreferrer"},"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations"),e(".")],-1)),t[115]||(t[115]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L627-L634",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",O,[l("summary",null,[t[116]||(t[116]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_polygamma-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_polygamma-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_polygamma")],-1)),t[117]||(t[117]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[118]||(t[118]=l("p",null,[l("code",null,"broadcast_polygamma")],-1)),t[119]||(t[119]=l("p",null,[e("Returns "),l("code",null,"Polygamma(operand, operand)"),e(" element-wise.")],-1)),t[120]||(t[120]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L663-L667",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",z,[l("summary",null,[t[121]||(t[121]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_power-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_power-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_power")],-1)),t[122]||(t[122]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[123]||(t[123]=l("p",null,[l("code",null,"broadcast_power")],-1)),t[124]||(t[124]=l("p",null,[e("Returns "),l("code",null,"lhs ^ rhs"),e(" element-wise.")],-1)),t[125]||(t[125]=l("p",null,[e("See "),l("a",{href:"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations",target:"_blank",rel:"noreferrer"},"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations"),e(".")],-1)),t[126]||(t[126]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L696-L703",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",C,[l("summary",null,[t[127]||(t[127]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_remainder-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_remainder-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_remainder")],-1)),t[128]||(t[128]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[129]||(t[129]=l("p",null,[l("code",null,"broadcast_remainder")],-1)),t[130]||(t[130]=l("p",null,[e("Returns "),l("code",null,"lhs % rhs"),e(" element-wise.")],-1)),t[131]||(t[131]=l("p",null,[e("See "),l("a",{href:"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations",target:"_blank",rel:"noreferrer"},"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations"),e(".")],-1)),t[132]||(t[132]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L732-L739",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",A,[l("summary",null,[t[133]||(t[133]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_select-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_select-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_select")],-1)),t[134]||(t[134]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[135]||(t[135]=l("p",null,[l("code",null,"broadcast_select")],-1)),t[136]||(t[136]=l("p",null,"Constructs an output array from elements of two input arrays, based on the values of a predicate array.",-1)),t[137]||(t[137]=l("p",null,[e("See "),l("a",{href:"https://www.tensorflow.org/xla/operation_semantics#select",target:"_blank",rel:"noreferrer"},"https://www.tensorflow.org/xla/operation_semantics#select")],-1)),t[138]||(t[138]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L768-L775",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",E,[l("summary",null,[t[139]||(t[139]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_shift_left-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_shift_left-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_shift_left")],-1)),t[140]||(t[140]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[141]||(t[141]=l("p",null,[l("code",null,"broadcast_shift_left")],-1)),t[142]||(t[142]=l("p",null,[e("Returns "),l("code",null,"lhs << rhs"),e(" element-wise.")],-1)),t[143]||(t[143]=l("p",null,[e("See "),l("a",{href:"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations",target:"_blank",rel:"noreferrer"},"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations"),e(".")],-1)),t[144]||(t[144]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L802-L809",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",H,[l("summary",null,[t[145]||(t[145]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_shift_right_arithmetic-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_shift_right_arithmetic-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_shift_right_arithmetic")],-1)),t[146]||(t[146]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[147]||(t[147]=l("p",null,[l("code",null,"broadcast_shift_right_arithmetic")],-1)),t[148]||(t[148]=l("p",null,[e("Returns "),l("code",null,"lhs >> rhs"),e(" element-wise.")],-1)),t[149]||(t[149]=l("p",null,[e("See "),l("a",{href:"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations",target:"_blank",rel:"noreferrer"},"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations"),e(".")],-1)),t[150]||(t[150]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L838-L845",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",v,[l("summary",null,[t[151]||(t[151]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_shift_right_logical-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_shift_right_logical-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_shift_right_logical")],-1)),t[152]||(t[152]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[153]||(t[153]=l("p",null,[l("code",null,"broadcast_shift_right_logical")],-1)),t[154]||(t[154]=l("p",null,[e("Returns "),l("code",null,"lhs >> rhs"),e(" element-wise.")],-1)),t[155]||(t[155]=l("p",null,[e("See "),l("a",{href:"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations",target:"_blank",rel:"noreferrer"},"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations"),e(".")],-1)),t[156]||(t[156]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L874-L881",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",$,[l("summary",null,[t[157]||(t[157]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_subtract-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_subtract-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_subtract")],-1)),t[158]||(t[158]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[159]||(t[159]=l("p",null,[l("code",null,"broadcast_subtract")],-1)),t[160]||(t[160]=l("p",null,[e("Returns "),l("code",null,"lhs - rhs"),e(" element-wise.")],-1)),t[161]||(t[161]=l("p",null,[e("See "),l("a",{href:"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations",target:"_blank",rel:"noreferrer"},"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations"),e(".")],-1)),t[162]||(t[162]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L910-L917",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",S,[l("summary",null,[t[163]||(t[163]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_xor-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_xor-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_xor")],-1)),t[164]||(t[164]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[165]||(t[165]=l("p",null,[l("code",null,"broadcast_xor")],-1)),t[166]||(t[166]=l("p",null,[e("Returns "),l("code",null,"logical_xor(lhs, rhs)"),e(" element-wise.")],-1)),t[167]||(t[167]=l("p",null,[e("See "),l("a",{href:"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations",target:"_blank",rel:"noreferrer"},"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations"),e(".")],-1)),t[168]||(t[168]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L946-L953",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",q,[l("summary",null,[t[169]||(t[169]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_zeta-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_zeta-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_zeta")],-1)),t[170]||(t[170]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[171]||(t[171]=l("p",null,[l("code",null,"broadcast_zeta")],-1)),t[172]||(t[172]=l("p",null,[e("Returns "),l("code",null,"Zeta(operand, operand)"),e(" element-wise.")],-1)),t[173]||(t[173]=l("p",null,"$",-1)),t[174]||(t[174]=l("p",null,"(\\zeta(x, q) = \\sum_{n=0}^{\\infty} (q + n)^{-x}) $",-1)),t[175]||(t[175]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L982-L990",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",N,[l("summary",null,[t[176]||(t[176]=l("a",{id:"Reactant.MLIR.Dialects.chlo.conj-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.conj-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.conj")],-1)),t[177]||(t[177]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[178]||(t[178]=l("p",null,[l("code",null,"conj")],-1)),t[179]||(t[179]=l("p",null,[e("Returns "),l("code",null,"Conj(operand)"),e(" element-wise.")],-1)),t[180]||(t[180]=l("p",null,"$",-1)),t[181]||(t[181]=l("p",null,"\\conj(x) = (\\real(x), \\neg(\\imag(x))) $",-1)),t[182]||(t[182]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1019-L1027",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",B,[l("summary",null,[t[183]||(t[183]=l("a",{id:"Reactant.MLIR.Dialects.chlo.constant-Tuple{}",href:"#Reactant.MLIR.Dialects.chlo.constant-Tuple{}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.constant")],-1)),t[184]||(t[184]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[185]||(t[185]=l("p",null,[l("code",null,"constant")],-1)),t[186]||(t[186]=l("p",null,"Represents a constant value.",-1)),t[187]||(t[187]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1075-L1079",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",P,[l("summary",null,[t[188]||(t[188]=l("a",{id:"Reactant.MLIR.Dialects.chlo.constant_like-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.constant_like-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.constant_like")],-1)),t[189]||(t[189]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[190]||(t[190]=l("p",null,[l("code",null,"constant_like")],-1)),t[191]||(t[191]=l("p",null,"Returns a splat constant of the same shape as the operand.",-1)),t[192]||(t[192]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1048-L1052",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",G,[l("summary",null,[t[193]||(t[193]=l("a",{id:"Reactant.MLIR.Dialects.chlo.cosh-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.cosh-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.cosh")],-1)),t[194]||(t[194]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[195]||(t[195]=l("p",null,[l("code",null,"cosh")],-1)),t[196]||(t[196]=l("p",null,[e("Returns "),l("code",null,"Cosh(operand)"),e(" element-wise.")],-1)),t[197]||(t[197]=l("p",null,"$",-1)),t[198]||(t[198]=l("p",null,"\\cosh(x) = (e^x + e^-x) / 2 $",-1)),t[199]||(t[199]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1100-L1108",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",F,[l("summary",null,[t[200]||(t[200]=l("a",{id:"Reactant.MLIR.Dialects.chlo.digamma-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.digamma-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.digamma")],-1)),t[201]||(t[201]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[202]||(t[202]=l("p",null,[l("code",null,"digamma")],-1)),t[203]||(t[203]=l("p",null,[e("Returns "),l("code",null,"Digamma(operand)"),e(" element-wise.")],-1)),t[204]||(t[204]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1129-L1133",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",U,[l("summary",null,[t[205]||(t[205]=l("a",{id:"Reactant.MLIR.Dialects.chlo.erf-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.erf-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.erf")],-1)),t[206]||(t[206]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[207]||(t[207]=l("p",null,[l("code",null,"erf")],-1)),t[208]||(t[208]=l("p",null,[e("Computes the Gauss error function of "),l("code",null,"x"),e(" element-wise.")],-1)),t[209]||(t[209]=l("p",null,"erf(x) = erf_impl(x) if |x| < 1 = 1 - erfc_impl(x) otherwise",-1)),t[210]||(t[210]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1183-L1190",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",Z,[l("summary",null,[t[211]||(t[211]=l("a",{id:"Reactant.MLIR.Dialects.chlo.erf_inv-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.erf_inv-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.erf_inv")],-1)),t[212]||(t[212]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[213]||(t[213]=l("p",null,[l("code",null,"erf_inv")],-1)),t[214]||(t[214]=l("p",null,[e("Returns "),l("code",null,"ErfInv(operand)"),e(" element-wise.")],-1)),t[215]||(t[215]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1156-L1160",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",J,[l("summary",null,[t[216]||(t[216]=l("a",{id:"Reactant.MLIR.Dialects.chlo.erfc-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.erfc-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.erfc")],-1)),t[217]||(t[217]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[218]||(t[218]=l("p",null,[l("code",null,"erfc")],-1)),t[219]||(t[219]=l("p",null,"Computes an approximation of the error function complement (1 - erf(x)).",-1)),t[220]||(t[220]=l("p",null,"erfc(x) = erfc_impl(x) if |x| > 1 = 1 - erf_impl(x) otherwise",-1)),t[221]||(t[221]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1211-L1218",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",K,[l("summary",null,[t[222]||(t[222]=l("a",{id:"Reactant.MLIR.Dialects.chlo.is_inf-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.is_inf-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.is_inf")],-1)),t[223]||(t[223]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[224]||(t[224]=l("p",null,[l("code",null,"is_inf")],-1)),t[225]||(t[225]=l("p",null,"Returns if a value is +/-inf element-wise.",-1)),t[226]||(t[226]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1239-L1243",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",Q,[l("summary",null,[t[227]||(t[227]=l("a",{id:"Reactant.MLIR.Dialects.chlo.is_neg_inf-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.is_neg_inf-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.is_neg_inf")],-1)),t[228]||(t[228]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[229]||(t[229]=l("p",null,[l("code",null,"is_neg_inf")],-1)),t[230]||(t[230]=l("p",null,"Returns if a value is -inf element-wise.",-1)),t[231]||(t[231]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1264-L1268",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",W,[l("summary",null,[t[232]||(t[232]=l("a",{id:"Reactant.MLIR.Dialects.chlo.is_pos_inf-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.is_pos_inf-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.is_pos_inf")],-1)),t[233]||(t[233]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[234]||(t[234]=l("p",null,[l("code",null,"is_pos_inf")],-1)),t[235]||(t[235]=l("p",null,"Returns if a value is +inf element-wise.",-1)),t[236]||(t[236]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1291-L1295",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",X,[l("summary",null,[t[237]||(t[237]=l("a",{id:"Reactant.MLIR.Dialects.chlo.lgamma-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.lgamma-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.lgamma")],-1)),t[238]||(t[238]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[239]||(t[239]=l("p",null,[l("code",null,"lgamma")],-1)),t[240]||(t[240]=l("p",null,[e("Returns "),l("code",null,"Lgamma(operand)"),e(" element-wise.")],-1)),t[241]||(t[241]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1318-L1322",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",Y,[l("summary",null,[t[242]||(t[242]=l("a",{id:"Reactant.MLIR.Dialects.chlo.next_after-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.next_after-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.next_after")],-1)),t[243]||(t[243]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[244]||(t[244]=l("p",null,[l("code",null,"next_after")],-1)),t[245]||(t[245]=l("p",null,[e("Returns the next representable value of "),l("code",null,"x"),e(" in the direction of "),l("code",null,"y"),e(", element-wise. It can also return a subnormal number.")],-1)),t[246]||(t[246]=l("p",null,"Equivalent to the C++ std::nextafter function.",-1)),t[247]||(t[247]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1343-L1350",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",_,[l("summary",null,[t[248]||(t[248]=l("a",{id:"Reactant.MLIR.Dialects.chlo.polygamma-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.polygamma-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.polygamma")],-1)),t[249]||(t[249]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[250]||(t[250]=l("p",null,[l("code",null,"polygamma")],-1)),t[251]||(t[251]=l("p",null,[e("Returns "),l("code",null,"Polygamma(operand, operand)"),e(" element-wise.")],-1)),t[252]||(t[252]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1373-L1377",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",tt,[l("summary",null,[t[253]||(t[253]=l("a",{id:"Reactant.MLIR.Dialects.chlo.sinh-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.sinh-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.sinh")],-1)),t[254]||(t[254]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[255]||(t[255]=l("p",null,[l("code",null,"sinh")],-1)),t[256]||(t[256]=l("p",null,[e("Returns "),l("code",null,"Sinh(operand)"),e(" element-wise.")],-1)),t[257]||(t[257]=l("p",null,"$",-1)),t[258]||(t[258]=l("p",null,"\\sinh(x) = (e^x - e^-x) / 2 if |x| < 1 = e^(x + log(1/2)) - e^(-x + log(1/2)) otherwise. $",-1)),t[259]||(t[259]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1400-L1409",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",lt,[l("summary",null,[t[260]||(t[260]=l("a",{id:"Reactant.MLIR.Dialects.chlo.tan-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.tan-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.tan")],-1)),t[261]||(t[261]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[262]||(t[262]=l("p",null,[l("code",null,"tan")],-1)),t[263]||(t[263]=l("p",null,[e("Returns "),l("code",null,"Tan(operand)"),e(" element-wise.")],-1)),t[264]||(t[264]=l("p",null,"$",-1)),t[265]||(t[265]=l("p",null,"\\tan(x) = \\sin(x) / \\cos(x) $",-1)),t[266]||(t[266]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1430-L1438",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",et,[l("summary",null,[t[267]||(t[267]=l("a",{id:"Reactant.MLIR.Dialects.chlo.top_k-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.top_k-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.top_k")],-1)),t[268]||(t[268]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[269]||(t[269]=s('top_k
If the input is a vector (rank-1), finds the k
largest entries in the vector and outputs their values and indices as vectors. Thus values[j]
is the j
-th largest entry in input
, and its index is indices[j]
.
For matrices (resp. higher rank input), computes the top k
entries in each row (resp. vector along the last dimension). Thus,
values.shape = indices.shape = input.shape[:-1] + [k]
If two elements are equal, the lower-index element appears first.
',6))]),l("details",at,[l("summary",null,[t[270]||(t[270]=l("a",{id:"Reactant.MLIR.Dialects.chlo.zeta-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.zeta-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.zeta")],-1)),t[271]||(t[271]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[272]||(t[272]=l("p",null,[l("code",null,"zeta")],-1)),t[273]||(t[273]=l("p",null,[e("Returns "),l("code",null,"Zeta(operand, operand)"),e(" element-wise.")],-1)),t[274]||(t[274]=l("p",null,"$",-1)),t[275]||(t[275]=l("p",null,"(\\zeta(x, q) = \\sum_{n=0}^{\\infty} (q + n)^{-x}) $",-1)),t[276]||(t[276]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1500-L1508",target:"_blank",rel:"noreferrer"},"source")],-1))])])}const pt=o(d,[["render",nt]]);export{Rt as __pageData,pt as default}; diff --git a/previews/PR363/assets/api_chlo.md.CTmmK6a-.lean.js b/previews/PR363/assets/api_chlo.md.CTmmK6a-.lean.js new file mode 100644 index 00000000..890c9f99 --- /dev/null +++ b/previews/PR363/assets/api_chlo.md.CTmmK6a-.lean.js @@ -0,0 +1 @@ +import{_ as o,c as r,j as l,a as e,G as n,a2 as s,B as i,o as u}from"./chunks/framework.2yyKLD8d.js";const Rt=JSON.parse('{"title":"CHLO Dialect","description":"","frontmatter":{},"headers":[],"relativePath":"api/chlo.md","filePath":"api/chlo.md","lastUpdated":null}'),d={name:"api/chlo.md"},R={class:"jldocstring custom-block"},p={class:"jldocstring custom-block"},c={class:"jldocstring custom-block"},m={class:"jldocstring custom-block"},f={class:"jldocstring custom-block"},b={class:"jldocstring custom-block"},I={class:"jldocstring custom-block"},L={class:"jldocstring custom-block"},M={class:"jldocstring custom-block"},j={class:"jldocstring custom-block"},g={class:"jldocstring custom-block"},y={class:"jldocstring custom-block"},D={class:"jldocstring custom-block"},w={class:"jldocstring custom-block"},x={class:"jldocstring custom-block"},T={class:"jldocstring custom-block"},h={class:"jldocstring custom-block"},V={class:"jldocstring custom-block"},k={class:"jldocstring custom-block"},O={class:"jldocstring custom-block"},z={class:"jldocstring custom-block"},C={class:"jldocstring custom-block"},A={class:"jldocstring custom-block"},E={class:"jldocstring custom-block"},H={class:"jldocstring custom-block"},v={class:"jldocstring custom-block"},$={class:"jldocstring custom-block"},S={class:"jldocstring custom-block"},q={class:"jldocstring custom-block"},N={class:"jldocstring custom-block"},B={class:"jldocstring custom-block"},P={class:"jldocstring custom-block"},G={class:"jldocstring custom-block"},F={class:"jldocstring custom-block"},U={class:"jldocstring custom-block"},Z={class:"jldocstring custom-block"},J={class:"jldocstring custom-block"},K={class:"jldocstring custom-block"},Q={class:"jldocstring custom-block"},W={class:"jldocstring custom-block"},X={class:"jldocstring custom-block"},Y={class:"jldocstring custom-block"},_={class:"jldocstring custom-block"},tt={class:"jldocstring custom-block"},lt={class:"jldocstring custom-block"},et={class:"jldocstring custom-block"},at={class:"jldocstring custom-block"};function nt(st,t,ot,rt,it,ut){const a=i("Badge");return u(),r("div",null,[t[277]||(t[277]=l("h1",{id:"CHLO-Dialect",tabindex:"-1"},[e("CHLO Dialect "),l("a",{class:"header-anchor",href:"#CHLO-Dialect","aria-label":'Permalink to "CHLO Dialect {#CHLO-Dialect}"'},"")],-1)),t[278]||(t[278]=l("p",null,[e("Refer to the "),l("a",{href:"https://github.com/openxla/xla/tree/main/xla/mlir_hlo#hlo-client-dialect-chlo",target:"_blank",rel:"noreferrer"},"official documentation"),e(" for more details.")],-1)),l("details",R,[l("summary",null,[t[0]||(t[0]=l("a",{id:"Reactant.MLIR.Dialects.chlo._asin_acos_kernel-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo._asin_acos_kernel-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo._asin_acos_kernel")],-1)),t[1]||(t[1]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2]||(t[2]=l("p",null,[l("code",null,"_asin_acos_kernel")],-1)),t[3]||(t[3]=l("p",null,[e("Returns "),l("code",null,"AsinAcosKernel(operand)"),e(" element-wise.")],-1)),t[4]||(t[4]=l("p",null,"If w = _asin_acos_kernel(z) w' = _asin_acos_kernel(I * z) then asin(z) = complex(atan2(z.real, w.real), sign(z.imag) * w.imag) acos(z) = complex(atan2(w.real, z.real), -sign(z.imag) * w.imag) asinh(z) = complex(sign(z.real) * w'.imag, atan2(z.imag, w'.real)) acosh(z) = complex(w.imag, sign(z.imag) * atan2(w.real, z.real))",-1)),t[5]||(t[5]=l("p",null,"This op is used as an intermediate value in decompositions and should never be constructed directly by frameworks or consumed by backends.",-1)),t[6]||(t[6]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L76-L93",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",p,[l("summary",null,[t[7]||(t[7]=l("a",{id:"Reactant.MLIR.Dialects.chlo.acos-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.acos-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.acos")],-1)),t[8]||(t[8]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[9]||(t[9]=l("p",null,[l("code",null,"acos")],-1)),t[10]||(t[10]=l("p",null,[e("Returns "),l("code",null,"Acos(operand)"),e(" element-wise.")],-1)),t[11]||(t[11]=l("p",null,"$",-1)),t[12]||(t[12]=l("p",null,"\\acos(x) = 2 * \\atan(\\sqrt(1 - x^2) / (1 + x)) if x != -1 = pi if x == -1 $",-1)),t[13]||(t[13]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L16-L25",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",c,[l("summary",null,[t[14]||(t[14]=l("a",{id:"Reactant.MLIR.Dialects.chlo.acosh-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.acosh-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.acosh")],-1)),t[15]||(t[15]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[16]||(t[16]=l("p",null,[l("code",null,"acosh")],-1)),t[17]||(t[17]=l("p",null,[e("Returns "),l("code",null,"Acosh(operand)"),e(" element-wise.")],-1)),t[18]||(t[18]=l("p",null,"$",-1)),t[19]||(t[19]=l("p",null,"\\acosh(x) = log(x + sqrt(x^2 - 1)) if x >= -1 \\acosh(x) = nan if x < -1 $",-1)),t[20]||(t[20]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L46-L55",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",m,[l("summary",null,[t[21]||(t[21]=l("a",{id:"Reactant.MLIR.Dialects.chlo.asin-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.asin-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.asin")],-1)),t[22]||(t[22]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[23]||(t[23]=l("p",null,[l("code",null,"asin")],-1)),t[24]||(t[24]=l("p",null,[e("Returns "),l("code",null,"Asin(operand)"),e(" element-wise.")],-1)),t[25]||(t[25]=l("p",null,"$",-1)),t[26]||(t[26]=l("p",null,"\\asin(x) = 2 * atan(x / (1 + sqrt(1 - x^2))) $",-1)),t[27]||(t[27]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L116-L124",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",f,[l("summary",null,[t[28]||(t[28]=l("a",{id:"Reactant.MLIR.Dialects.chlo.asinh-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.asinh-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.asinh")],-1)),t[29]||(t[29]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[30]||(t[30]=l("p",null,[l("code",null,"asinh")],-1)),t[31]||(t[31]=l("p",null,[e("Returns "),l("code",null,"Asinh(operand)"),e(" element-wise.")],-1)),t[32]||(t[32]=l("p",null,"$",-1)),t[33]||(t[33]=l("p",null,"\\asinh(x) = log(x + sqrt(x^2 + 1)) $",-1)),t[34]||(t[34]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L145-L153",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",b,[l("summary",null,[t[35]||(t[35]=l("a",{id:"Reactant.MLIR.Dialects.chlo.atan-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.atan-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.atan")],-1)),t[36]||(t[36]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[37]||(t[37]=l("p",null,[l("code",null,"atan")],-1)),t[38]||(t[38]=l("p",null,[e("Returns "),l("code",null,"Atan(operand)"),e(" element-wise.")],-1)),t[39]||(t[39]=l("p",null,"$",-1)),t[40]||(t[40]=l("p",null,"\\atan(x) = \\atan2(x, 1) $",-1)),t[41]||(t[41]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L174-L182",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",I,[l("summary",null,[t[42]||(t[42]=l("a",{id:"Reactant.MLIR.Dialects.chlo.atanh-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.atanh-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.atanh")],-1)),t[43]||(t[43]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[44]||(t[44]=l("p",null,[l("code",null,"atanh")],-1)),t[45]||(t[45]=l("p",null,[e("Returns "),l("code",null,"Atanh(operand)"),e(" element-wise.")],-1)),t[46]||(t[46]=l("p",null,"$",-1)),t[47]||(t[47]=l("p",null,"\\atanh(x) = 0.5 * log((1 + x) / (1 - x)) if abs(x) <= 1 = nan otherwise $",-1)),t[48]||(t[48]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L203-L212",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",L,[l("summary",null,[t[49]||(t[49]=l("a",{id:"Reactant.MLIR.Dialects.chlo.bessel_i1e-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.bessel_i1e-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.bessel_i1e")],-1)),t[50]||(t[50]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[51]||(t[51]=l("p",null,[l("code",null,"bessel_i1e")],-1)),t[52]||(t[52]=l("p",null,[e("Returns "),l("code",null,"bessel_i1e(operand)"),e(" element-wise.")],-1)),t[53]||(t[53]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L233-L237",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",M,[l("summary",null,[t[54]||(t[54]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_add-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_add-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_add")],-1)),t[55]||(t[55]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[56]||(t[56]=l("p",null,[l("code",null,"broadcast_add")],-1)),t[57]||(t[57]=l("p",null,[e("Returns "),l("code",null,"lhs + rhs"),e(" element-wise.")],-1)),t[58]||(t[58]=l("p",null,[e("See "),l("a",{href:"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations",target:"_blank",rel:"noreferrer"},"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations"),e(".")],-1)),t[59]||(t[59]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L260-L267",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",j,[l("summary",null,[t[60]||(t[60]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_and-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_and-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_and")],-1)),t[61]||(t[61]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[62]||(t[62]=l("p",null,[l("code",null,"broadcast_and")],-1)),t[63]||(t[63]=l("p",null,[e("Returns "),l("code",null,"logical_and(lhs, rhs)"),e(" element-wise.")],-1)),t[64]||(t[64]=l("p",null,[e("See "),l("a",{href:"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations",target:"_blank",rel:"noreferrer"},"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations"),e(".")],-1)),t[65]||(t[65]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L296-L303",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",g,[l("summary",null,[t[66]||(t[66]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_atan2-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_atan2-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_atan2")],-1)),t[67]||(t[67]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[68]||(t[68]=l("p",null,[l("code",null,"broadcast_atan2")],-1)),t[69]||(t[69]=l("p",null,[e("Returns "),l("code",null,"atan2(lhs/rhs)"),e(" element-wise.")],-1)),t[70]||(t[70]=l("p",null,[e("See "),l("a",{href:"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations",target:"_blank",rel:"noreferrer"},"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations"),e(".")],-1)),t[71]||(t[71]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L332-L339",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",y,[l("summary",null,[t[72]||(t[72]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_compare-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_compare-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_compare")],-1)),t[73]||(t[73]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[74]||(t[74]=s('broadcast_compare
Compares lhs
and rhs
elementwise according to comparison_direction
and compare_type
. If unspecified, compare_type
is FLOAT for float element types, SIGNED for signed element types and UNSIGNED for unsigned element types.
See https://www.tensorflow.org/xla/operation_semantics#element-wise_comparison_operations.
',4))]),l("details",D,[l("summary",null,[t[75]||(t[75]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_complex-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_complex-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_complex")],-1)),t[76]||(t[76]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[77]||(t[77]=l("p",null,[l("code",null,"broadcast_complex")],-1)),t[78]||(t[78]=l("p",null,"Performs element-wise conversion of a pair of real and imaginary values to a complex value.",-1)),t[79]||(t[79]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L413-L418",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",w,[l("summary",null,[t[80]||(t[80]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_divide-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_divide-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_divide")],-1)),t[81]||(t[81]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[82]||(t[82]=l("p",null,[l("code",null,"broadcast_divide")],-1)),t[83]||(t[83]=l("p",null,[e("Returns "),l("code",null,"lhs / rhs"),e(" element-wise.")],-1)),t[84]||(t[84]=l("p",null,[e("See "),l("a",{href:"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations",target:"_blank",rel:"noreferrer"},"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations"),e(".")],-1)),t[85]||(t[85]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L447-L454",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",x,[l("summary",null,[t[86]||(t[86]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_maximum-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_maximum-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_maximum")],-1)),t[87]||(t[87]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[88]||(t[88]=l("p",null,[l("code",null,"broadcast_maximum")],-1)),t[89]||(t[89]=l("p",null,[e("Returns "),l("code",null,"max(lhs, rhs)"),e(" element-wise.")],-1)),t[90]||(t[90]=l("p",null,[e("See "),l("a",{href:"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations",target:"_blank",rel:"noreferrer"},"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations"),e(".")],-1)),t[91]||(t[91]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L483-L490",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",T,[l("summary",null,[t[92]||(t[92]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_minimum-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_minimum-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_minimum")],-1)),t[93]||(t[93]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[94]||(t[94]=l("p",null,[l("code",null,"broadcast_minimum")],-1)),t[95]||(t[95]=l("p",null,[e("Returns "),l("code",null,"min(lhs, rhs)"),e(" element-wise.")],-1)),t[96]||(t[96]=l("p",null,[e("See "),l("a",{href:"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations",target:"_blank",rel:"noreferrer"},"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations"),e(".")],-1)),t[97]||(t[97]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L519-L526",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",h,[l("summary",null,[t[98]||(t[98]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_multiply-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_multiply-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_multiply")],-1)),t[99]||(t[99]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[100]||(t[100]=l("p",null,[l("code",null,"broadcast_multiply")],-1)),t[101]||(t[101]=l("p",null,[e("Returns "),l("code",null,"lhs * rhs"),e(" element-wise.")],-1)),t[102]||(t[102]=l("p",null,[e("See "),l("a",{href:"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations",target:"_blank",rel:"noreferrer"},"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations"),e(".")],-1)),t[103]||(t[103]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L555-L562",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",V,[l("summary",null,[t[104]||(t[104]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_next_after-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_next_after-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_next_after")],-1)),t[105]||(t[105]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[106]||(t[106]=l("p",null,[l("code",null,"broadcast_next_after")],-1)),t[107]||(t[107]=l("p",null,[e("Returns the next representable value of "),l("code",null,"lhs"),e(" in the direction of "),l("code",null,"rhs"),e(", element-wise. It can also return a subnormal number.")],-1)),t[108]||(t[108]=l("p",null,"Equivalent to the C++ std::nextafter function.",-1)),t[109]||(t[109]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L591-L598",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",k,[l("summary",null,[t[110]||(t[110]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_or-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_or-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_or")],-1)),t[111]||(t[111]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[112]||(t[112]=l("p",null,[l("code",null,"broadcast_or")],-1)),t[113]||(t[113]=l("p",null,[e("Returns "),l("code",null,"logical_or(lhs, rhs)"),e(" element-wise.")],-1)),t[114]||(t[114]=l("p",null,[e("See "),l("a",{href:"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations",target:"_blank",rel:"noreferrer"},"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations"),e(".")],-1)),t[115]||(t[115]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L627-L634",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",O,[l("summary",null,[t[116]||(t[116]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_polygamma-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_polygamma-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_polygamma")],-1)),t[117]||(t[117]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[118]||(t[118]=l("p",null,[l("code",null,"broadcast_polygamma")],-1)),t[119]||(t[119]=l("p",null,[e("Returns "),l("code",null,"Polygamma(operand, operand)"),e(" element-wise.")],-1)),t[120]||(t[120]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L663-L667",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",z,[l("summary",null,[t[121]||(t[121]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_power-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_power-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_power")],-1)),t[122]||(t[122]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[123]||(t[123]=l("p",null,[l("code",null,"broadcast_power")],-1)),t[124]||(t[124]=l("p",null,[e("Returns "),l("code",null,"lhs ^ rhs"),e(" element-wise.")],-1)),t[125]||(t[125]=l("p",null,[e("See "),l("a",{href:"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations",target:"_blank",rel:"noreferrer"},"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations"),e(".")],-1)),t[126]||(t[126]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L696-L703",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",C,[l("summary",null,[t[127]||(t[127]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_remainder-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_remainder-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_remainder")],-1)),t[128]||(t[128]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[129]||(t[129]=l("p",null,[l("code",null,"broadcast_remainder")],-1)),t[130]||(t[130]=l("p",null,[e("Returns "),l("code",null,"lhs % rhs"),e(" element-wise.")],-1)),t[131]||(t[131]=l("p",null,[e("See "),l("a",{href:"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations",target:"_blank",rel:"noreferrer"},"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations"),e(".")],-1)),t[132]||(t[132]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L732-L739",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",A,[l("summary",null,[t[133]||(t[133]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_select-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_select-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_select")],-1)),t[134]||(t[134]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[135]||(t[135]=l("p",null,[l("code",null,"broadcast_select")],-1)),t[136]||(t[136]=l("p",null,"Constructs an output array from elements of two input arrays, based on the values of a predicate array.",-1)),t[137]||(t[137]=l("p",null,[e("See "),l("a",{href:"https://www.tensorflow.org/xla/operation_semantics#select",target:"_blank",rel:"noreferrer"},"https://www.tensorflow.org/xla/operation_semantics#select")],-1)),t[138]||(t[138]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L768-L775",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",E,[l("summary",null,[t[139]||(t[139]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_shift_left-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_shift_left-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_shift_left")],-1)),t[140]||(t[140]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[141]||(t[141]=l("p",null,[l("code",null,"broadcast_shift_left")],-1)),t[142]||(t[142]=l("p",null,[e("Returns "),l("code",null,"lhs << rhs"),e(" element-wise.")],-1)),t[143]||(t[143]=l("p",null,[e("See "),l("a",{href:"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations",target:"_blank",rel:"noreferrer"},"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations"),e(".")],-1)),t[144]||(t[144]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L802-L809",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",H,[l("summary",null,[t[145]||(t[145]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_shift_right_arithmetic-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_shift_right_arithmetic-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_shift_right_arithmetic")],-1)),t[146]||(t[146]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[147]||(t[147]=l("p",null,[l("code",null,"broadcast_shift_right_arithmetic")],-1)),t[148]||(t[148]=l("p",null,[e("Returns "),l("code",null,"lhs >> rhs"),e(" element-wise.")],-1)),t[149]||(t[149]=l("p",null,[e("See "),l("a",{href:"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations",target:"_blank",rel:"noreferrer"},"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations"),e(".")],-1)),t[150]||(t[150]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L838-L845",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",v,[l("summary",null,[t[151]||(t[151]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_shift_right_logical-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_shift_right_logical-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_shift_right_logical")],-1)),t[152]||(t[152]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[153]||(t[153]=l("p",null,[l("code",null,"broadcast_shift_right_logical")],-1)),t[154]||(t[154]=l("p",null,[e("Returns "),l("code",null,"lhs >> rhs"),e(" element-wise.")],-1)),t[155]||(t[155]=l("p",null,[e("See "),l("a",{href:"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations",target:"_blank",rel:"noreferrer"},"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations"),e(".")],-1)),t[156]||(t[156]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L874-L881",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",$,[l("summary",null,[t[157]||(t[157]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_subtract-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_subtract-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_subtract")],-1)),t[158]||(t[158]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[159]||(t[159]=l("p",null,[l("code",null,"broadcast_subtract")],-1)),t[160]||(t[160]=l("p",null,[e("Returns "),l("code",null,"lhs - rhs"),e(" element-wise.")],-1)),t[161]||(t[161]=l("p",null,[e("See "),l("a",{href:"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations",target:"_blank",rel:"noreferrer"},"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations"),e(".")],-1)),t[162]||(t[162]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L910-L917",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",S,[l("summary",null,[t[163]||(t[163]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_xor-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_xor-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_xor")],-1)),t[164]||(t[164]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[165]||(t[165]=l("p",null,[l("code",null,"broadcast_xor")],-1)),t[166]||(t[166]=l("p",null,[e("Returns "),l("code",null,"logical_xor(lhs, rhs)"),e(" element-wise.")],-1)),t[167]||(t[167]=l("p",null,[e("See "),l("a",{href:"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations",target:"_blank",rel:"noreferrer"},"https://www.tensorflow.org/xla/operation_semantics#element-wise_binary_arithmetic_operations"),e(".")],-1)),t[168]||(t[168]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L946-L953",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",q,[l("summary",null,[t[169]||(t[169]=l("a",{id:"Reactant.MLIR.Dialects.chlo.broadcast_zeta-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.broadcast_zeta-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.broadcast_zeta")],-1)),t[170]||(t[170]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[171]||(t[171]=l("p",null,[l("code",null,"broadcast_zeta")],-1)),t[172]||(t[172]=l("p",null,[e("Returns "),l("code",null,"Zeta(operand, operand)"),e(" element-wise.")],-1)),t[173]||(t[173]=l("p",null,"$",-1)),t[174]||(t[174]=l("p",null,"(\\zeta(x, q) = \\sum_{n=0}^{\\infty} (q + n)^{-x}) $",-1)),t[175]||(t[175]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L982-L990",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",N,[l("summary",null,[t[176]||(t[176]=l("a",{id:"Reactant.MLIR.Dialects.chlo.conj-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.conj-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.conj")],-1)),t[177]||(t[177]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[178]||(t[178]=l("p",null,[l("code",null,"conj")],-1)),t[179]||(t[179]=l("p",null,[e("Returns "),l("code",null,"Conj(operand)"),e(" element-wise.")],-1)),t[180]||(t[180]=l("p",null,"$",-1)),t[181]||(t[181]=l("p",null,"\\conj(x) = (\\real(x), \\neg(\\imag(x))) $",-1)),t[182]||(t[182]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1019-L1027",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",B,[l("summary",null,[t[183]||(t[183]=l("a",{id:"Reactant.MLIR.Dialects.chlo.constant-Tuple{}",href:"#Reactant.MLIR.Dialects.chlo.constant-Tuple{}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.constant")],-1)),t[184]||(t[184]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[185]||(t[185]=l("p",null,[l("code",null,"constant")],-1)),t[186]||(t[186]=l("p",null,"Represents a constant value.",-1)),t[187]||(t[187]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1075-L1079",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",P,[l("summary",null,[t[188]||(t[188]=l("a",{id:"Reactant.MLIR.Dialects.chlo.constant_like-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.constant_like-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.constant_like")],-1)),t[189]||(t[189]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[190]||(t[190]=l("p",null,[l("code",null,"constant_like")],-1)),t[191]||(t[191]=l("p",null,"Returns a splat constant of the same shape as the operand.",-1)),t[192]||(t[192]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1048-L1052",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",G,[l("summary",null,[t[193]||(t[193]=l("a",{id:"Reactant.MLIR.Dialects.chlo.cosh-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.cosh-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.cosh")],-1)),t[194]||(t[194]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[195]||(t[195]=l("p",null,[l("code",null,"cosh")],-1)),t[196]||(t[196]=l("p",null,[e("Returns "),l("code",null,"Cosh(operand)"),e(" element-wise.")],-1)),t[197]||(t[197]=l("p",null,"$",-1)),t[198]||(t[198]=l("p",null,"\\cosh(x) = (e^x + e^-x) / 2 $",-1)),t[199]||(t[199]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1100-L1108",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",F,[l("summary",null,[t[200]||(t[200]=l("a",{id:"Reactant.MLIR.Dialects.chlo.digamma-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.digamma-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.digamma")],-1)),t[201]||(t[201]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[202]||(t[202]=l("p",null,[l("code",null,"digamma")],-1)),t[203]||(t[203]=l("p",null,[e("Returns "),l("code",null,"Digamma(operand)"),e(" element-wise.")],-1)),t[204]||(t[204]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1129-L1133",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",U,[l("summary",null,[t[205]||(t[205]=l("a",{id:"Reactant.MLIR.Dialects.chlo.erf-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.erf-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.erf")],-1)),t[206]||(t[206]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[207]||(t[207]=l("p",null,[l("code",null,"erf")],-1)),t[208]||(t[208]=l("p",null,[e("Computes the Gauss error function of "),l("code",null,"x"),e(" element-wise.")],-1)),t[209]||(t[209]=l("p",null,"erf(x) = erf_impl(x) if |x| < 1 = 1 - erfc_impl(x) otherwise",-1)),t[210]||(t[210]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1183-L1190",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",Z,[l("summary",null,[t[211]||(t[211]=l("a",{id:"Reactant.MLIR.Dialects.chlo.erf_inv-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.erf_inv-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.erf_inv")],-1)),t[212]||(t[212]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[213]||(t[213]=l("p",null,[l("code",null,"erf_inv")],-1)),t[214]||(t[214]=l("p",null,[e("Returns "),l("code",null,"ErfInv(operand)"),e(" element-wise.")],-1)),t[215]||(t[215]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1156-L1160",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",J,[l("summary",null,[t[216]||(t[216]=l("a",{id:"Reactant.MLIR.Dialects.chlo.erfc-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.erfc-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.erfc")],-1)),t[217]||(t[217]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[218]||(t[218]=l("p",null,[l("code",null,"erfc")],-1)),t[219]||(t[219]=l("p",null,"Computes an approximation of the error function complement (1 - erf(x)).",-1)),t[220]||(t[220]=l("p",null,"erfc(x) = erfc_impl(x) if |x| > 1 = 1 - erf_impl(x) otherwise",-1)),t[221]||(t[221]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1211-L1218",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",K,[l("summary",null,[t[222]||(t[222]=l("a",{id:"Reactant.MLIR.Dialects.chlo.is_inf-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.is_inf-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.is_inf")],-1)),t[223]||(t[223]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[224]||(t[224]=l("p",null,[l("code",null,"is_inf")],-1)),t[225]||(t[225]=l("p",null,"Returns if a value is +/-inf element-wise.",-1)),t[226]||(t[226]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1239-L1243",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",Q,[l("summary",null,[t[227]||(t[227]=l("a",{id:"Reactant.MLIR.Dialects.chlo.is_neg_inf-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.is_neg_inf-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.is_neg_inf")],-1)),t[228]||(t[228]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[229]||(t[229]=l("p",null,[l("code",null,"is_neg_inf")],-1)),t[230]||(t[230]=l("p",null,"Returns if a value is -inf element-wise.",-1)),t[231]||(t[231]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1264-L1268",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",W,[l("summary",null,[t[232]||(t[232]=l("a",{id:"Reactant.MLIR.Dialects.chlo.is_pos_inf-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.is_pos_inf-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.is_pos_inf")],-1)),t[233]||(t[233]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[234]||(t[234]=l("p",null,[l("code",null,"is_pos_inf")],-1)),t[235]||(t[235]=l("p",null,"Returns if a value is +inf element-wise.",-1)),t[236]||(t[236]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1291-L1295",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",X,[l("summary",null,[t[237]||(t[237]=l("a",{id:"Reactant.MLIR.Dialects.chlo.lgamma-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.lgamma-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.lgamma")],-1)),t[238]||(t[238]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[239]||(t[239]=l("p",null,[l("code",null,"lgamma")],-1)),t[240]||(t[240]=l("p",null,[e("Returns "),l("code",null,"Lgamma(operand)"),e(" element-wise.")],-1)),t[241]||(t[241]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1318-L1322",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",Y,[l("summary",null,[t[242]||(t[242]=l("a",{id:"Reactant.MLIR.Dialects.chlo.next_after-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.next_after-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.next_after")],-1)),t[243]||(t[243]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[244]||(t[244]=l("p",null,[l("code",null,"next_after")],-1)),t[245]||(t[245]=l("p",null,[e("Returns the next representable value of "),l("code",null,"x"),e(" in the direction of "),l("code",null,"y"),e(", element-wise. It can also return a subnormal number.")],-1)),t[246]||(t[246]=l("p",null,"Equivalent to the C++ std::nextafter function.",-1)),t[247]||(t[247]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1343-L1350",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",_,[l("summary",null,[t[248]||(t[248]=l("a",{id:"Reactant.MLIR.Dialects.chlo.polygamma-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.polygamma-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.polygamma")],-1)),t[249]||(t[249]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[250]||(t[250]=l("p",null,[l("code",null,"polygamma")],-1)),t[251]||(t[251]=l("p",null,[e("Returns "),l("code",null,"Polygamma(operand, operand)"),e(" element-wise.")],-1)),t[252]||(t[252]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1373-L1377",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",tt,[l("summary",null,[t[253]||(t[253]=l("a",{id:"Reactant.MLIR.Dialects.chlo.sinh-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.sinh-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.sinh")],-1)),t[254]||(t[254]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[255]||(t[255]=l("p",null,[l("code",null,"sinh")],-1)),t[256]||(t[256]=l("p",null,[e("Returns "),l("code",null,"Sinh(operand)"),e(" element-wise.")],-1)),t[257]||(t[257]=l("p",null,"$",-1)),t[258]||(t[258]=l("p",null,"\\sinh(x) = (e^x - e^-x) / 2 if |x| < 1 = e^(x + log(1/2)) - e^(-x + log(1/2)) otherwise. $",-1)),t[259]||(t[259]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1400-L1409",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",lt,[l("summary",null,[t[260]||(t[260]=l("a",{id:"Reactant.MLIR.Dialects.chlo.tan-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.tan-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.tan")],-1)),t[261]||(t[261]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[262]||(t[262]=l("p",null,[l("code",null,"tan")],-1)),t[263]||(t[263]=l("p",null,[e("Returns "),l("code",null,"Tan(operand)"),e(" element-wise.")],-1)),t[264]||(t[264]=l("p",null,"$",-1)),t[265]||(t[265]=l("p",null,"\\tan(x) = \\sin(x) / \\cos(x) $",-1)),t[266]||(t[266]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1430-L1438",target:"_blank",rel:"noreferrer"},"source")],-1))]),l("details",et,[l("summary",null,[t[267]||(t[267]=l("a",{id:"Reactant.MLIR.Dialects.chlo.top_k-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.top_k-Tuple{Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.top_k")],-1)),t[268]||(t[268]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[269]||(t[269]=s('top_k
If the input is a vector (rank-1), finds the k
largest entries in the vector and outputs their values and indices as vectors. Thus values[j]
is the j
-th largest entry in input
, and its index is indices[j]
.
For matrices (resp. higher rank input), computes the top k
entries in each row (resp. vector along the last dimension). Thus,
values.shape = indices.shape = input.shape[:-1] + [k]
If two elements are equal, the lower-index element appears first.
',6))]),l("details",at,[l("summary",null,[t[270]||(t[270]=l("a",{id:"Reactant.MLIR.Dialects.chlo.zeta-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.chlo.zeta-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[l("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.chlo.zeta")],-1)),t[271]||(t[271]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[272]||(t[272]=l("p",null,[l("code",null,"zeta")],-1)),t[273]||(t[273]=l("p",null,[e("Returns "),l("code",null,"Zeta(operand, operand)"),e(" element-wise.")],-1)),t[274]||(t[274]=l("p",null,"$",-1)),t[275]||(t[275]=l("p",null,"(\\zeta(x, q) = \\sum_{n=0}^{\\infty} (q + n)^{-x}) $",-1)),t[276]||(t[276]=l("p",null,[l("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/CHLO.jl#L1500-L1508",target:"_blank",rel:"noreferrer"},"source")],-1))])])}const pt=o(d,[["render",nt]]);export{Rt as __pageData,pt as default}; diff --git a/previews/PR363/assets/api_enzyme.md.C8cSUFJK.js b/previews/PR363/assets/api_enzyme.md.C8cSUFJK.js new file mode 100644 index 00000000..b4cc968c --- /dev/null +++ b/previews/PR363/assets/api_enzyme.md.C8cSUFJK.js @@ -0,0 +1 @@ +import{_ as l,c as o,j as t,a,G as s,B as r,o as d}from"./chunks/framework.2yyKLD8d.js";const R=JSON.parse('{"title":"Enzyme Dialect","description":"","frontmatter":{},"headers":[],"relativePath":"api/enzyme.md","filePath":"api/enzyme.md","lastUpdated":null}'),i={name:"api/enzyme.md"},c={class:"jldocstring custom-block"};function m(p,e,u,y,f,z){const n=r("Badge");return d(),o("div",null,[e[5]||(e[5]=t("h1",{id:"Enzyme-Dialect",tabindex:"-1"},[a("Enzyme Dialect "),t("a",{class:"header-anchor",href:"#Enzyme-Dialect","aria-label":'Permalink to "Enzyme Dialect {#Enzyme-Dialect}"'},"")],-1)),t("details",c,[t("summary",null,[e[0]||(e[0]=t("a",{id:"Reactant.MLIR.Dialects.enzyme.addTo-Tuple{Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.enzyme.addTo-Tuple{Vector{Reactant.MLIR.IR.Value}}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.enzyme.addTo")],-1)),e[1]||(e[1]=a()),s(n,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[2]||(e[2]=t("p",null,[t("code",null,"addTo")],-1)),e[3]||(e[3]=t("p",null,"TODO",-1)),e[4]||(e[4]=t("p",null,[t("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/Enzyme.jl#L16-L20",target:"_blank",rel:"noreferrer"},"source")],-1))])])}const b=l(i,[["render",m]]);export{R as __pageData,b as default}; diff --git a/previews/PR363/assets/api_enzyme.md.C8cSUFJK.lean.js b/previews/PR363/assets/api_enzyme.md.C8cSUFJK.lean.js new file mode 100644 index 00000000..b4cc968c --- /dev/null +++ b/previews/PR363/assets/api_enzyme.md.C8cSUFJK.lean.js @@ -0,0 +1 @@ +import{_ as l,c as o,j as t,a,G as s,B as r,o as d}from"./chunks/framework.2yyKLD8d.js";const R=JSON.parse('{"title":"Enzyme Dialect","description":"","frontmatter":{},"headers":[],"relativePath":"api/enzyme.md","filePath":"api/enzyme.md","lastUpdated":null}'),i={name:"api/enzyme.md"},c={class:"jldocstring custom-block"};function m(p,e,u,y,f,z){const n=r("Badge");return d(),o("div",null,[e[5]||(e[5]=t("h1",{id:"Enzyme-Dialect",tabindex:"-1"},[a("Enzyme Dialect "),t("a",{class:"header-anchor",href:"#Enzyme-Dialect","aria-label":'Permalink to "Enzyme Dialect {#Enzyme-Dialect}"'},"")],-1)),t("details",c,[t("summary",null,[e[0]||(e[0]=t("a",{id:"Reactant.MLIR.Dialects.enzyme.addTo-Tuple{Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.enzyme.addTo-Tuple{Vector{Reactant.MLIR.IR.Value}}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.enzyme.addTo")],-1)),e[1]||(e[1]=a()),s(n,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[2]||(e[2]=t("p",null,[t("code",null,"addTo")],-1)),e[3]||(e[3]=t("p",null,"TODO",-1)),e[4]||(e[4]=t("p",null,[t("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/Enzyme.jl#L16-L20",target:"_blank",rel:"noreferrer"},"source")],-1))])])}const b=l(i,[["render",m]]);export{R as __pageData,b as default}; diff --git a/previews/PR363/assets/api_func.md.BwGv464S.js b/previews/PR363/assets/api_func.md.BwGv464S.js new file mode 100644 index 00000000..5d05fa50 --- /dev/null +++ b/previews/PR363/assets/api_func.md.BwGv464S.js @@ -0,0 +1,26 @@ +import{_ as c,c as i,j as e,a,G as s,a2 as l,B as o,o as p}from"./chunks/framework.2yyKLD8d.js";const L=JSON.parse('{"title":"Func Dialect","description":"","frontmatter":{},"headers":[],"relativePath":"api/func.md","filePath":"api/func.md","lastUpdated":null}'),r={name:"api/func.md"},u={class:"jldocstring custom-block"},d={class:"jldocstring custom-block"},f={class:"jldocstring custom-block"},m={class:"jldocstring custom-block"},b={class:"jldocstring custom-block"};function g(h,n,R,y,v,x){const t=o("Badge");return p(),i("div",null,[n[15]||(n[15]=e("h1",{id:"Func-Dialect",tabindex:"-1"},[a("Func Dialect "),e("a",{class:"header-anchor",href:"#Func-Dialect","aria-label":'Permalink to "Func Dialect {#Func-Dialect}"'},"")],-1)),n[16]||(n[16]=e("p",null,[a("Refer to the "),e("a",{href:"https://mlir.llvm.org/docs/Dialects/Func/",target:"_blank",rel:"noreferrer"},"official documentation"),a(" for more details.")],-1)),e("details",u,[e("summary",null,[n[0]||(n[0]=e("a",{id:"Reactant.MLIR.Dialects.func.call-Tuple{Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.func.call-Tuple{Vector{Reactant.MLIR.IR.Value}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.func.call")],-1)),n[1]||(n[1]=a()),s(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),n[2]||(n[2]=l('call
The func.call
operation represents a direct call to a function that is within the same symbol scope as the call. The operands and result types of the call must match the specified function type. The callee is encoded as a symbol reference attribute named "callee".
Example
%2 = func.call @my_add(%0, %1) : (f32, f32) -> f32
call_indirect
The func.call_indirect
operation represents an indirect call to a value of function type. The operands and result types of the call must match the specified function type.
Function values can be created with the func.constant
operation.
Example
%func = func.constant @my_func : (tensor<16xf32>, tensor<16xf32>) -> tensor<16xf32>
+%result = func.call_indirect %func(%0, %1) : (tensor<16xf32>, tensor<16xf32>) -> tensor<16xf32>
constant
The func.constant
operation produces an SSA value from a symbol reference to a func.func
operation
Example
// Reference to function @myfn.
+%2 = func.constant @myfn : (tensor<16xf32>, f32) -> tensor<16xf32>
+
+// Equivalent generic forms
+%2 = "func.constant"() { value = @myfn } : () -> ((tensor<16xf32>, f32) -> tensor<16xf32>)
MLIR does not allow direct references to functions in SSA operands because the compiler is multithreaded, and disallowing SSA values to directly reference a function simplifies this (rationale).
`,6))]),e("details",m,[e("summary",null,[n[9]||(n[9]=e("a",{id:"Reactant.MLIR.Dialects.func.func_-Tuple{}",href:"#Reactant.MLIR.Dialects.func.func_-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.func.func_")],-1)),n[10]||(n[10]=a()),s(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),n[11]||(n[11]=l(`func_
Operations within the function cannot implicitly capture values defined outside of the function, i.e. Functions are IsolatedFromAbove
. All external references must use function arguments or attributes that establish a symbolic connection (e.g. symbols referenced by name via a string attribute like SymbolRefAttr). An external function declaration (used when referring to a function declared in some other module) has no body. While the MLIR textual form provides a nice inline syntax for function arguments, they are internally represented as “block arguments” to the first block in the region.
Only dialect attribute names may be specified in the attribute dictionaries for function arguments, results, or the function itself.
Example
// External function definitions.
+func.func private @abort()
+func.func private @scribble(i32, i64, memref<? x 128 x f32, #layout_map0>) -> f64
+
+// A function that returns its argument twice:
+func.func @count(%x: i64) -> (i64, i64)
+ attributes {fruit = "banana"} {
+ return %x, %x: i64, i64
+}
+
+// A function with an argument attribute
+func.func private @example_fn_arg(%x: i32 {swift.self = unit})
+
+// A function with a result attribute
+func.func private @example_fn_result() -> (f64 {dialectName.attrName = 0 : i64})
+
+// A function with an attribute
+func.func private @example_fn_attr() attributes {dialectName.attrName = false}
return_
The func.return
operation represents a return operation within a function. The operation takes variable number of operands and produces no results. The operand number and types must match the signature of the function that contains the operation.
Example
func.func @foo() : (i32, f8) {
+ ...
+ return %0, %1 : i32, f8
+}
call
The func.call
operation represents a direct call to a function that is within the same symbol scope as the call. The operands and result types of the call must match the specified function type. The callee is encoded as a symbol reference attribute named "callee".
Example
%2 = func.call @my_add(%0, %1) : (f32, f32) -> f32
call_indirect
The func.call_indirect
operation represents an indirect call to a value of function type. The operands and result types of the call must match the specified function type.
Function values can be created with the func.constant
operation.
Example
%func = func.constant @my_func : (tensor<16xf32>, tensor<16xf32>) -> tensor<16xf32>
+%result = func.call_indirect %func(%0, %1) : (tensor<16xf32>, tensor<16xf32>) -> tensor<16xf32>
constant
The func.constant
operation produces an SSA value from a symbol reference to a func.func
operation
Example
// Reference to function @myfn.
+%2 = func.constant @myfn : (tensor<16xf32>, f32) -> tensor<16xf32>
+
+// Equivalent generic forms
+%2 = "func.constant"() { value = @myfn } : () -> ((tensor<16xf32>, f32) -> tensor<16xf32>)
MLIR does not allow direct references to functions in SSA operands because the compiler is multithreaded, and disallowing SSA values to directly reference a function simplifies this (rationale).
`,6))]),e("details",m,[e("summary",null,[n[9]||(n[9]=e("a",{id:"Reactant.MLIR.Dialects.func.func_-Tuple{}",href:"#Reactant.MLIR.Dialects.func.func_-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.func.func_")],-1)),n[10]||(n[10]=a()),s(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),n[11]||(n[11]=l(`func_
Operations within the function cannot implicitly capture values defined outside of the function, i.e. Functions are IsolatedFromAbove
. All external references must use function arguments or attributes that establish a symbolic connection (e.g. symbols referenced by name via a string attribute like SymbolRefAttr). An external function declaration (used when referring to a function declared in some other module) has no body. While the MLIR textual form provides a nice inline syntax for function arguments, they are internally represented as “block arguments” to the first block in the region.
Only dialect attribute names may be specified in the attribute dictionaries for function arguments, results, or the function itself.
Example
// External function definitions.
+func.func private @abort()
+func.func private @scribble(i32, i64, memref<? x 128 x f32, #layout_map0>) -> f64
+
+// A function that returns its argument twice:
+func.func @count(%x: i64) -> (i64, i64)
+ attributes {fruit = "banana"} {
+ return %x, %x: i64, i64
+}
+
+// A function with an argument attribute
+func.func private @example_fn_arg(%x: i32 {swift.self = unit})
+
+// A function with a result attribute
+func.func private @example_fn_result() -> (f64 {dialectName.attrName = 0 : i64})
+
+// A function with an attribute
+func.func private @example_fn_attr() attributes {dialectName.attrName = false}
return_
The func.return
operation represents a return operation within a function. The operation takes variable number of operands and produces no results. The operand number and types must match the signature of the function that contains the operation.
Example
func.func @foo() : (i32, f8) {
+ ...
+ return %0, %1 : i32, f8
+}
Bool(attr)
Returns the value stored in the given bool attribute.
',3))]),e("details",h,[e("summary",null,[t[3]||(t[3]=e("a",{id:"Core.Float64-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Core.Float64-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Core.Float64")],-1)),t[4]||(t[4]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[5]||(t[5]=l('Float64(attr)
Returns the value stored in the given floating point attribute, interpreting the value as double.
',3))]),e("details",u,[e("summary",null,[t[6]||(t[6]=e("a",{id:"Core.Int64-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Core.Int64-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Core.Int64")],-1)),t[7]||(t[7]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[8]||(t[8]=l('Int64(attr)
Returns the value stored in the given integer attribute, assuming the value is of signed type and fits into a signed 64-bit integer.
',3))]),e("details",b,[e("summary",null,[t[9]||(t[9]=e("a",{id:"Core.String-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Core.String-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Core.String")],-1)),t[10]||(t[10]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[11]||(t[11]=l('String(attr)
Returns the attribute values as a string reference. The data remains live as long as the context in which the attribute lives.
',3))]),e("details",g,[e("summary",null,[t[12]||(t[12]=e("a",{id:"Core.String-Tuple{Reactant.MLIR.IR.Identifier}",href:"#Core.String-Tuple{Reactant.MLIR.IR.Identifier}"},[e("span",{class:"jlbinding"},"Core.String")],-1)),t[13]||(t[13]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[14]||(t[14]=l('String(ident)
Gets the string value of the identifier.
',3))]),e("details",y,[e("summary",null,[t[15]||(t[15]=e("a",{id:"Core.UInt64-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Core.UInt64-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Core.UInt64")],-1)),t[16]||(t[16]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[17]||(t[17]=l('UInt64(attr)
Returns the value stored in the given integer attribute, assuming the value is of unsigned type and fits into an unsigned 64-bit integer.
',3))]),e("details",m,[e("summary",null,[t[18]||(t[18]=e("a",{id:"Reactant.MLIR.IR.AffineMap-Tuple{Any, Any, Vector{Reactant.MLIR.IR.AffineExpr}}",href:"#Reactant.MLIR.IR.AffineMap-Tuple{Any, Any, Vector{Reactant.MLIR.IR.AffineExpr}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.AffineMap")],-1)),t[19]||(t[19]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[20]||(t[20]=l('AffineMap(ndims, nsymbols, affineExprs; context=context())
Creates an affine map with results defined by the given list of affine expressions. The map resulting map also has the requested number of input dimensions and symbols, regardless of them being used in the results.
',3))]),e("details",k,[e("summary",null,[t[21]||(t[21]=e("a",{id:"Reactant.MLIR.IR.AffineMap-Tuple{Any, Any}",href:"#Reactant.MLIR.IR.AffineMap-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.AffineMap")],-1)),t[22]||(t[22]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[23]||(t[23]=l('AffineMap(ndims, nsymbols; context=context())
Creates a zero result affine map of the given dimensions and symbols in the context. The affine map is owned by the context.
',3))]),e("details",f,[e("summary",null,[t[24]||(t[24]=e("a",{id:"Reactant.MLIR.IR.AffineMap-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.AffineMap-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.AffineMap")],-1)),t[25]||(t[25]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[26]||(t[26]=l('AffineMap(attr)
Returns the affine map wrapped in the given affine map attribute.
',3))]),e("details",R,[e("summary",null,[t[27]||(t[27]=e("a",{id:"Reactant.MLIR.IR.AffineMap-Tuple{}",href:"#Reactant.MLIR.IR.AffineMap-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.AffineMap")],-1)),t[28]||(t[28]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[29]||(t[29]=l('AffineMap(; context=context())
Creates a zero result affine map with no dimensions or symbols in the context. The affine map is owned by the context.
',3))]),e("details",I,[e("summary",null,[t[30]||(t[30]=e("a",{id:"Reactant.MLIR.IR.Attribute-Tuple{AbstractString}",href:"#Reactant.MLIR.IR.Attribute-Tuple{AbstractString}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Attribute")],-1)),t[31]||(t[31]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[32]||(t[32]=l('Attribute(str; context=context())
Creates a string attribute in the given context containing the given string.
',3))]),e("details",j,[e("summary",null,[t[33]||(t[33]=e("a",{id:"Reactant.MLIR.IR.Attribute-Tuple{Bool}",href:"#Reactant.MLIR.IR.Attribute-Tuple{Bool}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Attribute")],-1)),t[34]||(t[34]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[35]||(t[35]=l('Attribute(value; context=context())
Creates a bool attribute in the given context with the given value.
',3))]),e("details",M,[e("summary",null,[t[36]||(t[36]=e("a",{id:"Reactant.MLIR.IR.Attribute-Tuple{Dict}",href:"#Reactant.MLIR.IR.Attribute-Tuple{Dict}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Attribute")],-1)),t[37]||(t[37]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[38]||(t[38]=l('Attribute(elements; context=context())
Creates a dictionary attribute containing the given list of elements in the provided context.
',3))]),e("details",A,[e("summary",null,[t[39]||(t[39]=e("a",{id:"Reactant.MLIR.IR.Attribute-Tuple{Reactant.MLIR.IR.AffineMap}",href:"#Reactant.MLIR.IR.Attribute-Tuple{Reactant.MLIR.IR.AffineMap}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Attribute")],-1)),t[40]||(t[40]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[41]||(t[41]=l('Attribute(affineMap)
Creates an affine map attribute wrapping the given map. The attribute belongs to the same context as the affine map.
',3))]),e("details",L,[e("summary",null,[t[42]||(t[42]=e("a",{id:"Reactant.MLIR.IR.Attribute-Tuple{Reactant.MLIR.IR.Type, AbstractString}",href:"#Reactant.MLIR.IR.Attribute-Tuple{Reactant.MLIR.IR.Type, AbstractString}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Attribute")],-1)),t[43]||(t[43]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[44]||(t[44]=l('Attribute(type, str)
Creates a string attribute in the given context containing the given string. Additionally, the attribute has the given type.
',3))]),e("details",E,[e("summary",null,[t[45]||(t[45]=e("a",{id:"Reactant.MLIR.IR.Attribute-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.Attribute-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Attribute")],-1)),t[46]||(t[46]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[47]||(t[47]=l('Attribute(type)
Creates a type attribute wrapping the given type in the same context as the type.
',3))]),e("details",v,[e("summary",null,[t[48]||(t[48]=e("a",{id:"Reactant.MLIR.IR.Attribute-Tuple{T} where T<:AbstractFloat",href:"#Reactant.MLIR.IR.Attribute-Tuple{T} where T<:AbstractFloat"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Attribute")],-1)),t[49]||(t[49]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[50]||(t[50]=l('Attribute(float; context=context(), location=Location(), check=false)
Creates a floating point attribute in the given context with the given double value and double-precision FP semantics. If check=true
, emits appropriate diagnostics on illegal arguments.
Attribute(complex; context=context(), location=Location(), check=false)
Creates a complex attribute in the given context with the given complex value and double-precision FP semantics.
',3))]),e("details",C,[e("summary",null,[t[54]||(t[54]=e("a",{id:"Reactant.MLIR.IR.Attribute-Tuple{Vector{Reactant.MLIR.IR.Attribute}}",href:"#Reactant.MLIR.IR.Attribute-Tuple{Vector{Reactant.MLIR.IR.Attribute}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Attribute")],-1)),t[55]||(t[55]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[56]||(t[56]=l('Attribute(elements; context=context())
Creates an array element containing the given list of elements in the given context.
',3))]),e("details",x,[e("summary",null,[t[57]||(t[57]=e("a",{id:"Reactant.MLIR.IR.Attribute-Tuple{}",href:"#Reactant.MLIR.IR.Attribute-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Attribute")],-1)),t[58]||(t[58]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[59]||(t[59]=l('Attribute()
Returns an empty attribute.
',3))]),e("details",F,[e("summary",null,[t[60]||(t[60]=e("a",{id:"Reactant.MLIR.IR.Attribute-Union{Tuple{T}, Tuple{T, Any}} where T<:Integer",href:"#Reactant.MLIR.IR.Attribute-Union{Tuple{T}, Tuple{T, Any}} where T<:Integer"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Attribute")],-1)),t[61]||(t[61]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[62]||(t[62]=l('Attribute(int)
Creates an integer attribute of the given type with the given integer value.
',3))]),e("details",P,[e("summary",null,[t[63]||(t[63]=e("a",{id:"Reactant.MLIR.IR.Block-Tuple{Vector{Reactant.MLIR.IR.Type}, Vector{Reactant.MLIR.IR.Location}}",href:"#Reactant.MLIR.IR.Block-Tuple{Vector{Reactant.MLIR.IR.Type}, Vector{Reactant.MLIR.IR.Location}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Block")],-1)),t[64]||(t[64]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[65]||(t[65]=l('Block(args, locs)
Creates a new empty block with the given argument types and transfers ownership to the caller.
',3))]),e("details",D,[e("summary",null,[t[66]||(t[66]=e("a",{id:"Reactant.MLIR.IR.BlockIterator",href:"#Reactant.MLIR.IR.BlockIterator"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.BlockIterator")],-1)),t[67]||(t[67]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[68]||(t[68]=l('BlockIterator(region::Region)
Iterates over all blocks in the given region.
',3))]),e("details",O,[e("summary",null,[t[69]||(t[69]=e("a",{id:"Reactant.MLIR.IR.Context-Tuple{}",href:"#Reactant.MLIR.IR.Context-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Context")],-1)),t[70]||(t[70]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[71]||(t[71]=l('Context()
Creates an MLIR context and transfers its ownership to the caller.
',3))]),e("details",B,[e("summary",null,[t[72]||(t[72]=e("a",{id:"Reactant.MLIR.IR.ExecutionEngine",href:"#Reactant.MLIR.IR.ExecutionEngine"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.ExecutionEngine")],-1)),t[73]||(t[73]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[74]||(t[74]=l('ExecutionEngine(op, optLevel, sharedlibs = [])
Creates an ExecutionEngine for the provided ModuleOp. The ModuleOp is expected to be "translatable" to LLVM IR (only contains operations in dialects that implement the LLVMTranslationDialectInterface
). The module ownership stays with the client and can be destroyed as soon as the call returns. optLevel
is the optimization level to be used for transformation and code generation. LLVM passes at optLevel
are run before code generation. The number and array of paths corresponding to shared libraries that will be loaded are specified via numPaths
and sharedLibPaths
respectively. TODO: figure out other options.
Identifier(context, str)
Gets an identifier with the given string value.
',3))]),e("details",z,[e("summary",null,[t[78]||(t[78]=e("a",{id:"Reactant.MLIR.IR.IntegerSet-NTuple{4, Any}",href:"#Reactant.MLIR.IR.IntegerSet-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.IntegerSet")],-1)),t[79]||(t[79]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[80]||(t[80]=l('IntegerSet(ndims, nsymbols, constraints, eqflags; context=context())
Gets or creates a new integer set in the given context. The set is defined by a list of affine constraints, with the given number of input dimensions and symbols, which are treated as either equalities (eqflags is 1) or inequalities (eqflags is 0). Both constraints
and eqflags
need to be arrays of the same length.
Integerset(ndims, nsymbols; context=context())
Gets or creates a new canonically empty integer set with the give number of dimensions and symbols in the given context.
',3))]),e("details",S,[e("summary",null,[t[84]||(t[84]=e("a",{id:"Reactant.MLIR.IR.LogicalResult",href:"#Reactant.MLIR.IR.LogicalResult"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.LogicalResult")],-1)),t[85]||(t[85]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[86]||(t[86]=l('LogicalResult
A logical result value, essentially a boolean with named states. LLVM convention for using boolean values to designate success or failure of an operation is a moving target, so MLIR opted for an explicit class. Instances of LogicalResult
must only be inspected using the associated functions.
Module(location=Location())
Creates a new, empty module and transfers ownership to the caller.
',3))]),e("details",V,[e("summary",null,[t[90]||(t[90]=e("a",{id:"Reactant.MLIR.IR.NamedAttribute-Tuple{Any, Any}",href:"#Reactant.MLIR.IR.NamedAttribute-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.NamedAttribute")],-1)),t[91]||(t[91]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[92]||(t[92]=l('NamedAttribute(name, attr)
Associates an attribute with the name. Takes ownership of neither.
',3))]),e("details",q,[e("summary",null,[t[93]||(t[93]=e("a",{id:"Reactant.MLIR.IR.OpPassManager-Tuple{Reactant.MLIR.IR.OpPassManager, Any}",href:"#Reactant.MLIR.IR.OpPassManager-Tuple{Reactant.MLIR.IR.OpPassManager, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.OpPassManager")],-1)),t[94]||(t[94]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[95]||(t[95]=l('OpPassManager(opPassManager, operationName)
Nest an OpPassManager
under the provided OpPassManager
, the nested passmanager will only run on operations matching the provided name. The returned OpPassManager
will be destroyed when the parent is destroyed.
OpPassManager(passManager, operationName)
Nest an OpPassManager
under the top-level PassManager, the nested passmanager will only run on operations matching the provided name. The returned OpPassManager
will be destroyed when the parent is destroyed. To further nest more OpPassManager
under the newly returned one, see mlirOpPassManagerNest
below.
OpPassManager(passManager)
Cast a top-level PassManager
to a generic OpPassManager
.
Operation(module)
Views the module as a generic operation.
',3))]),e("details",H,[e("summary",null,[t[105]||(t[105]=e("a",{id:"Reactant.MLIR.IR.OperationIterator",href:"#Reactant.MLIR.IR.OperationIterator"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.OperationIterator")],-1)),t[106]||(t[106]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[107]||(t[107]=l('OperationIterator(block::Block)
Iterates over all operations for the given block.
',3))]),e("details",Z,[e("summary",null,[t[108]||(t[108]=e("a",{id:"Reactant.MLIR.IR.PassManager-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.PassManager-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.PassManager")],-1)),t[109]||(t[109]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[110]||(t[110]=l('PassManager(anchorOp; context=context())
Create a new top-level PassManager anchored on anchorOp
.
PassManager(; context=context())
Create a new top-level PassManager.
',3))]),e("details",K,[e("summary",null,[t[114]||(t[114]=e("a",{id:"Reactant.MLIR.IR.Region-Tuple{}",href:"#Reactant.MLIR.IR.Region-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Region")],-1)),t[115]||(t[115]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[116]||(t[116]=l('Region()
Creates a new empty region and transfers ownership to the caller.
',3))]),e("details",$,[e("summary",null,[t[117]||(t[117]=e("a",{id:"Reactant.MLIR.IR.RegionIterator",href:"#Reactant.MLIR.IR.RegionIterator"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.RegionIterator")],-1)),t[118]||(t[118]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[119]||(t[119]=l('RegionIterator(::Operation)
Iterates over all sub-regions for the given operation.
',3))]),e("details",X,[e("summary",null,[t[120]||(t[120]=e("a",{id:"Reactant.MLIR.IR.SymbolTable-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.SymbolTable-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.SymbolTable")],-1)),t[121]||(t[121]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[122]||(t[122]=l('mlirSymbolTableCreate(operation)
Creates a symbol table for the given operation. If the operation does not have the SymbolTable trait, returns a null symbol table.
',3))]),e("details",Y,[e("summary",null,[t[123]||(t[123]=e("a",{id:"Reactant.MLIR.IR.Type-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.Type-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Type")],-1)),t[124]||(t[124]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[125]||(t[125]=l('Type(attr)
Returns the type stored in the given type attribute.
',3))]),e("details",_,[e("summary",null,[t[126]||(t[126]=e("a",{id:"Reactant.MLIR.IR.Type-Tuple{Type{<:Integer}}",href:"#Reactant.MLIR.IR.Type-Tuple{Type{<:Integer}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Type")],-1)),t[127]||(t[127]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[128]||(t[128]=l('Type(T::Core.Type{<:Integer}; context=context()
Creates a signless integer type of the given bitwidth in the context. The type is owned by the context.
',3))]),e("details",tt,[e("summary",null,[t[129]||(t[129]=e("a",{id:"Reactant.MLIR.IR.Type-Tuple{Type{<:Signed}}",href:"#Reactant.MLIR.IR.Type-Tuple{Type{<:Signed}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Type")],-1)),t[130]||(t[130]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[131]||(t[131]=l('Type(T::Core.Type{<:Signed}; context=context()
Creates a signed integer type of the given bitwidth in the context. The type is owned by the context.
',3))]),e("details",et,[e("summary",null,[t[132]||(t[132]=e("a",{id:"Reactant.MLIR.IR.Type-Tuple{Type{<:Unsigned}}",href:"#Reactant.MLIR.IR.Type-Tuple{Type{<:Unsigned}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Type")],-1)),t[133]||(t[133]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[134]||(t[134]=l('Type(T::Core.Type{<:Unsigned}; context=context()
Creates an unsigned integer type of the given bitwidth in the context. The type is owned by the context.
',3))]),e("details",st,[e("summary",null,[t[135]||(t[135]=e("a",{id:"Reactant.MLIR.IR.Type-Tuple{Type{Bool}}",href:"#Reactant.MLIR.IR.Type-Tuple{Type{Bool}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Type")],-1)),t[136]||(t[136]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[137]||(t[137]=l('Type(T::Core.Type{Bool}; context=context()
Creates a 1-bit signless integer type in the context. The type is owned by the context.
',3))]),e("details",at,[e("summary",null,[t[138]||(t[138]=e("a",{id:"Reactant.MLIR.IR.Type-Tuple{Type{Float16}}",href:"#Reactant.MLIR.IR.Type-Tuple{Type{Float16}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Type")],-1)),t[139]||(t[139]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[140]||(t[140]=l('Type(::Core.Type{Float16}; context=context())
Creates an f16 type in the given context. The type is owned by the context.
',3))]),e("details",it,[e("summary",null,[t[141]||(t[141]=e("a",{id:"Reactant.MLIR.IR.Type-Tuple{Type{Float32}}",href:"#Reactant.MLIR.IR.Type-Tuple{Type{Float32}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Type")],-1)),t[142]||(t[142]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[143]||(t[143]=l('Type(Core.Type{Float32}; context=context())
Creates an f32 type in the given context. The type is owned by the context.
',3))]),e("details",lt,[e("summary",null,[t[144]||(t[144]=e("a",{id:"Reactant.MLIR.IR.Type-Tuple{Type{Float64}}",href:"#Reactant.MLIR.IR.Type-Tuple{Type{Float64}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Type")],-1)),t[145]||(t[145]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[146]||(t[146]=l('Type(Core.Type{Float64}; context=context())
Creates a f64 type in the given context. The type is owned by the context.
',3))]),e("details",nt,[e("summary",null,[t[147]||(t[147]=e("a",{id:"Reactant.MLIR.IR.Type-Tuple{Type{Nothing}}",href:"#Reactant.MLIR.IR.Type-Tuple{Type{Nothing}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Type")],-1)),t[148]||(t[148]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[149]||(t[149]=l('Type(::Core.Type{Nothing}; context=context())
Creates a None type in the given context. The type is owned by the context.
',3))]),e("details",pt,[e("summary",null,[t[150]||(t[150]=e("a",{id:"Reactant.MLIR.IR.Type-Tuple{Vector{Reactant.MLIR.IR.Type}}",href:"#Reactant.MLIR.IR.Type-Tuple{Vector{Reactant.MLIR.IR.Type}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Type")],-1)),t[151]||(t[151]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[152]||(t[152]=l(`Type(elements; context=context())
+Type(::Core.Type{<:Tuple{T...}}; context=context())
Creates a tuple type that consists of the given list of elemental types. The type is owned by the context.
`,3))]),e("details",rt,[e("summary",null,[t[153]||(t[153]=e("a",{id:"Reactant.MLIR.IR.Type-Union{Tuple{Type{Complex{T}}}, Tuple{T}} where T",href:"#Reactant.MLIR.IR.Type-Union{Tuple{Type{Complex{T}}}, Tuple{T}} where T"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Type")],-1)),t[154]||(t[154]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[155]||(t[155]=l('Type(Complex{T}) where {T}
Creates a complex type with the given element type in the same context as the element type. The type is owned by the context.
',3))]),e("details",ot,[e("summary",null,[t[156]||(t[156]=e("a",{id:"Base.:*-Tuple{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineExpr}",href:"#Base.:*-Tuple{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Base.:*")],-1)),t[157]||(t[157]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[158]||(t[158]=l('*(lhs, rhs)
Creates an affine mul expression with 'lhs' and 'rhs'.
',3))]),e("details",dt,[e("summary",null,[t[159]||(t[159]=e("a",{id:"Base.:+-Tuple{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineExpr}",href:"#Base.:+-Tuple{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Base.:+")],-1)),t[160]||(t[160]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[161]||(t[161]=l('+(lhs, rhs)
Creates an affine add expression with 'lhs' and 'rhs'.
',3))]),e("details",ct,[e("summary",null,[t[162]||(t[162]=e("a",{id:"Base.:==-Tuple{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineExpr}",href:"#Base.:==-Tuple{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Base.:==")],-1)),t[163]||(t[163]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[164]||(t[164]=l('==(a, b)
Returns true
if the two affine expressions are equal.
==(a, b)
Checks if two affine maps are equal.
',3))]),e("details",ut,[e("summary",null,[t[168]||(t[168]=e("a",{id:"Base.:==-Tuple{Reactant.MLIR.IR.Attribute, Reactant.MLIR.IR.Attribute}",href:"#Base.:==-Tuple{Reactant.MLIR.IR.Attribute, Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Base.:==")],-1)),t[169]||(t[169]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[170]||(t[170]=l('==(a1, a2)
Checks if two attributes are equal.
',3))]),e("details",bt,[e("summary",null,[t[171]||(t[171]=e("a",{id:"Base.:==-Tuple{Reactant.MLIR.IR.Block, Reactant.MLIR.IR.Block}",href:"#Base.:==-Tuple{Reactant.MLIR.IR.Block, Reactant.MLIR.IR.Block}"},[e("span",{class:"jlbinding"},"Base.:==")],-1)),t[172]||(t[172]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[173]||(t[173]=l('==(block, other)
Checks whether two blocks handles point to the same block. This does not perform deep comparison.
',3))]),e("details",gt,[e("summary",null,[t[174]||(t[174]=e("a",{id:"Base.:==-Tuple{Reactant.MLIR.IR.Identifier, Reactant.MLIR.IR.Identifier}",href:"#Base.:==-Tuple{Reactant.MLIR.IR.Identifier, Reactant.MLIR.IR.Identifier}"},[e("span",{class:"jlbinding"},"Base.:==")],-1)),t[175]||(t[175]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[176]||(t[176]=l('==(ident, other)
Checks whether two identifiers are the same.
',3))]),e("details",yt,[e("summary",null,[t[177]||(t[177]=e("a",{id:"Base.:==-Tuple{Reactant.MLIR.IR.IntegerSet, Reactant.MLIR.IR.IntegerSet}",href:"#Base.:==-Tuple{Reactant.MLIR.IR.IntegerSet, Reactant.MLIR.IR.IntegerSet}"},[e("span",{class:"jlbinding"},"Base.:==")],-1)),t[178]||(t[178]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[179]||(t[179]=l('==(s1, s2)
Checks if two integer set objects are equal. This is a "shallow" comparison of two objects. Only the sets with some small number of constraints are uniqued and compare equal here. Set objects that represent the same integer set with different constraints may be considered non-equal by this check. Set difference followed by an (expensive) emptiness check should be used to check equivalence of the underlying integer sets.
',3))]),e("details",mt,[e("summary",null,[t[180]||(t[180]=e("a",{id:"Base.:==-Tuple{Reactant.MLIR.IR.Region, Reactant.MLIR.IR.Region}",href:"#Base.:==-Tuple{Reactant.MLIR.IR.Region, Reactant.MLIR.IR.Region}"},[e("span",{class:"jlbinding"},"Base.:==")],-1)),t[181]||(t[181]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[182]||(t[182]=l('==(region, other)
Checks whether two region handles point to the same region. This does not perform deep comparison.
',3))]),e("details",kt,[e("summary",null,[t[183]||(t[183]=e("a",{id:"Base.:==-Tuple{Reactant.MLIR.IR.Type, Reactant.MLIR.IR.Type}",href:"#Base.:==-Tuple{Reactant.MLIR.IR.Type, Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Base.:==")],-1)),t[184]||(t[184]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[185]||(t[185]=l('==(t1, t2)
Checks if two types are equal.
',3))]),e("details",ft,[e("summary",null,[t[186]||(t[186]=e("a",{id:"Base.:==-Tuple{Reactant.MLIR.IR.TypeID, Reactant.MLIR.IR.TypeID}",href:"#Base.:==-Tuple{Reactant.MLIR.IR.TypeID, Reactant.MLIR.IR.TypeID}"},[e("span",{class:"jlbinding"},"Base.:==")],-1)),t[187]||(t[187]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[188]||(t[188]=l('==(typeID1, typeID2)
Checks if two type ids are equal.
',3))]),e("details",Rt,[e("summary",null,[t[189]||(t[189]=e("a",{id:"Base.:==-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Base.:==-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[e("span",{class:"jlbinding"},"Base.:==")],-1)),t[190]||(t[190]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[191]||(t[191]=l('==(value1, value2)
Returns 1 if two values are equal, 0 otherwise.
',3))]),e("details",It,[e("summary",null,[t[192]||(t[192]=e("a",{id:"Base.cld-Tuple{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineExpr}",href:"#Base.cld-Tuple{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Base.cld")],-1)),t[193]||(t[193]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[194]||(t[194]=l('cld(lhs, rhs)
Creates an affine ceildiv expression with 'lhs' and 'rhs'.
',3))]),e("details",jt,[e("summary",null,[t[195]||(t[195]=e("a",{id:"Base.copy-Tuple{Reactant.MLIR.IR.Operation}",href:"#Base.copy-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Base.copy")],-1)),t[196]||(t[196]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[197]||(t[197]=l('copy(op)
Creates a deep copy of an operation. The operation is not inserted and ownership is transferred to the caller.
',3))]),e("details",Mt,[e("summary",null,[t[198]||(t[198]=e("a",{id:"Base.div-Tuple{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineExpr}",href:"#Base.div-Tuple{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Base.div")],-1)),t[199]||(t[199]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[200]||(t[200]=l(`div(lhs, rhs)
+÷(lhs, rhs)
+fld(lhs, rhs)
Creates an affine floordiv expression with 'lhs' and 'rhs'.
`,3))]),e("details",At,[e("summary",null,[t[201]||(t[201]=e("a",{id:"Base.fill-Tuple{Reactant.MLIR.IR.Attribute, Reactant.MLIR.IR.Type}",href:"#Base.fill-Tuple{Reactant.MLIR.IR.Attribute, Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Base.fill")],-1)),t[202]||(t[202]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[203]||(t[203]=l('fill(attr, shapedType)
Creates a dense elements attribute with the given Shaped type containing a single replicated element (splat).
',3))]),e("details",Lt,[e("summary",null,[t[204]||(t[204]=e("a",{id:"Base.gcd-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Base.gcd-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Base.gcd")],-1)),t[205]||(t[205]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[206]||(t[206]=l('gcd(affineExpr)
Returns the greatest known integral divisor of this affine expression. The result is always positive.
',3))]),e("details",Et,[e("summary",null,[t[207]||(t[207]=e("a",{id:"Base.hash-Tuple{Reactant.MLIR.IR.TypeID}",href:"#Base.hash-Tuple{Reactant.MLIR.IR.TypeID}"},[e("span",{class:"jlbinding"},"Base.hash")],-1)),t[208]||(t[208]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[209]||(t[209]=l('hash(typeID)
Returns the hash value of the type id.
',3))]),e("details",vt,[e("summary",null,[t[210]||(t[210]=e("a",{id:"Base.insert!-Tuple{Reactant.MLIR.IR.Block, Any, Reactant.MLIR.IR.Operation}",href:"#Base.insert!-Tuple{Reactant.MLIR.IR.Block, Any, Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Base.insert!")],-1)),t[211]||(t[211]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[212]||(t[212]=l('insert!(block, index, operation)
Takes an operation owned by the caller and inserts it as index
to the block. This is an expensive operation that scans the block linearly, prefer insertBefore/After instead.
insert!(region, index, block)
Takes a block owned by the caller and inserts it at index
to the given region. This is an expensive operation that linearly scans the region, prefer insertAfter/Before instead.
isempty(affineMap)
Checks whether the given affine map is an empty affine map.
',3))]),e("details",xt,[e("summary",null,[t[219]||(t[219]=e("a",{id:"Base.isperm-Tuple{Reactant.MLIR.IR.AffineMap}",href:"#Base.isperm-Tuple{Reactant.MLIR.IR.AffineMap}"},[e("span",{class:"jlbinding"},"Base.isperm")],-1)),t[220]||(t[220]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[221]||(t[221]=l('isperm(affineMap)
Checks whether the given affine map represents a symbol-less permutation map.
',3))]),e("details",Ft,[e("summary",null,[t[222]||(t[222]=e("a",{id:"Base.mod-Tuple{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineExpr}",href:"#Base.mod-Tuple{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Base.mod")],-1)),t[223]||(t[223]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[224]||(t[224]=l('mod(lhs, rhs)
Creates an affine mod expression with 'lhs' and 'rhs'.
',3))]),e("details",Pt,[e("summary",null,[t[225]||(t[225]=e("a",{id:"Base.ndims-Tuple{Reactant.MLIR.IR.AffineMap}",href:"#Base.ndims-Tuple{Reactant.MLIR.IR.AffineMap}"},[e("span",{class:"jlbinding"},"Base.ndims")],-1)),t[226]||(t[226]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[227]||(t[227]=l('ndims(affineMap)
Returns the number of dimensions of the given affine map.
',3))]),e("details",Dt,[e("summary",null,[t[228]||(t[228]=e("a",{id:"Base.ndims-Tuple{Reactant.MLIR.IR.IntegerSet}",href:"#Base.ndims-Tuple{Reactant.MLIR.IR.IntegerSet}"},[e("span",{class:"jlbinding"},"Base.ndims")],-1)),t[229]||(t[229]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[230]||(t[230]=l('ndims(set)
Returns the number of dimensions in the given set.
',3))]),e("details",Ot,[e("summary",null,[t[231]||(t[231]=e("a",{id:"Base.ndims-Tuple{Reactant.MLIR.IR.Type}",href:"#Base.ndims-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Base.ndims")],-1)),t[232]||(t[232]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[233]||(t[233]=l('ndims(type)
Returns the rank of the given ranked shaped type.
',3))]),e("details",Bt,[e("summary",null,[t[234]||(t[234]=e("a",{id:"Base.parse-Tuple{Reactant.MLIR.IR.OpPassManager, String}",href:"#Base.parse-Tuple{Reactant.MLIR.IR.OpPassManager, String}"},[e("span",{class:"jlbinding"},"Base.parse")],-1)),t[235]||(t[235]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[236]||(t[236]=l('parse(passManager, pipeline)
Parse a textual MLIR pass pipeline and add it to the provided OpPassManager
.
parse(::Core.Type{Attribute}, str; context=context())
Parses an attribute. The attribute is owned by the context.
',3))]),e("details",zt,[e("summary",null,[t[240]||(t[240]=e("a",{id:"Base.parse-Tuple{Type{Reactant.MLIR.IR.Module}, Any}",href:"#Base.parse-Tuple{Type{Reactant.MLIR.IR.Module}, Any}"},[e("span",{class:"jlbinding"},"Base.parse")],-1)),t[241]||(t[241]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[242]||(t[242]=l('parse(::Type{Module}, module; context=context())
Parses a module from the string and transfers ownership to the caller.
',3))]),e("details",wt,[e("summary",null,[t[243]||(t[243]=e("a",{id:"Base.parse-Tuple{Type{Reactant.MLIR.IR.Type}, Any}",href:"#Base.parse-Tuple{Type{Reactant.MLIR.IR.Type}, Any}"},[e("span",{class:"jlbinding"},"Base.parse")],-1)),t[244]||(t[244]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[245]||(t[245]=l('parse(type; context=context())
Parses a type. The type is owned by the context.
',3))]),e("details",St,[e("summary",null,[t[246]||(t[246]=e("a",{id:"Base.push!-Tuple{Reactant.MLIR.IR.Block, Reactant.MLIR.IR.Operation}",href:"#Base.push!-Tuple{Reactant.MLIR.IR.Block, Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Base.push!")],-1)),t[247]||(t[247]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[248]||(t[248]=l('push!(block, operation)
Takes an operation owned by the caller and appends it to the block.
',3))]),e("details",Nt,[e("summary",null,[t[249]||(t[249]=e("a",{id:"Base.push!-Tuple{Reactant.MLIR.IR.Region, Reactant.MLIR.IR.Block}",href:"#Base.push!-Tuple{Reactant.MLIR.IR.Region, Reactant.MLIR.IR.Block}"},[e("span",{class:"jlbinding"},"Base.push!")],-1)),t[250]||(t[250]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[251]||(t[251]=l('push!(region, block)
Takes a block owned by the caller and appends it to the given region.
',3))]),e("details",Vt,[e("summary",null,[t[252]||(t[252]=e("a",{id:"Base.push!-Tuple{Reactant.MLIR.IR.SymbolTable, Reactant.MLIR.IR.Operation}",href:"#Base.push!-Tuple{Reactant.MLIR.IR.SymbolTable, Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Base.push!")],-1)),t[253]||(t[253]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[254]||(t[254]=l('push!(symboltable, operation)
Inserts the given operation into the given symbol table. The operation must have the symbol trait. If the symbol table already has a symbol with the same name, renames the symbol being inserted to ensure name uniqueness. Note that this does not move the operation itself into the block of the symbol table operation, this should be done separately. Returns the name of the symbol after insertion.
',3))]),e("details",qt,[e("summary",null,[t[255]||(t[255]=e("a",{id:"Base.replace-Tuple{Reactant.MLIR.IR.AffineMap, Pair{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineExpr}, Any, Any}",href:"#Base.replace-Tuple{Reactant.MLIR.IR.AffineMap, Pair{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineExpr}, Any, Any}"},[e("span",{class:"jlbinding"},"Base.replace")],-1)),t[256]||(t[256]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[257]||(t[257]=l('mlirAffineMapReplace(affineMap, expression => replacement, numResultDims, numResultSyms)
Apply AffineExpr::replace(map)
to each of the results and return a new new AffineMap with the new results and the specified number of dims and symbols.
mlirIntegerSetReplaceGet(set, dimReplacements, symbolReplacements, numResultDims, numResultSymbols)
Gets or creates a new integer set in which the values and dimensions of the given set are replaced with the given affine expressions. dimReplacements
and symbolReplacements
are expected to point to at least as many consecutive expressions as the given set has dimensions and symbols, respectively. The new set will have numResultDims
and numResultSymbols
dimensions and symbols, respectively.
Base.reshape(attr, shapedType)
Creates a dense elements attribute that has the same data as the given dense elements attribute and a different shaped type. The new type must have the same total number of elements.
',3))]),e("details",Wt,[e("summary",null,[t[264]||(t[264]=e("a",{id:"Base.size-Tuple{Reactant.MLIR.IR.Type, Int64}",href:"#Base.size-Tuple{Reactant.MLIR.IR.Type, Int64}"},[e("span",{class:"jlbinding"},"Base.size")],-1)),t[265]||(t[265]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[266]||(t[266]=l('size(type, i)
Returns the i
-th dimension of the given ranked shaped type.
write(fileName, jit)
Dump as an object in fileName
.
AffineDimensionExpr(position; context=context)
Creates an affine dimension expression with 'position' in the context.
',3))]),e("details",Jt,[e("summary",null,[t[273]||(t[273]=e("a",{id:"Reactant.MLIR.IR.BFloat16Type-Tuple{}",href:"#Reactant.MLIR.IR.BFloat16Type-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.BFloat16Type")],-1)),t[274]||(t[274]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[275]||(t[275]=e("p",null,"BFloat16Type(; context=context())",-1)),t[276]||(t[276]=e("p",null,"Creates a bf16 type in the given context. The type is owned by the context.",-1)),t[277]||(t[277]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/IR/Type.jl#L157-L161",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",Kt,[e("summary",null,[t[278]||(t[278]=e("a",{id:"Reactant.MLIR.IR.ConstantAffineMap-Tuple{Any}",href:"#Reactant.MLIR.IR.ConstantAffineMap-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.ConstantAffineMap")],-1)),t[279]||(t[279]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[280]||(t[280]=l('ConstantAffineMap(val; context=context())
Creates a single constant result affine map in the context. The affine map is owned by the context.
',3))]),e("details",$t,[e("summary",null,[t[281]||(t[281]=e("a",{id:"Reactant.MLIR.IR.ConstantExpr-Tuple{Any}",href:"#Reactant.MLIR.IR.ConstantExpr-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.ConstantExpr")],-1)),t[282]||(t[282]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[283]||(t[283]=l('ConstantExpr(constant::Int; context=context())
Creates an affine constant expression with 'constant' in the context.
',3))]),e("details",Xt,[e("summary",null,[t[284]||(t[284]=e("a",{id:"Reactant.MLIR.IR.DenseElementsAttribute-Tuple{AbstractArray{Bool}}",href:"#Reactant.MLIR.IR.DenseElementsAttribute-Tuple{AbstractArray{Bool}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.DenseElementsAttribute")],-1)),t[285]||(t[285]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[286]||(t[286]=l('DenseElementsAttribute(array::AbstractArray)
Creates a dense elements attribute with the given shaped type from elements of a specific type. Expects the element type of the shaped type to match the data element type.
',3))]),e("details",Yt,[e("summary",null,[t[287]||(t[287]=e("a",{id:"Reactant.MLIR.IR.DenseElementsAttribute-Tuple{AbstractArray{String}}",href:"#Reactant.MLIR.IR.DenseElementsAttribute-Tuple{AbstractArray{String}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.DenseElementsAttribute")],-1)),t[288]||(t[288]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[289]||(t[289]=l('DenseElementsAttribute(array::AbstractArray{String})
Creates a dense elements attribute with the given shaped type from string elements.
',3))]),e("details",_t,[e("summary",null,[t[290]||(t[290]=e("a",{id:"Reactant.MLIR.IR.DenseElementsAttribute-Tuple{Reactant.MLIR.IR.Type, AbstractArray}",href:"#Reactant.MLIR.IR.DenseElementsAttribute-Tuple{Reactant.MLIR.IR.Type, AbstractArray}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.DenseElementsAttribute")],-1)),t[291]||(t[291]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[292]||(t[292]=l('DenseElementsAttribute(shapedType, elements)
Creates a dense elements attribute with the given Shaped type and elements in the same context as the type.
',3))]),e("details",te,[e("summary",null,[t[293]||(t[293]=e("a",{id:"Reactant.MLIR.IR.FlatSymbolRefAttribute-Tuple{String}",href:"#Reactant.MLIR.IR.FlatSymbolRefAttribute-Tuple{String}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.FlatSymbolRefAttribute")],-1)),t[294]||(t[294]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[295]||(t[295]=l('FlatSymbolRefAttribute(ctx, symbol)
Creates a flat symbol reference attribute in the given context referencing a symbol identified by the given string.
',3))]),e("details",ee,[e("summary",null,[t[296]||(t[296]=e("a",{id:"Reactant.MLIR.IR.Float8E4M3FN-Tuple{}",href:"#Reactant.MLIR.IR.Float8E4M3FN-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Float8E4M3FN")],-1)),t[297]||(t[297]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[298]||(t[298]=l('Float8E4M3FN(; context=context())
Creates an f8E4M3FN type in the given context. The type is owned by the context.
',3))]),e("details",se,[e("summary",null,[t[299]||(t[299]=e("a",{id:"Reactant.MLIR.IR.Float8E5M2-Tuple{}",href:"#Reactant.MLIR.IR.Float8E5M2-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Float8E5M2")],-1)),t[300]||(t[300]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[301]||(t[301]=l('Float8E5M2(; context=context())
Creates an f8E5M2 type in the given context. The type is owned by the context.
',3))]),e("details",ae,[e("summary",null,[t[302]||(t[302]=e("a",{id:"Reactant.MLIR.IR.FunctionType-Tuple{Any, Any}",href:"#Reactant.MLIR.IR.FunctionType-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.FunctionType")],-1)),t[303]||(t[303]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[304]||(t[304]=l('FunctionType(inputs, results; context=context())
Creates a function type, mapping a list of input types to result types.
',3))]),e("details",ie,[e("summary",null,[t[305]||(t[305]=e("a",{id:"Reactant.MLIR.IR.IdentityAffineMap-Tuple{Any}",href:"#Reactant.MLIR.IR.IdentityAffineMap-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.IdentityAffineMap")],-1)),t[306]||(t[306]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[307]||(t[307]=l('IdentityAffineMap(ndims; context=context())
Creates an affine map with 'ndims' identity in the context. The affine map is owned by the context.
',3))]),e("details",le,[e("summary",null,[t[308]||(t[308]=e("a",{id:"Reactant.MLIR.IR.IndexType-Tuple{}",href:"#Reactant.MLIR.IR.IndexType-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.IndexType")],-1)),t[309]||(t[309]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[310]||(t[310]=l('IndexType(; context=context())
Creates an index type in the given context. The type is owned by the context.
',3))]),e("details",ne,[e("summary",null,[t[311]||(t[311]=e("a",{id:"Reactant.MLIR.IR.MemRefType-Tuple{Reactant.MLIR.IR.Type, Any, Any, Any}",href:"#Reactant.MLIR.IR.MemRefType-Tuple{Reactant.MLIR.IR.Type, Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.MemRefType")],-1)),t[312]||(t[312]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[313]||(t[313]=l('MemRefType(elementType, rank, shape, layout, memorySpace; location=Location(), check=false)
Creates a MemRef type with the given rank and shape, a potentially empty list of affine layout maps, the given memory space and element type, in the same context as element type. The type is owned by the context. If check=true
, emits appropriate diagnostics on illegal arguments.
MemRefType(elementType, rank, shape, memorySpace; location=Location(), check=false)
Creates a MemRef type with the given rank, shape, memory space and element type in the same context as the element type. The type has no affine maps, i.e. represents a default row-major contiguous memref. The type is owned by the context. If check=true
, emits appropriate diagnostics on illegal arguments.
MemRefType(elementType, memorySpace)
Creates an Unranked MemRef type with the given element type and in the given memory space. The type is owned by the context of element type. If check=true
, emits appropriate diagnostics on illegal arguments.
MinorIdentityAffineMap(ndims, nresults; context=context())
Creates an identity affine map on the most minor dimensions in the context. The affine map is owned by the context. The function asserts that the number of dimensions is greater or equal to the number of results.
',3))]),e("details",de,[e("summary",null,[t[323]||(t[323]=e("a",{id:"Reactant.MLIR.IR.OpaqueAttribute-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.IR.OpaqueAttribute-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.OpaqueAttribute")],-1)),t[324]||(t[324]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[325]||(t[325]=l('OpaqueAttribute(dialectNamespace, dataLength, data, type; context=context())
Creates an opaque attribute in the given context associated with the dialect identified by its namespace. The attribute contains opaque byte data of the specified length (data need not be null-terminated).
',3))]),e("details",ce,[e("summary",null,[t[326]||(t[326]=e("a",{id:"Reactant.MLIR.IR.OpaqueType-Tuple{Any, Any}",href:"#Reactant.MLIR.IR.OpaqueType-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.OpaqueType")],-1)),t[327]||(t[327]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[328]||(t[328]=l('OpaqueType(dialectNamespace, typeData; context=context())
Creates an opaque type in the given context associated with the dialect identified by its namespace. The type contains opaque byte data of the specified length (data need not be null-terminated).
',3))]),e("details",he,[e("summary",null,[t[329]||(t[329]=e("a",{id:"Reactant.MLIR.IR.PermutationAffineMap-Tuple{Any}",href:"#Reactant.MLIR.IR.PermutationAffineMap-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.PermutationAffineMap")],-1)),t[330]||(t[330]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[331]||(t[331]=l('PermutationAffineMap(permutation; context=context())
Creates an affine map with a permutation expression and its size in the context. The permutation expression is a non-empty vector of integers. The elements of the permutation vector must be continuous from 0 and cannot be repeated (i.e. [1,2,0]
is a valid permutation. [2,0]
or [1,1,2]
is an invalid invalid permutation). The affine map is owned by the context.
SymbolExpr(position; context=context())
Creates an affine symbol expression with 'position' in the context.
',3))]),e("details",be,[e("summary",null,[t[335]||(t[335]=e("a",{id:"Reactant.MLIR.IR.SymbolRefAttribute-Tuple{String, Vector{Reactant.MLIR.IR.Attribute}}",href:"#Reactant.MLIR.IR.SymbolRefAttribute-Tuple{String, Vector{Reactant.MLIR.IR.Attribute}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.SymbolRefAttribute")],-1)),t[336]||(t[336]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[337]||(t[337]=l('SymbolRefAttribute(symbol, references; context=context())
Creates a symbol reference attribute in the given context referencing a symbol identified by the given string inside a list of nested references. Each of the references in the list must not be nested.
',3))]),e("details",ge,[e("summary",null,[t[338]||(t[338]=e("a",{id:"Reactant.MLIR.IR.TensorType",href:"#Reactant.MLIR.IR.TensorType"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.TensorType")],-1)),t[339]||(t[339]=s()),i(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),t[340]||(t[340]=l('TensorType(shape, elementType, encoding=Attribute(); location=Location(), check=false)
Creates a tensor type of a fixed rank with the given shape, element type, and optional encoding in the same context as the element type. The type is owned by the context. Tensor types without any specific encoding field should assign mlirAttributeGetNull
to this parameter. If check=true
, emits appropriate diagnostics on illegal arguments.
TensorType(elementType)
Creates an unranked tensor type with the given element type in the same context as the element type. The type is owned by the context. If check=true
, emits appropriate diagnostics on illegal arguments.
UnitAttribute(; context=context())
Creates a unit attribute in the given context.
',3))]),e("details",ke,[e("summary",null,[t[347]||(t[347]=e("a",{id:"Reactant.MLIR.IR.VectorType-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.IR.VectorType-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.VectorType")],-1)),t[348]||(t[348]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[349]||(t[349]=l('VectorType(rank, shape, elementType; location=Location(), check=false)
Creates a vector type of the shape identified by its rank and dimensions, with the given element type in the same context as the element type. The type is owned by the context. If check=true
, emits appropriate diagnostics on illegal arguments.
add_owned_pass!(opPassManager, pass)
Add a pass and transfer ownership to the provided OpPassManager
. If the pass is not a generic operation pass or matching the type of the provided OpPassManager
, a new OpPassManager
is implicitly nested under the provided OpPassManager
.
add_owned_pass!(passManager, pass)
Add a pass and transfer ownership to the provided top-level PassManager
. If the pass is not a generic operation pass or a ModulePass
, a new OpPassManager
is implicitly nested under the provided PassManager.
add_pipeline!(passManager, pipelineElements, callback, userData)
Parse a sequence of textual MLIR pass pipeline elements and add them to the provided OpPassManager. If parsing fails an error message is reported using the provided callback.
',3))]),e("details",je,[e("summary",null,[t[359]||(t[359]=e("a",{id:"Reactant.MLIR.IR.affinemap-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.affinemap-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.affinemap")],-1)),t[360]||(t[360]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[361]||(t[361]=l('affinemap(type)
Returns the affine map of the given MemRef type.
',3))]),e("details",Me,[e("summary",null,[t[362]||(t[362]=e("a",{id:"Reactant.MLIR.IR.argument-Tuple{Reactant.MLIR.IR.Block, Any}",href:"#Reactant.MLIR.IR.argument-Tuple{Reactant.MLIR.IR.Block, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.argument")],-1)),t[363]||(t[363]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[364]||(t[364]=l('argument(block, i)
Returns i
-th argument of the block.
attr!(op, name, attr)
Sets an attribute by name, replacing the existing if it exists or adding a new one otherwise.
',3))]),e("details",Le,[e("summary",null,[t[368]||(t[368]=e("a",{id:"Reactant.MLIR.IR.attr-Tuple{Reactant.MLIR.IR.Operation, AbstractString}",href:"#Reactant.MLIR.IR.attr-Tuple{Reactant.MLIR.IR.Operation, AbstractString}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.attr")],-1)),t[369]||(t[369]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[370]||(t[370]=l('attr(op, name)
Returns an attribute attached to the operation given its name.
',3))]),e("details",Ee,[e("summary",null,[t[371]||(t[371]=e("a",{id:"Reactant.MLIR.IR.attr-Tuple{Reactant.MLIR.IR.Operation, Any}",href:"#Reactant.MLIR.IR.attr-Tuple{Reactant.MLIR.IR.Operation, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.attr")],-1)),t[372]||(t[372]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[373]||(t[373]=l('attr(op, i)
Return i
-th attribute of the operation.
bitwidth(type)
Returns the bitwidth of an integer type.
',3))]),e("details",Te,[e("summary",null,[t[377]||(t[377]=e("a",{id:"Reactant.MLIR.IR.block-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.block-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.block")],-1)),t[378]||(t[378]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[379]||(t[379]=l('block(op)
Gets the block that owns this operation, returning null if the operation is not owned.
',3))]),e("details",Ce,[e("summary",null,[t[380]||(t[380]=e("a",{id:"Reactant.MLIR.IR.block_arg_num-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.IR.block_arg_num-Tuple{Reactant.MLIR.IR.Value}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.block_arg_num")],-1)),t[381]||(t[381]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[382]||(t[382]=l('block_arg_num(value)
Returns the position of the value in the argument list of its block.
',3))]),e("details",xe,[e("summary",null,[t[383]||(t[383]=e("a",{id:"Reactant.MLIR.IR.block_owner-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.IR.block_owner-Tuple{Reactant.MLIR.IR.Value}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.block_owner")],-1)),t[384]||(t[384]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[385]||(t[385]=l('block_owner(value)
Returns the block in which this value is defined as an argument. Asserts if the value is not a block argument.
',3))]),e("details",Fe,[e("summary",null,[t[386]||(t[386]=e("a",{id:"Reactant.MLIR.IR.body-Tuple{Any}",href:"#Reactant.MLIR.IR.body-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.body")],-1)),t[387]||(t[387]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[388]||(t[388]=l('body(module)
Gets the body of the module, i.e. the only block it contains.
',3))]),e("details",Pe,[e("summary",null,[t[389]||(t[389]=e("a",{id:"Reactant.MLIR.IR.compose-Tuple{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineMap}",href:"#Reactant.MLIR.IR.compose-Tuple{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineMap}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.compose")],-1)),t[390]||(t[390]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[391]||(t[391]=l('compose(affineExpr, affineMap)
Composes the given map with the given expression.
',3))]),e("details",De,[e("summary",null,[t[392]||(t[392]=e("a",{id:"Reactant.MLIR.IR.constraint-Tuple{Reactant.MLIR.IR.IntegerSet, Any}",href:"#Reactant.MLIR.IR.constraint-Tuple{Reactant.MLIR.IR.IntegerSet, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.constraint")],-1)),t[393]||(t[393]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[394]||(t[394]=l('mlirIntegerSetGetConstraint(set, i)
Returns i
-th constraint of the set.
context(affineExpr)
Gets the context that owns the affine expression.
',3))]),e("details",Be,[e("summary",null,[t[398]||(t[398]=e("a",{id:"Reactant.MLIR.IR.context-Tuple{Reactant.MLIR.IR.AffineMap}",href:"#Reactant.MLIR.IR.context-Tuple{Reactant.MLIR.IR.AffineMap}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.context")],-1)),t[399]||(t[399]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[400]||(t[400]=l('context(affineMap)
Gets the context that the given affine map was created with.
',3))]),e("details",Ge,[e("summary",null,[t[401]||(t[401]=e("a",{id:"Reactant.MLIR.IR.context-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.context-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.context")],-1)),t[402]||(t[402]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[403]||(t[403]=l('context(attribute)
Gets the context that an attribute was created with.
',3))]),e("details",ze,[e("summary",null,[t[404]||(t[404]=e("a",{id:"Reactant.MLIR.IR.context-Tuple{Reactant.MLIR.IR.Identifier}",href:"#Reactant.MLIR.IR.context-Tuple{Reactant.MLIR.IR.Identifier}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.context")],-1)),t[405]||(t[405]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[406]||(t[406]=l('context(ident)
Returns the context associated with this identifier
',3))]),e("details",we,[e("summary",null,[t[407]||(t[407]=e("a",{id:"Reactant.MLIR.IR.context-Tuple{Reactant.MLIR.IR.IntegerSet}",href:"#Reactant.MLIR.IR.context-Tuple{Reactant.MLIR.IR.IntegerSet}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.context")],-1)),t[408]||(t[408]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[409]||(t[409]=l('context(set)
Gets the context in which the given integer set lives.
',3))]),e("details",Se,[e("summary",null,[t[410]||(t[410]=e("a",{id:"Reactant.MLIR.IR.context-Tuple{Reactant.MLIR.IR.Module}",href:"#Reactant.MLIR.IR.context-Tuple{Reactant.MLIR.IR.Module}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.context")],-1)),t[411]||(t[411]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[412]||(t[412]=l('context(module)
Gets the context that a module was created with.
',3))]),e("details",Ne,[e("summary",null,[t[413]||(t[413]=e("a",{id:"Reactant.MLIR.IR.context-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.context-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.context")],-1)),t[414]||(t[414]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[415]||(t[415]=l('context(op)
Gets the context this operation is associated with.
',3))]),e("details",Ve,[e("summary",null,[t[416]||(t[416]=e("a",{id:"Reactant.MLIR.IR.context-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.context-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.context")],-1)),t[417]||(t[417]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[418]||(t[418]=l('context(type)
Gets the context that a type was created with.
',3))]),e("details",qe,[e("summary",null,[t[419]||(t[419]=e("a",{id:"Reactant.MLIR.IR.data-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.data-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.data")],-1)),t[420]||(t[420]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[421]||(t[421]=l('data(attr)
Returns the raw data as a string reference. The data remains live as long as the context in which the attribute lives.
',3))]),e("details",Ue,[e("summary",null,[t[422]||(t[422]=e("a",{id:"Reactant.MLIR.IR.data-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.data-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.data")],-1)),t[423]||(t[423]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[424]||(t[424]=l('mlirOpaqueTypeGetData(type)
Returns the raw data as a string reference. The data remains live as long as the context in which the type lives.
',3))]),e("details",Qe,[e("summary",null,[t[425]||(t[425]=e("a",{id:"Reactant.MLIR.IR.delete!-Tuple{Reactant.MLIR.IR.SymbolTable, Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.delete!-Tuple{Reactant.MLIR.IR.SymbolTable, Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.delete!")],-1)),t[426]||(t[426]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[427]||(t[427]=l('delete!(symboltable, operation)
Removes the given operation from the symbol table and erases it.
',3))]),e("details",We,[e("summary",null,[t[428]||(t[428]=e("a",{id:"Reactant.MLIR.IR.dynsize-Tuple{}",href:"#Reactant.MLIR.IR.dynsize-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.dynsize")],-1)),t[429]||(t[429]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[430]||(t[430]=l('dynsize()
Returns the value indicating a dynamic size in a shaped type. Prefer isdynsize
to direct comparisons with this value.
mlirShapedTypeGetDynamicStrideOrOffset()
Returns the value indicating a dynamic stride or offset in a shaped type. Prefer isdynstrideoroffset
to direct comparisons with this value.
enable_ir_printing!(passManager)
Enable mlir-print-ir-after-all.
',3))]),e("details",Je,[e("summary",null,[t[437]||(t[437]=e("a",{id:"Reactant.MLIR.IR.enable_verifier!",href:"#Reactant.MLIR.IR.enable_verifier!"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.enable_verifier!")],-1)),t[438]||(t[438]=s()),i(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),t[439]||(t[439]=l('enable_verifier!(passManager, enable)
Enable / disable verify-each.
',3))]),e("details",Ke,[e("summary",null,[t[440]||(t[440]=e("a",{id:"Reactant.MLIR.IR.encoding-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.encoding-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.encoding")],-1)),t[441]||(t[441]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[442]||(t[442]=l('encoding(type)
Gets the 'encoding' attribute from the ranked tensor type, returning a nothing
if none.
failure()
Creates a logical result representing a failure.
',3))]),e("details",Xe,[e("summary",null,[t[446]||(t[446]=e("a",{id:"Reactant.MLIR.IR.first_block-Tuple{Reactant.MLIR.IR.Region}",href:"#Reactant.MLIR.IR.first_block-Tuple{Reactant.MLIR.IR.Region}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.first_block")],-1)),t[447]||(t[447]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[448]||(t[448]=l('first_block(region)
Gets the first block in the region.
',3))]),e("details",Ye,[e("summary",null,[t[449]||(t[449]=e("a",{id:"Reactant.MLIR.IR.first_op-Tuple{Reactant.MLIR.IR.Block}",href:"#Reactant.MLIR.IR.first_op-Tuple{Reactant.MLIR.IR.Block}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.first_op")],-1)),t[450]||(t[450]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[451]||(t[451]=l('first_op(block)
Returns the first operation in the block or nothing
if empty.
first_use(value)
Returns an OpOperand
representing the first use of the value, or a nothing
if there are no uses.
flatsymbol(attr)
Returns the referenced symbol as a string reference. The data remains live as long as the context in which the attribute lives.
',3))]),e("details",es,[e("summary",null,[t[458]||(t[458]=e("a",{id:"Reactant.MLIR.IR.hasrank-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.hasrank-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.hasrank")],-1)),t[459]||(t[459]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[460]||(t[460]=l('hasrank(type)
Checks whether the given shaped type is ranked.
',3))]),e("details",ss,[e("summary",null,[t[461]||(t[461]=e("a",{id:"Reactant.MLIR.IR.hasstaticshape-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.hasstaticshape-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.hasstaticshape")],-1)),t[462]||(t[462]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[463]||(t[463]=l('hasstaticshape(type)
Checks whether the given shaped type has a static shape.
',3))]),e("details",as,[e("summary",null,[t[464]||(t[464]=e("a",{id:"Reactant.MLIR.IR.input-Tuple{Reactant.MLIR.IR.Type, Any}",href:"#Reactant.MLIR.IR.input-Tuple{Reactant.MLIR.IR.Type, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.input")],-1)),t[465]||(t[465]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[466]||(t[466]=l('input(type, i)
Returns the i
-th input type.
insert_after!(block, reference, operation)
Takes an operation owned by the caller and inserts it after the (non-owned) reference operation in the given block. If the reference is null, prepends the operation. Otherwise, the reference must belong to the block.
',3))]),e("details",ls,[e("summary",null,[t[470]||(t[470]=e("a",{id:"Reactant.MLIR.IR.insert_after!-Tuple{Reactant.MLIR.IR.Region, Reactant.MLIR.IR.Block, Reactant.MLIR.IR.Block}",href:"#Reactant.MLIR.IR.insert_after!-Tuple{Reactant.MLIR.IR.Region, Reactant.MLIR.IR.Block, Reactant.MLIR.IR.Block}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.insert_after!")],-1)),t[471]||(t[471]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[472]||(t[472]=l('insert_after!(region, reference, block)
Takes a block owned by the caller and inserts it after the (non-owned) reference block in the given region. The reference block must belong to the region. If the reference block is null, prepends the block to the region.
',3))]),e("details",ns,[e("summary",null,[t[473]||(t[473]=e("a",{id:"Reactant.MLIR.IR.insert_before!-Tuple{Reactant.MLIR.IR.Block, Reactant.MLIR.IR.Operation, Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.insert_before!-Tuple{Reactant.MLIR.IR.Block, Reactant.MLIR.IR.Operation, Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.insert_before!")],-1)),t[474]||(t[474]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[475]||(t[475]=l('insert_before!(block, reference, operation)
Takes an operation owned by the caller and inserts it before the (non-owned) reference operation in the given block. If the reference is null, appends the operation. Otherwise, the reference must belong to the block.
',3))]),e("details",ps,[e("summary",null,[t[476]||(t[476]=e("a",{id:"Reactant.MLIR.IR.insert_before!-Tuple{Reactant.MLIR.IR.Region, Reactant.MLIR.IR.Block, Reactant.MLIR.IR.Block}",href:"#Reactant.MLIR.IR.insert_before!-Tuple{Reactant.MLIR.IR.Region, Reactant.MLIR.IR.Block, Reactant.MLIR.IR.Block}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.insert_before!")],-1)),t[477]||(t[477]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[478]||(t[478]=l('insert_before!(region, reference, block)
Takes a block owned by the caller and inserts it before the (non-owned) reference block in the given region. The reference block must belong to the region. If the reference block is null, appends the block to the region.
',3))]),e("details",rs,[e("summary",null,[t[479]||(t[479]=e("a",{id:"Reactant.MLIR.IR.is_block_arg-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.IR.is_block_arg-Tuple{Reactant.MLIR.IR.Value}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.is_block_arg")],-1)),t[480]||(t[480]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[481]||(t[481]=l('is_block_arg(value)
Returns 1 if the value is a block argument, 0 otherwise.
',3))]),e("details",os,[e("summary",null,[t[482]||(t[482]=e("a",{id:"Reactant.MLIR.IR.is_op_res-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.IR.is_op_res-Tuple{Reactant.MLIR.IR.Value}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.is_op_res")],-1)),t[483]||(t[483]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[484]||(t[484]=l('is_op_res(value)
Returns 1 if the value is an operation result, 0 otherwise.
',3))]),e("details",ds,[e("summary",null,[t[485]||(t[485]=e("a",{id:"Reactant.MLIR.IR.is_pure_affine-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Reactant.MLIR.IR.is_pure_affine-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.is_pure_affine")],-1)),t[486]||(t[486]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[487]||(t[487]=l('is_pure_affine(affineExpr)
Checks whether the given affine expression is a pure affine expression, i.e. mul, floordiv, ceildic, and mod is only allowed w.r.t constants.
',3))]),e("details",cs,[e("summary",null,[t[488]||(t[488]=e("a",{id:"Reactant.MLIR.IR.is_registered-Tuple{Any}",href:"#Reactant.MLIR.IR.is_registered-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.is_registered")],-1)),t[489]||(t[489]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[490]||(t[490]=l('is_registered(name; context=context())
Returns whether the given fully-qualified operation (i.e. 'dialect.operation') is registered with the context. This will return true if the dialect is loaded and the operation is registered within the dialect.
',3))]),e("details",hs,[e("summary",null,[t[491]||(t[491]=e("a",{id:"Reactant.MLIR.IR.is_symbolic_or_constant-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Reactant.MLIR.IR.is_symbolic_or_constant-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.is_symbolic_or_constant")],-1)),t[492]||(t[492]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[493]||(t[493]=l('is_symbolic_or_constant(affineExpr)
Checks whether the given affine expression is made out of only symbols and constants.
',3))]),e("details",us,[e("summary",null,[t[494]||(t[494]=e("a",{id:"Reactant.MLIR.IR.isadd-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Reactant.MLIR.IR.isadd-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isadd")],-1)),t[495]||(t[495]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[496]||(t[496]=l('isadd(affineExpr)
Checks whether the given affine expression is an add expression.
',3))]),e("details",bs,[e("summary",null,[t[497]||(t[497]=e("a",{id:"Reactant.MLIR.IR.isaffinemap-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.isaffinemap-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isaffinemap")],-1)),t[498]||(t[498]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[499]||(t[499]=l('isaffinemap(attr)
Checks whether the given attribute is an affine map attribute.
',3))]),e("details",gs,[e("summary",null,[t[500]||(t[500]=e("a",{id:"Reactant.MLIR.IR.isarray-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.isarray-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isarray")],-1)),t[501]||(t[501]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[502]||(t[502]=l('isarray(attr)
Checks whether the given attribute is an array attribute.
',3))]),e("details",ys,[e("summary",null,[t[503]||(t[503]=e("a",{id:"Reactant.MLIR.IR.isbf16-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isbf16-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isbf16")],-1)),t[504]||(t[504]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[505]||(t[505]=l('isbf16(type)
Checks whether the given type is a bf16 type.
',3))]),e("details",ms,[e("summary",null,[t[506]||(t[506]=e("a",{id:"Reactant.MLIR.IR.isbinary-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Reactant.MLIR.IR.isbinary-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isbinary")],-1)),t[507]||(t[507]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[508]||(t[508]=l('isbinary(affineExpr)
Checks whether the given affine expression is binary.
',3))]),e("details",ks,[e("summary",null,[t[509]||(t[509]=e("a",{id:"Reactant.MLIR.IR.isbool-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.isbool-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isbool")],-1)),t[510]||(t[510]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[511]||(t[511]=l('isbool(attr)
Checks whether the given attribute is a bool attribute.
',3))]),e("details",fs,[e("summary",null,[t[512]||(t[512]=e("a",{id:"Reactant.MLIR.IR.isceildiv-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Reactant.MLIR.IR.isceildiv-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isceildiv")],-1)),t[513]||(t[513]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[514]||(t[514]=l('isceildiv(affineExpr)
Checks whether the given affine expression is an ceildiv expression.
',3))]),e("details",Rs,[e("summary",null,[t[515]||(t[515]=e("a",{id:"Reactant.MLIR.IR.iscomplex-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.iscomplex-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.iscomplex")],-1)),t[516]||(t[516]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[517]||(t[517]=l('iscomplex(type)
Checks whether the given type is a Complex type.
',3))]),e("details",Is,[e("summary",null,[t[518]||(t[518]=e("a",{id:"Reactant.MLIR.IR.isconstantexpr-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Reactant.MLIR.IR.isconstantexpr-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isconstantexpr")],-1)),t[519]||(t[519]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[520]||(t[520]=l('isconstantexpr(affineExpr)
Checks whether the given affine expression is a constant expression.
',3))]),e("details",js,[e("summary",null,[t[521]||(t[521]=e("a",{id:"Reactant.MLIR.IR.isconstrainteq-Tuple{Reactant.MLIR.IR.IntegerSet, Any}",href:"#Reactant.MLIR.IR.isconstrainteq-Tuple{Reactant.MLIR.IR.IntegerSet, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isconstrainteq")],-1)),t[522]||(t[522]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[523]||(t[523]=l('mlirIntegerSetIsConstraintEq(set, i)
Returns true
of the i
-th constraint of the set is an equality constraint, false
otherwise.
isdenseelements(attr)
Checks whether the given attribute is a dense elements attribute.
',3))]),e("details",As,[e("summary",null,[t[527]||(t[527]=e("a",{id:"Reactant.MLIR.IR.isdict-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.isdict-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isdict")],-1)),t[528]||(t[528]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[529]||(t[529]=l('isdict(attr)
Checks whether the given attribute is a dictionary attribute.
',3))]),e("details",Ls,[e("summary",null,[t[530]||(t[530]=e("a",{id:"Reactant.MLIR.IR.isdimexpr-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Reactant.MLIR.IR.isdimexpr-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isdimexpr")],-1)),t[531]||(t[531]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[532]||(t[532]=l('isdimexpr(affineExpr)
Checks whether the given affine expression is a dimension expression.
',3))]),e("details",Es,[e("summary",null,[t[533]||(t[533]=e("a",{id:"Reactant.MLIR.IR.isdyndim-Tuple{Reactant.MLIR.IR.Type, Int64}",href:"#Reactant.MLIR.IR.isdyndim-Tuple{Reactant.MLIR.IR.Type, Int64}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isdyndim")],-1)),t[534]||(t[534]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[535]||(t[535]=l('isdyndim(type, i)
Checks wither the i
-th dimension of the given shaped type is dynamic.
isdynsize(size)
Checks whether the given value is used as a placeholder for dynamic sizes in shaped types.
',3))]),e("details",Ts,[e("summary",null,[t[539]||(t[539]=e("a",{id:"Reactant.MLIR.IR.isdynstrideoroffset-Tuple{Any}",href:"#Reactant.MLIR.IR.isdynstrideoroffset-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isdynstrideoroffset")],-1)),t[540]||(t[540]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[541]||(t[541]=l('mlirShapedTypeIsDynamicStrideOrOffset(val)
Checks whether the given value is used as a placeholder for dynamic strides and offsets in shaped types.
',3))]),e("details",Cs,[e("summary",null,[t[542]||(t[542]=e("a",{id:"Reactant.MLIR.IR.iselements-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.iselements-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.iselements")],-1)),t[543]||(t[543]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[544]||(t[544]=l('iselements(attr)
Checks whether the given attribute is an elements attribute.
',3))]),e("details",xs,[e("summary",null,[t[545]||(t[545]=e("a",{id:"Reactant.MLIR.IR.isempty-Tuple{Reactant.MLIR.IR.IntegerSet}",href:"#Reactant.MLIR.IR.isempty-Tuple{Reactant.MLIR.IR.IntegerSet}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isempty")],-1)),t[546]||(t[546]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[547]||(t[547]=l('isempty(set)
Checks whether the given set is a canonical empty set, e.g., the set returned by mlirIntegerSetEmptyGet
.
isf16(type)
Checks whether the given type is an f16 type.
',3))]),e("details",Ps,[e("summary",null,[t[551]||(t[551]=e("a",{id:"Reactant.MLIR.IR.isf32-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isf32-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isf32")],-1)),t[552]||(t[552]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[553]||(t[553]=l('isf32(type)
Checks whether the given type is an f32 type.
',3))]),e("details",Ds,[e("summary",null,[t[554]||(t[554]=e("a",{id:"Reactant.MLIR.IR.isf64-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isf64-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isf64")],-1)),t[555]||(t[555]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[556]||(t[556]=l('isf64(type)
Checks whether the given type is an f64 type.
',3))]),e("details",Os,[e("summary",null,[t[557]||(t[557]=e("a",{id:"Reactant.MLIR.IR.isf8e4m3fn-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isf8e4m3fn-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isf8e4m3fn")],-1)),t[558]||(t[558]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[559]||(t[559]=l('isf8e4m3fn(type)
Checks whether the given type is an f8E4M3FN type.
',3))]),e("details",Bs,[e("summary",null,[t[560]||(t[560]=e("a",{id:"Reactant.MLIR.IR.isf8e5m2-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isf8e5m2-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isf8e5m2")],-1)),t[561]||(t[561]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[562]||(t[562]=l('isf8e5m2(type)
Checks whether the given type is an f8E5M2 type.
',3))]),e("details",Gs,[e("summary",null,[t[563]||(t[563]=e("a",{id:"Reactant.MLIR.IR.isfailure-Tuple{Reactant.MLIR.IR.LogicalResult}",href:"#Reactant.MLIR.IR.isfailure-Tuple{Reactant.MLIR.IR.LogicalResult}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isfailure")],-1)),t[564]||(t[564]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[565]||(t[565]=l('isfailure(res)
Checks if the given logical result represents a failure.
',3))]),e("details",zs,[e("summary",null,[t[566]||(t[566]=e("a",{id:"Reactant.MLIR.IR.isflatsymbolref-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.isflatsymbolref-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isflatsymbolref")],-1)),t[567]||(t[567]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[568]||(t[568]=l('isflatsymbolref(attr)
Checks whether the given attribute is a flat symbol reference attribute.
',3))]),e("details",ws,[e("summary",null,[t[569]||(t[569]=e("a",{id:"Reactant.MLIR.IR.isfloat-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.isfloat-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isfloat")],-1)),t[570]||(t[570]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[571]||(t[571]=l('isfloat(attr)
Checks whether the given attribute is a floating point attribute.
',3))]),e("details",Ss,[e("summary",null,[t[572]||(t[572]=e("a",{id:"Reactant.MLIR.IR.isfloordiv-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Reactant.MLIR.IR.isfloordiv-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isfloordiv")],-1)),t[573]||(t[573]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[574]||(t[574]=l('isfloordiv(affineExpr)
Checks whether the given affine expression is an floordiv expression.
',3))]),e("details",Ns,[e("summary",null,[t[575]||(t[575]=e("a",{id:"Reactant.MLIR.IR.isfunction-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isfunction-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isfunction")],-1)),t[576]||(t[576]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[577]||(t[577]=l('isfunction(type)
Checks whether the given type is a function type.
',3))]),e("details",Vs,[e("summary",null,[t[578]||(t[578]=e("a",{id:"Reactant.MLIR.IR.isfunctionofdimexpr-Tuple{Reactant.MLIR.IR.AffineExpr, Any}",href:"#Reactant.MLIR.IR.isfunctionofdimexpr-Tuple{Reactant.MLIR.IR.AffineExpr, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isfunctionofdimexpr")],-1)),t[579]||(t[579]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[580]||(t[580]=l('isfunctionofdimexpr(affineExpr, position)
Checks whether the given affine expression involves AffineDimExpr 'position'.
',3))]),e("details",qs,[e("summary",null,[t[581]||(t[581]=e("a",{id:"Reactant.MLIR.IR.isidentity-Tuple{Reactant.MLIR.IR.AffineMap}",href:"#Reactant.MLIR.IR.isidentity-Tuple{Reactant.MLIR.IR.AffineMap}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isidentity")],-1)),t[582]||(t[582]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[583]||(t[583]=l('isidentity(affineMap)
Checks whether the given affine map is an identity affine map. The function asserts that the number of dimensions is greater or equal to the number of results.
',3))]),e("details",Us,[e("summary",null,[t[584]||(t[584]=e("a",{id:"Reactant.MLIR.IR.isindex-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isindex-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isindex")],-1)),t[585]||(t[585]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[586]||(t[586]=l('isindex(type)
Checks whether the given type is an index type.
',3))]),e("details",Qs,[e("summary",null,[t[587]||(t[587]=e("a",{id:"Reactant.MLIR.IR.isinteger-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.isinteger-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isinteger")],-1)),t[588]||(t[588]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[589]||(t[589]=l('isinteger(attr)
Checks whether the given attribute is an integer attribute.
',3))]),e("details",Ws,[e("summary",null,[t[590]||(t[590]=e("a",{id:"Reactant.MLIR.IR.isinteger-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isinteger-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isinteger")],-1)),t[591]||(t[591]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[592]||(t[592]=l('isinteger(type)
Checks whether the given type is an integer type.
',3))]),e("details",Hs,[e("summary",null,[t[593]||(t[593]=e("a",{id:"Reactant.MLIR.IR.isintegerset-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.isintegerset-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isintegerset")],-1)),t[594]||(t[594]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[595]||(t[595]=l('isintegerset(attr)
Checks whether the given attribute is an integer set attribute.
',3))]),e("details",Zs,[e("summary",null,[t[596]||(t[596]=e("a",{id:"Reactant.MLIR.IR.ismemref-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.ismemref-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.ismemref")],-1)),t[597]||(t[597]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[598]||(t[598]=l('ismemref(type)
Checks whether the given type is a MemRef type.
',3))]),e("details",Js,[e("summary",null,[t[599]||(t[599]=e("a",{id:"Reactant.MLIR.IR.isminoridentity-Tuple{Reactant.MLIR.IR.AffineMap}",href:"#Reactant.MLIR.IR.isminoridentity-Tuple{Reactant.MLIR.IR.AffineMap}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isminoridentity")],-1)),t[600]||(t[600]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[601]||(t[601]=l('isminoridentity(affineMap)
Checks whether the given affine map is a minor identity affine map.
',3))]),e("details",Ks,[e("summary",null,[t[602]||(t[602]=e("a",{id:"Reactant.MLIR.IR.ismod-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Reactant.MLIR.IR.ismod-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.ismod")],-1)),t[603]||(t[603]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[604]||(t[604]=l('ismod(affineExpr)
Checks whether the given affine expression is an mod expression.
',3))]),e("details",$s,[e("summary",null,[t[605]||(t[605]=e("a",{id:"Reactant.MLIR.IR.ismul-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Reactant.MLIR.IR.ismul-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.ismul")],-1)),t[606]||(t[606]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[607]||(t[607]=l('ismul(affineExpr)
Checks whether the given affine expression is an mul expression.
',3))]),e("details",Xs,[e("summary",null,[t[608]||(t[608]=e("a",{id:"Reactant.MLIR.IR.ismultipleof-Tuple{Reactant.MLIR.IR.AffineExpr, Any}",href:"#Reactant.MLIR.IR.ismultipleof-Tuple{Reactant.MLIR.IR.AffineExpr, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.ismultipleof")],-1)),t[609]||(t[609]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[610]||(t[610]=l('ismultipleof(affineExpr, factor)
Checks whether the given affine expression is a multiple of 'factor'.
',3))]),e("details",Ys,[e("summary",null,[t[611]||(t[611]=e("a",{id:"Reactant.MLIR.IR.isnone-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isnone-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isnone")],-1)),t[612]||(t[612]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[613]||(t[613]=l('mlirTypeIsANone(type)
Checks whether the given type is a None type.
',3))]),e("details",_s,[e("summary",null,[t[614]||(t[614]=e("a",{id:"Reactant.MLIR.IR.isopaque-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.isopaque-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isopaque")],-1)),t[615]||(t[615]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[616]||(t[616]=l('isopaque(attr)
Checks whether the given attribute is an opaque attribute.
',3))]),e("details",ta,[e("summary",null,[t[617]||(t[617]=e("a",{id:"Reactant.MLIR.IR.isopaque-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isopaque-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isopaque")],-1)),t[618]||(t[618]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[619]||(t[619]=l('isopaque(type)
Checks whether the given type is an opaque type.
',3))]),e("details",ea,[e("summary",null,[t[620]||(t[620]=e("a",{id:"Reactant.MLIR.IR.isprojperm-Tuple{Reactant.MLIR.IR.AffineMap}",href:"#Reactant.MLIR.IR.isprojperm-Tuple{Reactant.MLIR.IR.AffineMap}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isprojperm")],-1)),t[621]||(t[621]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[622]||(t[622]=l('isprojperm(affineMap)
Checks whether the given affine map represents a subset of a symbol-less permutation map.
',3))]),e("details",sa,[e("summary",null,[t[623]||(t[623]=e("a",{id:"Reactant.MLIR.IR.isrankedtensor-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isrankedtensor-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isrankedtensor")],-1)),t[624]||(t[624]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[625]||(t[625]=l('isrankedtensor(type)
Checks whether the given type is a ranked tensor type.
',3))]),e("details",aa,[e("summary",null,[t[626]||(t[626]=e("a",{id:"Reactant.MLIR.IR.isshaped-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isshaped-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isshaped")],-1)),t[627]||(t[627]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[628]||(t[628]=l('isshaped(type)
Checks whether the given type is a Shaped type.
',3))]),e("details",ia,[e("summary",null,[t[629]||(t[629]=e("a",{id:"Reactant.MLIR.IR.issigned-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.issigned-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.issigned")],-1)),t[630]||(t[630]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[631]||(t[631]=l('issigned(type)
Checks whether the given integer type is signed.
',3))]),e("details",la,[e("summary",null,[t[632]||(t[632]=e("a",{id:"Reactant.MLIR.IR.issignless-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.issignless-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.issignless")],-1)),t[633]||(t[633]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[634]||(t[634]=l('issignless(type)
Checks whether the given integer type is signless.
',3))]),e("details",na,[e("summary",null,[t[635]||(t[635]=e("a",{id:"Reactant.MLIR.IR.issingleconstant-Tuple{Reactant.MLIR.IR.AffineMap}",href:"#Reactant.MLIR.IR.issingleconstant-Tuple{Reactant.MLIR.IR.AffineMap}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.issingleconstant")],-1)),t[636]||(t[636]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[637]||(t[637]=l('issingleconstant(affineMap)
Checks whether the given affine map is a single result constant affine map.
',3))]),e("details",pa,[e("summary",null,[t[638]||(t[638]=e("a",{id:"Reactant.MLIR.IR.issparseelements-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.issparseelements-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.issparseelements")],-1)),t[639]||(t[639]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[640]||(t[640]=l('issparseelements(attr)
Checks whether the given attribute is a sparse elements attribute.
',3))]),e("details",ra,[e("summary",null,[t[641]||(t[641]=e("a",{id:"Reactant.MLIR.IR.issplat-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.issplat-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.issplat")],-1)),t[642]||(t[642]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[643]||(t[643]=l('issplat(attr)
Checks whether the given dense elements attribute contains a single replicated value (splat).
',3))]),e("details",oa,[e("summary",null,[t[644]||(t[644]=e("a",{id:"Reactant.MLIR.IR.isstring-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.isstring-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isstring")],-1)),t[645]||(t[645]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[646]||(t[646]=l('isstring(attr)
Checks whether the given attribute is a string attribute.
',3))]),e("details",da,[e("summary",null,[t[647]||(t[647]=e("a",{id:"Reactant.MLIR.IR.issuccess-Tuple{Reactant.MLIR.IR.LogicalResult}",href:"#Reactant.MLIR.IR.issuccess-Tuple{Reactant.MLIR.IR.LogicalResult}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.issuccess")],-1)),t[648]||(t[648]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[649]||(t[649]=l('issuccess(res)
Checks if the given logical result represents a success.
',3))]),e("details",ca,[e("summary",null,[t[650]||(t[650]=e("a",{id:"Reactant.MLIR.IR.issymbolexpr-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Reactant.MLIR.IR.issymbolexpr-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.issymbolexpr")],-1)),t[651]||(t[651]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[652]||(t[652]=l('issymbolexpr(affineExpr)
Checks whether the given affine expression is a symbol expression.
',3))]),e("details",ha,[e("summary",null,[t[653]||(t[653]=e("a",{id:"Reactant.MLIR.IR.issymbolref-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.issymbolref-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.issymbolref")],-1)),t[654]||(t[654]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[655]||(t[655]=l('issymbolref(attr)
Checks whether the given attribute is a symbol reference attribute.
',3))]),e("details",ua,[e("summary",null,[t[656]||(t[656]=e("a",{id:"Reactant.MLIR.IR.istensor-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.istensor-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.istensor")],-1)),t[657]||(t[657]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[658]||(t[658]=l('istensor(type)
Checks whether the given type is a Tensor type.
',3))]),e("details",ba,[e("summary",null,[t[659]||(t[659]=e("a",{id:"Reactant.MLIR.IR.istuple-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.istuple-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.istuple")],-1)),t[660]||(t[660]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[661]||(t[661]=l('istuple(type)
Checks whether the given type is a tuple type.
',3))]),e("details",ga,[e("summary",null,[t[662]||(t[662]=e("a",{id:"Reactant.MLIR.IR.istype-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.istype-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.istype")],-1)),t[663]||(t[663]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[664]||(t[664]=l('istype(attr)
Checks whether the given attribute is a type attribute.
',3))]),e("details",ya,[e("summary",null,[t[665]||(t[665]=e("a",{id:"Reactant.MLIR.IR.isunit-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.isunit-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isunit")],-1)),t[666]||(t[666]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[667]||(t[667]=l('isunit(attr)
Checks whether the given attribute is a unit attribute.
',3))]),e("details",ma,[e("summary",null,[t[668]||(t[668]=e("a",{id:"Reactant.MLIR.IR.isunrankedmemref-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isunrankedmemref-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isunrankedmemref")],-1)),t[669]||(t[669]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[670]||(t[670]=l('mlirTypeIsAUnrankedMemRef(type)
Checks whether the given type is an UnrankedMemRef type.
',3))]),e("details",ka,[e("summary",null,[t[671]||(t[671]=e("a",{id:"Reactant.MLIR.IR.isunrankedtensor-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isunrankedtensor-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isunrankedtensor")],-1)),t[672]||(t[672]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[673]||(t[673]=l('isunrankedtensor(type)
Checks whether the given type is an unranked tensor type.
',3))]),e("details",fa,[e("summary",null,[t[674]||(t[674]=e("a",{id:"Reactant.MLIR.IR.isunsigned-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isunsigned-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isunsigned")],-1)),t[675]||(t[675]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[676]||(t[676]=l('isunsigned(type)
Checks whether the given integer type is unsigned.
',3))]),e("details",Ra,[e("summary",null,[t[677]||(t[677]=e("a",{id:"Reactant.MLIR.IR.isvector-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isvector-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isvector")],-1)),t[678]||(t[678]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[679]||(t[679]=l('isvector(type)
Checks whether the given type is a Vector type.
',3))]),e("details",Ia,[e("summary",null,[t[680]||(t[680]=e("a",{id:"Reactant.MLIR.IR.layout-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.layout-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.layout")],-1)),t[681]||(t[681]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[682]||(t[682]=l('layout(type)
Returns the layout of the given MemRef type.
',3))]),e("details",ja,[e("summary",null,[t[683]||(t[683]=e("a",{id:"Reactant.MLIR.IR.leafref-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.leafref-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.leafref")],-1)),t[684]||(t[684]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[685]||(t[685]=l('leafref(attr)
Returns the string reference to the leaf referenced symbol. The data remains live as long as the context in which the attribute lives.
',3))]),e("details",Ma,[e("summary",null,[t[686]||(t[686]=e("a",{id:"Reactant.MLIR.IR.lhs-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Reactant.MLIR.IR.lhs-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.lhs")],-1)),t[687]||(t[687]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[688]||(t[688]=l('lhs(affineExpr)
Returns the left hand side affine expression of the given affine binary operation expression.
',3))]),e("details",Aa,[e("summary",null,[t[689]||(t[689]=e("a",{id:"Reactant.MLIR.IR.location-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.location-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.location")],-1)),t[690]||(t[690]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[691]||(t[691]=l('location(op)
Gets the location of the operation.
',3))]),e("details",La,[e("summary",null,[t[692]||(t[692]=e("a",{id:"Reactant.MLIR.IR.lookup-Tuple{Reactant.MLIR.IR.ExecutionEngine, String}",href:"#Reactant.MLIR.IR.lookup-Tuple{Reactant.MLIR.IR.ExecutionEngine, String}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.lookup")],-1)),t[693]||(t[693]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[694]||(t[694]=l('lookup(jit, name)
Lookup a native function in the execution engine by name, returns nullptr if the name can't be looked-up.
',3))]),e("details",Ea,[e("summary",null,[t[695]||(t[695]=e("a",{id:"Reactant.MLIR.IR.lookup-Tuple{Reactant.MLIR.IR.SymbolTable, AbstractString}",href:"#Reactant.MLIR.IR.lookup-Tuple{Reactant.MLIR.IR.SymbolTable, AbstractString}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.lookup")],-1)),t[696]||(t[696]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[697]||(t[697]=l('lookup(symboltable, name)
Looks up a symbol with the given name in the given symbol table and returns the operation that corresponds to the symbol. If the symbol cannot be found, returns a null operation.
',3))]),e("details",va,[e("summary",null,[t[698]||(t[698]=e("a",{id:"Reactant.MLIR.IR.majorsubmap-Tuple{Reactant.MLIR.IR.AffineMap, Any}",href:"#Reactant.MLIR.IR.majorsubmap-Tuple{Reactant.MLIR.IR.AffineMap, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.majorsubmap")],-1)),t[699]||(t[699]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[700]||(t[700]=l('majorsubmap(affineMap, nresults)
Returns the affine map consisting of the most major nresults
results. Returns the null AffineMap if the nresults
is equal to zero. Returns the affineMap
if nresults
is greater or equals to number of results of the given affine map.
mlirMemRefTypeGetMemorySpace(type)
Returns the memory space of the given MemRef type.
',3))]),e("details",Ca,[e("summary",null,[t[704]||(t[704]=e("a",{id:"Reactant.MLIR.IR.minorsubmap-Tuple{Reactant.MLIR.IR.AffineMap, Any}",href:"#Reactant.MLIR.IR.minorsubmap-Tuple{Reactant.MLIR.IR.AffineMap, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.minorsubmap")],-1)),t[705]||(t[705]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[706]||(t[706]=l('minorsubmap(affineMap, nresults)
Returns the affine map consisting of the most minor nresults
results. Returns the null AffineMap if the nresults
is equal to zero. Returns the affineMap
if nresults
is greater or equals to number of results of the given affine map.
move_after!(op, other)
Moves the given operation immediately after the other operation in its parent block. The given operation may be owned by the caller or by its current block. The other operation must belong to a block. In any case, the ownership is transferred to the block of the other operation.
',3))]),e("details",Fa,[e("summary",null,[t[710]||(t[710]=e("a",{id:"Reactant.MLIR.IR.move_before!-Tuple{Reactant.MLIR.IR.Operation, Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.move_before!-Tuple{Reactant.MLIR.IR.Operation, Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.move_before!")],-1)),t[711]||(t[711]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[712]||(t[712]=l('move_before!(op, other)
Moves the given operation immediately before the other operation in its parent block. The given operation may be owner by the caller or by its current block. The other operation must belong to a block. In any case, the ownership is transferred to the block of the other operation.
',3))]),e("details",Pa,[e("summary",null,[t[713]||(t[713]=e("a",{id:"Reactant.MLIR.IR.name-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.name-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.name")],-1)),t[714]||(t[714]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[715]||(t[715]=l('name(op)
Gets the name of the operation as an identifier.
',3))]),e("details",Da,[e("summary",null,[t[716]||(t[716]=e("a",{id:"Reactant.MLIR.IR.namespace-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.namespace-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.namespace")],-1)),t[717]||(t[717]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[718]||(t[718]=l('mlirOpaqueAttrGetDialectNamespace(attr)
Returns the namespace of the dialect with which the given opaque attribute is associated. The namespace string is owned by the context.
',3))]),e("details",Oa,[e("summary",null,[t[719]||(t[719]=e("a",{id:"Reactant.MLIR.IR.namespace-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.namespace-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.namespace")],-1)),t[720]||(t[720]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[721]||(t[721]=l('mlirOpaqueTypeGetDialectNamespace(type)
Returns the namespace of the dialect with which the given opaque type is associated. The namespace string is owned by the context.
',3))]),e("details",Ba,[e("summary",null,[t[722]||(t[722]=e("a",{id:"Reactant.MLIR.IR.nargs-Tuple{Reactant.MLIR.IR.Block}",href:"#Reactant.MLIR.IR.nargs-Tuple{Reactant.MLIR.IR.Block}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.nargs")],-1)),t[723]||(t[723]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[724]||(t[724]=l('nargs(block)
Returns the number of arguments of the block.
',3))]),e("details",Ga,[e("summary",null,[t[725]||(t[725]=e("a",{id:"Reactant.MLIR.IR.nattrs-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.nattrs-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.nattrs")],-1)),t[726]||(t[726]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[727]||(t[727]=l('nattrs(op)
Returns the number of attributes attached to the operation.
',3))]),e("details",za,[e("summary",null,[t[728]||(t[728]=e("a",{id:"Reactant.MLIR.IR.nconstraints-Tuple{Reactant.MLIR.IR.IntegerSet}",href:"#Reactant.MLIR.IR.nconstraints-Tuple{Reactant.MLIR.IR.IntegerSet}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.nconstraints")],-1)),t[729]||(t[729]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[730]||(t[730]=l('nconstraints(set)
Returns the number of constraints (equalities + inequalities) in the given set.
',3))]),e("details",wa,[e("summary",null,[t[731]||(t[731]=e("a",{id:"Reactant.MLIR.IR.nequalities-Tuple{Reactant.MLIR.IR.IntegerSet}",href:"#Reactant.MLIR.IR.nequalities-Tuple{Reactant.MLIR.IR.IntegerSet}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.nequalities")],-1)),t[732]||(t[732]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[733]||(t[733]=l('nequalities(set)
Returns the number of equalities in the given set.
',3))]),e("details",Sa,[e("summary",null,[t[734]||(t[734]=e("a",{id:"Reactant.MLIR.IR.next-Tuple{Reactant.MLIR.IR.Block}",href:"#Reactant.MLIR.IR.next-Tuple{Reactant.MLIR.IR.Block}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.next")],-1)),t[735]||(t[735]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[736]||(t[736]=l('next(block)
Returns the block immediately following the given block in its parent region or nothing
if last.
next(opOperand)
Returns an op operand representing the next use of the value, or nothing
if there is no next use.
ninequalities(set)
Returns the number of inequalities in the given set.
',3))]),e("details",qa,[e("summary",null,[t[743]||(t[743]=e("a",{id:"Reactant.MLIR.IR.ninputs-Tuple{Reactant.MLIR.IR.AffineMap}",href:"#Reactant.MLIR.IR.ninputs-Tuple{Reactant.MLIR.IR.AffineMap}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.ninputs")],-1)),t[744]||(t[744]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[745]||(t[745]=l('ninputs(affineMap)
Returns the number of inputs (dimensions + symbols) of the given affine map.
',3))]),e("details",Ua,[e("summary",null,[t[746]||(t[746]=e("a",{id:"Reactant.MLIR.IR.ninputs-Tuple{Reactant.MLIR.IR.IntegerSet}",href:"#Reactant.MLIR.IR.ninputs-Tuple{Reactant.MLIR.IR.IntegerSet}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.ninputs")],-1)),t[747]||(t[747]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[748]||(t[748]=l('ninputs(set)
Returns the number of inputs (dimensions + symbols) in the given set.
',3))]),e("details",Qa,[e("summary",null,[t[749]||(t[749]=e("a",{id:"Reactant.MLIR.IR.ninputs-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.ninputs-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.ninputs")],-1)),t[750]||(t[750]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[751]||(t[751]=l('ninputs(type)
Returns the number of input types.
',3))]),e("details",Wa,[e("summary",null,[t[752]||(t[752]=e("a",{id:"Reactant.MLIR.IR.nnestedrefs-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.nnestedrefs-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.nnestedrefs")],-1)),t[753]||(t[753]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[754]||(t[754]=l('nnestedrefs(attr)
Returns the number of references nested in the given symbol reference attribute.
',3))]),e("details",Ha,[e("summary",null,[t[755]||(t[755]=e("a",{id:"Reactant.MLIR.IR.noperands-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.noperands-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.noperands")],-1)),t[756]||(t[756]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[757]||(t[757]=l('noperands(op)
Returns the number of operands of the operation.
',3))]),e("details",Za,[e("summary",null,[t[758]||(t[758]=e("a",{id:"Reactant.MLIR.IR.nregions-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.nregions-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.nregions")],-1)),t[759]||(t[759]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[760]||(t[760]=l('nregions(op)
Returns the number of regions attached to the given operation.
',3))]),e("details",Ja,[e("summary",null,[t[761]||(t[761]=e("a",{id:"Reactant.MLIR.IR.nresults-Tuple{Reactant.MLIR.IR.AffineMap}",href:"#Reactant.MLIR.IR.nresults-Tuple{Reactant.MLIR.IR.AffineMap}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.nresults")],-1)),t[762]||(t[762]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[763]||(t[763]=l('nresults(affineMap)
Returns the number of results of the given affine map.
',3))]),e("details",Ka,[e("summary",null,[t[764]||(t[764]=e("a",{id:"Reactant.MLIR.IR.nresults-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.nresults-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.nresults")],-1)),t[765]||(t[765]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[766]||(t[766]=l('nresults(op)
Returns the number of results of the operation.
',3))]),e("details",$a,[e("summary",null,[t[767]||(t[767]=e("a",{id:"Reactant.MLIR.IR.nresults-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.nresults-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.nresults")],-1)),t[768]||(t[768]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[769]||(t[769]=l('nresults(type)
Returns the number of result types.
',3))]),e("details",Xa,[e("summary",null,[t[770]||(t[770]=e("a",{id:"Reactant.MLIR.IR.nsuccessors-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.nsuccessors-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.nsuccessors")],-1)),t[771]||(t[771]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[772]||(t[772]=l('nsuccessors(op)
Returns the number of successor blocks of the operation.
',3))]),e("details",Ya,[e("summary",null,[t[773]||(t[773]=e("a",{id:"Reactant.MLIR.IR.nsymbols-Tuple{Reactant.MLIR.IR.AffineMap}",href:"#Reactant.MLIR.IR.nsymbols-Tuple{Reactant.MLIR.IR.AffineMap}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.nsymbols")],-1)),t[774]||(t[774]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[775]||(t[775]=l('nsymbols(affineMap)
Returns the number of symbols of the given affine map.
',3))]),e("details",_a,[e("summary",null,[t[776]||(t[776]=e("a",{id:"Reactant.MLIR.IR.nsymbols-Tuple{Reactant.MLIR.IR.IntegerSet}",href:"#Reactant.MLIR.IR.nsymbols-Tuple{Reactant.MLIR.IR.IntegerSet}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.nsymbols")],-1)),t[777]||(t[777]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[778]||(t[778]=l('nsymbols(set)
Returns the number of symbols in the given set.
',3))]),e("details",ti,[e("summary",null,[t[779]||(t[779]=e("a",{id:"Reactant.MLIR.IR.op_owner-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.IR.op_owner-Tuple{Reactant.MLIR.IR.Value}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.op_owner")],-1)),t[780]||(t[780]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[781]||(t[781]=l('op_owner(value)
Returns an operation that produced this value as its result. Asserts if the value is not an op result.
',3))]),e("details",ei,[e("summary",null,[t[782]||(t[782]=e("a",{id:"Reactant.MLIR.IR.op_res_num-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.IR.op_res_num-Tuple{Reactant.MLIR.IR.Value}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.op_res_num")],-1)),t[783]||(t[783]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[784]||(t[784]=l('op_res_num(value)
Returns the position of the value in the list of results of the operation that produced it.
',3))]),e("details",si,[e("summary",null,[t[785]||(t[785]=e("a",{id:"Reactant.MLIR.IR.operand",href:"#Reactant.MLIR.IR.operand"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.operand")],-1)),t[786]||(t[786]=s()),i(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),t[787]||(t[787]=l('operand(op, i)
Returns i
-th operand of the operation.
operand!(op, i, value)
Sets the i
-th operand of the operation.
operandindex(opOperand)
Returns the operand number of an op operand.
',3))]),e("details",li,[e("summary",null,[t[794]||(t[794]=e("a",{id:"Reactant.MLIR.IR.owner-Tuple{Reactant.MLIR.IR.OpOperand}",href:"#Reactant.MLIR.IR.owner-Tuple{Reactant.MLIR.IR.OpOperand}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.owner")],-1)),t[795]||(t[795]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[796]||(t[796]=l('owner(opOperand)
Returns the owner operation of an op operand.
',3))]),e("details",ni,[e("summary",null,[t[797]||(t[797]=e("a",{id:"Reactant.MLIR.IR.parent_op-Tuple{Reactant.MLIR.IR.Block}",href:"#Reactant.MLIR.IR.parent_op-Tuple{Reactant.MLIR.IR.Block}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.parent_op")],-1)),t[798]||(t[798]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[799]||(t[799]=l('parent_op(block)
Returns the closest surrounding operation that contains this block.
',3))]),e("details",pi,[e("summary",null,[t[800]||(t[800]=e("a",{id:"Reactant.MLIR.IR.parent_op-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.parent_op-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.parent_op")],-1)),t[801]||(t[801]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[802]||(t[802]=l('parent_op(op)
Gets the operation that owns this operation, returning null if the operation is not owned.
',3))]),e("details",ri,[e("summary",null,[t[803]||(t[803]=e("a",{id:"Reactant.MLIR.IR.parent_region-Tuple{Reactant.MLIR.IR.Block}",href:"#Reactant.MLIR.IR.parent_region-Tuple{Reactant.MLIR.IR.Block}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.parent_region")],-1)),t[804]||(t[804]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[805]||(t[805]=l('parent_region(block)
Returns the region that contains this block.
',3))]),e("details",oi,[e("summary",null,[t[806]||(t[806]=e("a",{id:"Reactant.MLIR.IR.position-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Reactant.MLIR.IR.position-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.position")],-1)),t[807]||(t[807]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[808]||(t[808]=l('position(affineExpr)
Returns the position of the given affine dimension expression, affine symbol expression or ...
',3))]),e("details",di,[e("summary",null,[t[809]||(t[809]=e("a",{id:"Reactant.MLIR.IR.push_argument!-Tuple{Reactant.MLIR.IR.Block, Any}",href:"#Reactant.MLIR.IR.push_argument!-Tuple{Reactant.MLIR.IR.Block, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.push_argument!")],-1)),t[810]||(t[810]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[811]||(t[811]=l('push_argument!(block, type; location=Location())
Appends an argument of the specified type to the block. Returns the newly added argument.
',3))]),e("details",ci,[e("summary",null,[t[812]||(t[812]=e("a",{id:"Reactant.MLIR.IR.region-Tuple{Reactant.MLIR.IR.Operation, Any}",href:"#Reactant.MLIR.IR.region-Tuple{Reactant.MLIR.IR.Operation, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.region")],-1)),t[813]||(t[813]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[814]||(t[814]=l('region(op, i)
Returns i
-th region attached to the operation.
result(op, i)
Returns i
-th result of the operation.
result(type, i)
Returns the i
-th result type.
result(affineMap, pos)
Returns the result at the given position.
',3))]),e("details",gi,[e("summary",null,[t[824]||(t[824]=e("a",{id:"Reactant.MLIR.IR.result-Tuple{Reactant.MLIR.IR.AffineMap}",href:"#Reactant.MLIR.IR.result-Tuple{Reactant.MLIR.IR.AffineMap}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.result")],-1)),t[825]||(t[825]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[826]||(t[826]=l('result(affineMap)
Returns the constant result of the given affine map. The function asserts that the map has a single constant result.
',3))]),e("details",yi,[e("summary",null,[t[827]||(t[827]=e("a",{id:"Reactant.MLIR.IR.rhs-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Reactant.MLIR.IR.rhs-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.rhs")],-1)),t[828]||(t[828]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[829]||(t[829]=l('rhs(affineExpr)
Returns the right hand side affine expression of the given affine binary operation expression.
',3))]),e("details",mi,[e("summary",null,[t[830]||(t[830]=e("a",{id:"Reactant.MLIR.IR.rmattr!-Tuple{Reactant.MLIR.IR.Operation, Any}",href:"#Reactant.MLIR.IR.rmattr!-Tuple{Reactant.MLIR.IR.Operation, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.rmattr!")],-1)),t[831]||(t[831]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[832]||(t[832]=l('rmattr!(op, name)
Removes an attribute by name. Returns false if the attribute was not found and true if removed.
',3))]),e("details",ki,[e("summary",null,[t[833]||(t[833]=e("a",{id:"Reactant.MLIR.IR.rmfromparent!-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.rmfromparent!-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.rmfromparent!")],-1)),t[834]||(t[834]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[835]||(t[835]=l('rmfromparent!(op)
Removes the given operation from its parent block. The operation is not destroyed. The ownership of the operation is transferred to the caller.
',3))]),e("details",fi,[e("summary",null,[t[836]||(t[836]=e("a",{id:"Reactant.MLIR.IR.rootref-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.rootref-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.rootref")],-1)),t[837]||(t[837]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[838]||(t[838]=l('rootref(attr)
Returns the string reference to the root referenced symbol. The data remains live as long as the context in which the attribute lives.
',3))]),e("details",Ri,[e("summary",null,[t[839]||(t[839]=e("a",{id:"Reactant.MLIR.IR.run!-Tuple{Reactant.MLIR.IR.PassManager, Reactant.MLIR.IR.Module}",href:"#Reactant.MLIR.IR.run!-Tuple{Reactant.MLIR.IR.PassManager, Reactant.MLIR.IR.Module}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.run!")],-1)),t[840]||(t[840]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[841]||(t[841]=l('run!(passManager, module)
Run the provided passManager
on the given module
.
submap(affineMap, positions)
Returns the affine map consisting of the positions
subset.
success()
Creates a logical result representing a success.
',3))]),e("details",Mi,[e("summary",null,[t[848]||(t[848]=e("a",{id:"Reactant.MLIR.IR.successor-Tuple{Reactant.MLIR.IR.Operation, Any}",href:"#Reactant.MLIR.IR.successor-Tuple{Reactant.MLIR.IR.Operation, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.successor")],-1)),t[849]||(t[849]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[850]||(t[850]=l('successor(op, i)
Returns i
-th successor of the operation.
terminator(block)
Returns the terminator operation in the block or nothing
if no terminator.
set_type!(value, type)
Sets the type of the block argument to the given type.
',3))]),e("details",Ei,[e("summary",null,[t[857]||(t[857]=e("a",{id:"Reactant.MLIR.IR.type-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.type-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.type")],-1)),t[858]||(t[858]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[859]||(t[859]=l('type(attribute)
Gets the type of this attribute.
',3))]),e("details",vi,[e("summary",null,[t[860]||(t[860]=e("a",{id:"Reactant.MLIR.IR.type-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.IR.type-Tuple{Reactant.MLIR.IR.Value}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.type")],-1)),t[861]||(t[861]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[862]||(t[862]=l('type(value)
Returns the type of the value.
',3))]),e("details",Ti,[e("summary",null,[t[863]||(t[863]=e("a",{id:"Reactant.MLIR.IR.typeid-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.typeid-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.typeid")],-1)),t[864]||(t[864]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[865]||(t[865]=l('typeid(attribute)
Gets the type id of the attribute.
',3))]),e("details",Ci,[e("summary",null,[t[866]||(t[866]=e("a",{id:"Reactant.MLIR.IR.typeid-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.typeid-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.typeid")],-1)),t[867]||(t[867]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[868]||(t[868]=l('typeid(op)
Gets the type id of the operation. Returns null if the operation does not have a registered operation description.
',3))]),e("details",xi,[e("summary",null,[t[869]||(t[869]=e("a",{id:"Reactant.MLIR.IR.typeid-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.typeid-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.typeid")],-1)),t[870]||(t[870]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[871]||(t[871]=l('typeid(type)
Gets the type ID of the type.
',3))]),e("details",Fi,[e("summary",null,[t[872]||(t[872]=e("a",{id:"Reactant.MLIR.IR.value-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Reactant.MLIR.IR.value-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.value")],-1)),t[873]||(t[873]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[874]||(t[874]=l('value(affineExpr)
Returns the value of the given affine constant expression.
',3))]),e("details",Pi,[e("summary",null,[t[875]||(t[875]=e("a",{id:"Reactant.MLIR.IR.verify-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.verify-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.verify")],-1)),t[876]||(t[876]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[877]||(t[877]=l('verify(op)
Verify the operation and return true if it passes, false if it fails.
',3))]),e("details",Di,[e("summary",null,[t[878]||(t[878]=e("a",{id:"Reactant.MLIR.IR.verifyall-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.verifyall-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.verifyall")],-1)),t[879]||(t[879]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[880]||(t[880]=l('verifyall(operation; debug=false)
Prints the operations which could not be verified.
',3))]),e("details",Oi,[e("summary",null,[t[881]||(t[881]=e("a",{id:"Reactant.MLIR.IR.@affinemap-Tuple{Any}",href:"#Reactant.MLIR.IR.@affinemap-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.@affinemap")],-1)),t[882]||(t[882]=s()),i(a,{type:"info",class:"jlObjectType jlMacro",text:"Macro"})]),t[883]||(t[883]=l(`@affinemap (d1, d2, d3, ...)[s1, s2, ...] -> (d0 + d1, ...)
Returns an affine map from the provided Julia expression. On the right hand side are allowed the following function calls:
The rhs can only contains dimensions and symbols present on the left hand side or integer literals.
julia> using Reactant.MLIR: IR
+
+julia> IR.context!(IR.Context()) do
+ IR.@affinemap (d1, d2)[s0] -> (d1 + s0, d2 % 10)
+ end
+MLIR.IR.AffineMap(#= (d0, d1)[s0] -> (d0 + s0, d1 mod 10) =#)
MlirDiagnostic
An opaque reference to a diagnostic, always owned by the diagnostics engine (context). Must not be stored outside of the diagnostic handler.
',3))]),e("details",ll,[e("summary",null,[t[1005]||(t[1005]=e("a",{id:"Reactant.MLIR.API.MlirDiagnosticHandler",href:"#Reactant.MLIR.API.MlirDiagnosticHandler"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.MlirDiagnosticHandler")],-1)),t[1006]||(t[1006]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[1007]||(t[1007]=e("p",null,[s("Diagnostic handler type. Accepts a reference to a diagnostic, which is only guaranteed to be live during the call. The handler is passed the "),e("code",null,"userData"),s(" that was provided when the handler was attached to a context. If the handler processed the diagnostic completely, it is expected to return success. Otherwise, it is expected to return failure to indicate that other handlers should attempt to process the diagnostic.")],-1)),t[1008]||(t[1008]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L6718-L6720",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",nl,[e("summary",null,[t[1009]||(t[1009]=e("a",{id:"Reactant.MLIR.API.MlirDiagnosticHandlerID",href:"#Reactant.MLIR.API.MlirDiagnosticHandlerID"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.MlirDiagnosticHandlerID")],-1)),t[1010]||(t[1010]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[1011]||(t[1011]=e("p",null,"Opaque identifier of a diagnostic handler, useful to detach a handler.",-1)),t[1012]||(t[1012]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L6712-L6714",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",pl,[e("summary",null,[t[1013]||(t[1013]=e("a",{id:"Reactant.MLIR.API.MlirDiagnosticSeverity",href:"#Reactant.MLIR.API.MlirDiagnosticSeverity"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.MlirDiagnosticSeverity")],-1)),t[1014]||(t[1014]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[1015]||(t[1015]=l('MlirDiagnosticSeverity
Severity of a diagnostic.
',3))]),e("details",rl,[e("summary",null,[t[1016]||(t[1016]=e("a",{id:"Reactant.MLIR.API.MlirExternalPassCallbacks",href:"#Reactant.MLIR.API.MlirExternalPassCallbacks"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.MlirExternalPassCallbacks")],-1)),t[1017]||(t[1017]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[1018]||(t[1018]=l('MlirExternalPassCallbacks
Structure of external MlirPass
callbacks. All callbacks are required to be set unless otherwise specified.
Field | Note |
---|---|
construct | This callback is called from the pass is created. This is analogous to a C++ pass constructor. |
destruct | This callback is called when the pass is destroyed This is analogous to a C++ pass destructor. |
initialize | This callback is optional. The callback is called before the pass is run, allowing a chance to initialize any complex state necessary for running the pass. See Pass::initialize(MLIRContext *). |
clone | This callback is called when the pass is cloned. See Pass::clonePass(). |
run | This callback is called when the pass is run. See Pass::runOnOperation(). |
MlirLlvmThreadPool
Re-export llvm::ThreadPool so as to avoid including the LLVM C API directly.
',3))]),e("details",dl,[e("summary",null,[t[1022]||(t[1022]=e("a",{id:"Reactant.MLIR.API.MlirLogicalResult",href:"#Reactant.MLIR.API.MlirLogicalResult"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.MlirLogicalResult")],-1)),t[1023]||(t[1023]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[1024]||(t[1024]=l('MlirLogicalResult
A logical result value, essentially a boolean with named states. LLVM convention for using boolean values to designate success or failure of an operation is a moving target, so MLIR opted for an explicit class. Instances of MlirLogicalResult
must only be inspected using the associated functions.
MlirNamedAttribute
Named MLIR attribute.
A named attribute is essentially a (name, attribute) pair where the name is a string.
',4))]),e("details",hl,[e("summary",null,[t[1028]||(t[1028]=e("a",{id:"Reactant.MLIR.API.MlirOperationState",href:"#Reactant.MLIR.API.MlirOperationState"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.MlirOperationState")],-1)),t[1029]||(t[1029]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[1030]||(t[1030]=l('MlirOperationState
An auxiliary class for constructing operations.
This class contains all the information necessary to construct the operation. It owns the MlirRegions it has pointers to and does not own anything else. By default, the state can be constructed from a name and location, the latter being also used to access the context, and has no other components. These components can be added progressively until the operation is constructed. Users are not expected to rely on the internals of this class and should use mlirOperationState* functions instead.
',4))]),e("details",ul,[e("summary",null,[t[1031]||(t[1031]=e("a",{id:"Reactant.MLIR.API.MlirOperationWalkCallback",href:"#Reactant.MLIR.API.MlirOperationWalkCallback"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.MlirOperationWalkCallback")],-1)),t[1032]||(t[1032]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[1033]||(t[1033]=e("p",null,[s("Operation walker type. The handler is passed an (opaque) reference to an operation and a pointer to a "),e("code",null,"userData"),s(".")],-1)),t[1034]||(t[1034]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L1495-L1497",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",bl,[e("summary",null,[t[1035]||(t[1035]=e("a",{id:"Reactant.MLIR.API.MlirShapedTypeComponentsCallback",href:"#Reactant.MLIR.API.MlirShapedTypeComponentsCallback"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.MlirShapedTypeComponentsCallback")],-1)),t[1036]||(t[1036]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[1037]||(t[1037]=e("p",null,"These callbacks are used to return multiple shaped type components from functions while transferring ownership to the caller. The first argument is the has rank boolean followed by the the rank and a pointer to the shape (if applicable). The next argument is the element type, then the attribute. The last argument is an opaque pointer forwarded to the callback by the caller. This callback will be called potentially multiple times for each shaped type components.",-1)),t[1038]||(t[1038]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L9100-L9102",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",gl,[e("summary",null,[t[1039]||(t[1039]=e("a",{id:"Reactant.MLIR.API.MlirSparseTensorLevelType",href:"#Reactant.MLIR.API.MlirSparseTensorLevelType"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.MlirSparseTensorLevelType")],-1)),t[1040]||(t[1040]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[1041]||(t[1041]=e("p",null,"Dimension level types (and properties) that define sparse tensors. See the documentation in SparseTensorAttrDefs.td for their meaning.",-1)),t[1042]||(t[1042]=e("p",null,"These correspond to SparseTensorEncodingAttr::LevelType in the C++ API. If updating, keep them in sync and update the static_assert in the impl file.",-1)),t[1043]||(t[1043]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L8452-L8456",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",yl,[e("summary",null,[t[1044]||(t[1044]=e("a",{id:"Reactant.MLIR.API.MlirStringCallback",href:"#Reactant.MLIR.API.MlirStringCallback"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.MlirStringCallback")],-1)),t[1045]||(t[1045]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[1046]||(t[1046]=e("p",null,"A callback for returning string references.",-1)),t[1047]||(t[1047]=e("p",null,[s("This function is called back by the functions that need to return a reference to the portion of the string with the following arguments: - an "),e("a",{href:"/Reactant.jl/previews/PR363/api/mlirc#Reactant.MLIR.API.MlirStringRef"},[e("code",null,"MlirStringRef")]),s(" representing the current portion of the string - a pointer to user data forwarded from the printing call.")],-1)),t[1048]||(t[1048]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L108-L112",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",ml,[e("summary",null,[t[1049]||(t[1049]=e("a",{id:"Reactant.MLIR.API.MlirStringRef",href:"#Reactant.MLIR.API.MlirStringRef"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.MlirStringRef")],-1)),t[1050]||(t[1050]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[1051]||(t[1051]=l('MlirStringRef
A pointer to a sized fragment of a string, not necessarily null-terminated. Does not own the underlying string. This is equivalent to llvm::StringRef.
Field | Note |
---|---|
data | Pointer to the first symbol. |
length | Length of the fragment. |
MlirWalkOrder
Traversal order for operation walk.
',3))]),e("details",Rl,[e("summary",null,[t[1059]||(t[1059]=e("a",{id:"Reactant.MLIR.API.MlirWalkResult",href:"#Reactant.MLIR.API.MlirWalkResult"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.MlirWalkResult")],-1)),t[1060]||(t[1060]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[1061]||(t[1061]=l('MlirWalkResult
Operation walk result.
',3))]),e("details",Il,[e("summary",null,[t[1062]||(t[1062]=e("a",{id:"Reactant.MLIR.API.LLVMAddSymbol-Tuple{Any, Any}",href:"#Reactant.MLIR.API.LLVMAddSymbol-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.LLVMAddSymbol")],-1)),t[1063]||(t[1063]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1064]||(t[1064]=l('LLVMAddSymbol(symbolName, symbolValue)
This functions permanently adds the symbol symbolName
with the value symbolValue
. These symbols are searched before any libraries.
See also
sys::DynamicLibrary::AddSymbol()
',5))]),e("details",jl,[e("summary",null,[t[1065]||(t[1065]=e("a",{id:"Reactant.MLIR.API.LLVMLoadLibraryPermanently-Tuple{Any}",href:"#Reactant.MLIR.API.LLVMLoadLibraryPermanently-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.LLVMLoadLibraryPermanently")],-1)),t[1066]||(t[1066]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1067]||(t[1067]=l('LLVMLoadLibraryPermanently(Filename)
This function permanently loads the dynamic library at the given path. It is safe to call this function multiple times for the same library.
See also
sys::DynamicLibrary::LoadLibraryPermanently()
',5))]),e("details",Ml,[e("summary",null,[t[1068]||(t[1068]=e("a",{id:"Reactant.MLIR.API.LLVMParseCommandLineOptions-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.LLVMParseCommandLineOptions-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.LLVMParseCommandLineOptions")],-1)),t[1069]||(t[1069]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1070]||(t[1070]=l('LLVMParseCommandLineOptions(argc, argv, Overview)
This function parses the given arguments using the LLVM command line parser. Note that the only stable thing about this function is its signature; you cannot rely on any particular set of command line arguments being interpreted the same way across LLVM versions.
See also
llvm:🆑:ParseCommandLineOptions()
',5))]),e("details",Al,[e("summary",null,[t[1071]||(t[1071]=e("a",{id:"Reactant.MLIR.API.LLVMSearchForAddressOfSymbol-Tuple{Any}",href:"#Reactant.MLIR.API.LLVMSearchForAddressOfSymbol-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.LLVMSearchForAddressOfSymbol")],-1)),t[1072]||(t[1072]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1073]||(t[1073]=l('LLVMSearchForAddressOfSymbol(symbolName)
This function will search through all previously loaded dynamic libraries for the symbol symbolName
. If it is found, the address of that symbol is returned. If not, null is returned.
See also
sys::DynamicLibrary::SearchForAddressOfSymbol()
',5))]),e("details",Ll,[e("summary",null,[t[1074]||(t[1074]=e("a",{id:"Reactant.MLIR.API.mlirAffineAddExprGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineAddExprGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineAddExprGet")],-1)),t[1075]||(t[1075]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1076]||(t[1076]=l('mlirAffineAddExprGet(lhs, rhs)
Creates an affine add expression with 'lhs' and 'rhs'.
',3))]),e("details",El,[e("summary",null,[t[1077]||(t[1077]=e("a",{id:"Reactant.MLIR.API.mlirAffineBinaryOpExprGetLHS-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineBinaryOpExprGetLHS-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineBinaryOpExprGetLHS")],-1)),t[1078]||(t[1078]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1079]||(t[1079]=l('mlirAffineBinaryOpExprGetLHS(affineExpr)
Returns the left hand side affine expression of the given affine binary operation expression.
',3))]),e("details",vl,[e("summary",null,[t[1080]||(t[1080]=e("a",{id:"Reactant.MLIR.API.mlirAffineBinaryOpExprGetRHS-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineBinaryOpExprGetRHS-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineBinaryOpExprGetRHS")],-1)),t[1081]||(t[1081]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1082]||(t[1082]=l('mlirAffineBinaryOpExprGetRHS(affineExpr)
Returns the right hand side affine expression of the given affine binary operation expression.
',3))]),e("details",Tl,[e("summary",null,[t[1083]||(t[1083]=e("a",{id:"Reactant.MLIR.API.mlirAffineCeilDivExprGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineCeilDivExprGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineCeilDivExprGet")],-1)),t[1084]||(t[1084]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1085]||(t[1085]=l('mlirAffineCeilDivExprGet(lhs, rhs)
Creates an affine ceildiv expression with 'lhs' and 'rhs'.
',3))]),e("details",Cl,[e("summary",null,[t[1086]||(t[1086]=e("a",{id:"Reactant.MLIR.API.mlirAffineConstantExprGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineConstantExprGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineConstantExprGet")],-1)),t[1087]||(t[1087]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1088]||(t[1088]=l('mlirAffineConstantExprGet(ctx, constant)
Creates an affine constant expression with 'constant' in the context.
',3))]),e("details",xl,[e("summary",null,[t[1089]||(t[1089]=e("a",{id:"Reactant.MLIR.API.mlirAffineConstantExprGetValue-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineConstantExprGetValue-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineConstantExprGetValue")],-1)),t[1090]||(t[1090]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1091]||(t[1091]=l('mlirAffineConstantExprGetValue(affineExpr)
Returns the value of the given affine constant expression.
',3))]),e("details",Fl,[e("summary",null,[t[1092]||(t[1092]=e("a",{id:"Reactant.MLIR.API.mlirAffineDimExprGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineDimExprGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineDimExprGet")],-1)),t[1093]||(t[1093]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1094]||(t[1094]=l('mlirAffineDimExprGet(ctx, position)
Creates an affine dimension expression with 'position' in the context.
',3))]),e("details",Pl,[e("summary",null,[t[1095]||(t[1095]=e("a",{id:"Reactant.MLIR.API.mlirAffineDimExprGetPosition-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineDimExprGetPosition-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineDimExprGetPosition")],-1)),t[1096]||(t[1096]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1097]||(t[1097]=l('mlirAffineDimExprGetPosition(affineExpr)
Returns the position of the given affine dimension expression.
',3))]),e("details",Dl,[e("summary",null,[t[1098]||(t[1098]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprCompose-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineExprCompose-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprCompose")],-1)),t[1099]||(t[1099]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1100]||(t[1100]=l('mlirAffineExprCompose(affineExpr, affineMap)
Composes the given map with the given expression.
',3))]),e("details",Ol,[e("summary",null,[t[1101]||(t[1101]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprDump-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineExprDump-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprDump")],-1)),t[1102]||(t[1102]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1103]||(t[1103]=l('mlirAffineExprDump(affineExpr)
Prints the affine expression to the standard error stream.
',3))]),e("details",Bl,[e("summary",null,[t[1104]||(t[1104]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprEqual-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineExprEqual-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprEqual")],-1)),t[1105]||(t[1105]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1106]||(t[1106]=l('mlirAffineExprEqual(lhs, rhs)
Returns true
if the two affine expressions are equal.
mlirAffineExprGetContext(affineExpr)
Gets the context that owns the affine expression.
',3))]),e("details",zl,[e("summary",null,[t[1110]||(t[1110]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprGetLargestKnownDivisor-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineExprGetLargestKnownDivisor-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprGetLargestKnownDivisor")],-1)),t[1111]||(t[1111]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1112]||(t[1112]=l('mlirAffineExprGetLargestKnownDivisor(affineExpr)
Returns the greatest known integral divisor of this affine expression. The result is always positive.
',3))]),e("details",wl,[e("summary",null,[t[1113]||(t[1113]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprIsAAdd-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineExprIsAAdd-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprIsAAdd")],-1)),t[1114]||(t[1114]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1115]||(t[1115]=l('mlirAffineExprIsAAdd(affineExpr)
Checks whether the given affine expression is an add expression.
',3))]),e("details",Sl,[e("summary",null,[t[1116]||(t[1116]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprIsABinary-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineExprIsABinary-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprIsABinary")],-1)),t[1117]||(t[1117]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1118]||(t[1118]=l('mlirAffineExprIsABinary(affineExpr)
Checks whether the given affine expression is binary.
',3))]),e("details",Nl,[e("summary",null,[t[1119]||(t[1119]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprIsACeilDiv-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineExprIsACeilDiv-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprIsACeilDiv")],-1)),t[1120]||(t[1120]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1121]||(t[1121]=l('mlirAffineExprIsACeilDiv(affineExpr)
Checks whether the given affine expression is an ceildiv expression.
',3))]),e("details",Vl,[e("summary",null,[t[1122]||(t[1122]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprIsAConstant-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineExprIsAConstant-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprIsAConstant")],-1)),t[1123]||(t[1123]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1124]||(t[1124]=l('mlirAffineExprIsAConstant(affineExpr)
Checks whether the given affine expression is a constant expression.
',3))]),e("details",ql,[e("summary",null,[t[1125]||(t[1125]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprIsADim-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineExprIsADim-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprIsADim")],-1)),t[1126]||(t[1126]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1127]||(t[1127]=l('mlirAffineExprIsADim(affineExpr)
Checks whether the given affine expression is a dimension expression.
',3))]),e("details",Ul,[e("summary",null,[t[1128]||(t[1128]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprIsAFloorDiv-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineExprIsAFloorDiv-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprIsAFloorDiv")],-1)),t[1129]||(t[1129]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1130]||(t[1130]=l('mlirAffineExprIsAFloorDiv(affineExpr)
Checks whether the given affine expression is an floordiv expression.
',3))]),e("details",Ql,[e("summary",null,[t[1131]||(t[1131]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprIsAMod-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineExprIsAMod-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprIsAMod")],-1)),t[1132]||(t[1132]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1133]||(t[1133]=l('mlirAffineExprIsAMod(affineExpr)
Checks whether the given affine expression is an mod expression.
',3))]),e("details",Wl,[e("summary",null,[t[1134]||(t[1134]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprIsAMul-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineExprIsAMul-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprIsAMul")],-1)),t[1135]||(t[1135]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1136]||(t[1136]=l('mlirAffineExprIsAMul(affineExpr)
Checks whether the given affine expression is an mul expression.
',3))]),e("details",Hl,[e("summary",null,[t[1137]||(t[1137]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprIsASymbol-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineExprIsASymbol-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprIsASymbol")],-1)),t[1138]||(t[1138]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1139]||(t[1139]=l('mlirAffineExprIsASymbol(affineExpr)
Checks whether the given affine expression is a symbol expression.
',3))]),e("details",Zl,[e("summary",null,[t[1140]||(t[1140]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprIsFunctionOfDim-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineExprIsFunctionOfDim-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprIsFunctionOfDim")],-1)),t[1141]||(t[1141]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1142]||(t[1142]=l('mlirAffineExprIsFunctionOfDim(affineExpr, position)
Checks whether the given affine expression involves AffineDimExpr 'position'.
',3))]),e("details",Jl,[e("summary",null,[t[1143]||(t[1143]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprIsMultipleOf-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineExprIsMultipleOf-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprIsMultipleOf")],-1)),t[1144]||(t[1144]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1145]||(t[1145]=l('mlirAffineExprIsMultipleOf(affineExpr, factor)
Checks whether the given affine expression is a multiple of 'factor'.
',3))]),e("details",Kl,[e("summary",null,[t[1146]||(t[1146]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineExprIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprIsNull")],-1)),t[1147]||(t[1147]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1148]||(t[1148]=l('mlirAffineExprIsNull(affineExpr)
Returns true
if the given affine expression is a null expression. Note constant zero is not a null expression.
mlirAffineExprIsPureAffine(affineExpr)
Checks whether the given affine expression is a pure affine expression, i.e. mul, floordiv, ceildic, and mod is only allowed w.r.t constants.
',3))]),e("details",Xl,[e("summary",null,[t[1152]||(t[1152]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprIsSymbolicOrConstant-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineExprIsSymbolicOrConstant-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprIsSymbolicOrConstant")],-1)),t[1153]||(t[1153]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1154]||(t[1154]=l('mlirAffineExprIsSymbolicOrConstant(affineExpr)
Checks whether the given affine expression is made out of only symbols and constants.
',3))]),e("details",Yl,[e("summary",null,[t[1155]||(t[1155]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprPrint-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirAffineExprPrint-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprPrint")],-1)),t[1156]||(t[1156]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1157]||(t[1157]=l('mlirAffineExprPrint(affineExpr, callback, userData)
Prints an affine expression by sending chunks of the string representation and forwarding userData to
callback`. Note that the callback may be called several times with consecutive chunks of the string.
mlirAffineFloorDivExprGet(lhs, rhs)
Creates an affine floordiv expression with 'lhs' and 'rhs'.
',3))]),e("details",tn,[e("summary",null,[t[1161]||(t[1161]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapAttrGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapAttrGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapAttrGet")],-1)),t[1162]||(t[1162]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1163]||(t[1163]=l('mlirAffineMapAttrGet(map)
Creates an affine map attribute wrapping the given map. The attribute belongs to the same context as the affine map.
',3))]),e("details",en,[e("summary",null,[t[1164]||(t[1164]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapAttrGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirAffineMapAttrGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapAttrGetTypeID")],-1)),t[1165]||(t[1165]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1166]||(t[1166]=l('mlirAffineMapAttrGetTypeID()
Returns the typeID of an AffineMap attribute.
',3))]),e("details",sn,[e("summary",null,[t[1167]||(t[1167]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapAttrGetValue-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapAttrGetValue-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapAttrGetValue")],-1)),t[1168]||(t[1168]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1169]||(t[1169]=l('mlirAffineMapAttrGetValue(attr)
Returns the affine map wrapped in the given affine map attribute.
',3))]),e("details",an,[e("summary",null,[t[1170]||(t[1170]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapCompressUnusedSymbols-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirAffineMapCompressUnusedSymbols-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapCompressUnusedSymbols")],-1)),t[1171]||(t[1171]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1172]||(t[1172]=l('mlirAffineMapCompressUnusedSymbols(affineMaps, size, result, populateResult)
Returns the simplified affine map resulting from dropping the symbols that do not appear in any of the individual maps in affineMaps
. Asserts that all maps in affineMaps
are normalized to the same number of dims and symbols. Takes a callback populateResult
to fill the res
container with value m
at entry idx
. This allows returning without worrying about ownership considerations.
mlirAffineMapConstantGet(ctx, val)
Creates a single constant result affine map in the context. The affine map is owned by the context.
',3))]),e("details",nn,[e("summary",null,[t[1176]||(t[1176]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapDump-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapDump-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapDump")],-1)),t[1177]||(t[1177]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1178]||(t[1178]=l('mlirAffineMapDump(affineMap)
Prints the affine map to the standard error stream.
',3))]),e("details",pn,[e("summary",null,[t[1179]||(t[1179]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapEmptyGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapEmptyGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapEmptyGet")],-1)),t[1180]||(t[1180]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1181]||(t[1181]=l('mlirAffineMapEmptyGet(ctx)
Creates a zero result affine map with no dimensions or symbols in the context. The affine map is owned by the context.
',3))]),e("details",rn,[e("summary",null,[t[1182]||(t[1182]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapEqual-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineMapEqual-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapEqual")],-1)),t[1183]||(t[1183]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1184]||(t[1184]=l('mlirAffineMapEqual(a1, a2)
Checks if two affine maps are equal.
',3))]),e("details",on,[e("summary",null,[t[1185]||(t[1185]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapGet-NTuple{5, Any}",href:"#Reactant.MLIR.API.mlirAffineMapGet-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapGet")],-1)),t[1186]||(t[1186]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1187]||(t[1187]=l('mlirAffineMapGet(ctx, dimCount, symbolCount, nAffineExprs, affineExprs)
Creates an affine map with results defined by the given list of affine expressions. The map resulting map also has the requested number of input dimensions and symbols, regardless of them being used in the results.
',3))]),e("details",dn,[e("summary",null,[t[1188]||(t[1188]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapGetContext-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapGetContext-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapGetContext")],-1)),t[1189]||(t[1189]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1190]||(t[1190]=l('mlirAffineMapGetContext(affineMap)
Gets the context that the given affine map was created with
',3))]),e("details",cn,[e("summary",null,[t[1191]||(t[1191]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapGetMajorSubMap-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineMapGetMajorSubMap-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapGetMajorSubMap")],-1)),t[1192]||(t[1192]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1193]||(t[1193]=l('mlirAffineMapGetMajorSubMap(affineMap, numResults)
Returns the affine map consisting of the most major numResults
results. Returns the null AffineMap if the numResults
is equal to zero. Returns the affineMap
if numResults
is greater or equals to number of results of the given affine map.
mlirAffineMapGetMinorSubMap(affineMap, numResults)
Returns the affine map consisting of the most minor numResults
results. Returns the null AffineMap if the numResults
is equal to zero. Returns the affineMap
if numResults
is greater or equals to number of results of the given affine map.
mlirAffineMapGetNumDims(affineMap)
Returns the number of dimensions of the given affine map.
',3))]),e("details",bn,[e("summary",null,[t[1200]||(t[1200]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapGetNumInputs-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapGetNumInputs-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapGetNumInputs")],-1)),t[1201]||(t[1201]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1202]||(t[1202]=l('mlirAffineMapGetNumInputs(affineMap)
Returns the number of inputs (dimensions + symbols) of the given affine map.
',3))]),e("details",gn,[e("summary",null,[t[1203]||(t[1203]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapGetNumResults-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapGetNumResults-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapGetNumResults")],-1)),t[1204]||(t[1204]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1205]||(t[1205]=l('mlirAffineMapGetNumResults(affineMap)
Returns the number of results of the given affine map.
',3))]),e("details",yn,[e("summary",null,[t[1206]||(t[1206]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapGetNumSymbols-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapGetNumSymbols-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapGetNumSymbols")],-1)),t[1207]||(t[1207]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1208]||(t[1208]=l('mlirAffineMapGetNumSymbols(affineMap)
Returns the number of symbols of the given affine map.
',3))]),e("details",mn,[e("summary",null,[t[1209]||(t[1209]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapGetResult-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineMapGetResult-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapGetResult")],-1)),t[1210]||(t[1210]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1211]||(t[1211]=l('mlirAffineMapGetResult(affineMap, pos)
Returns the result at the given position.
',3))]),e("details",kn,[e("summary",null,[t[1212]||(t[1212]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapGetSingleConstantResult-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapGetSingleConstantResult-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapGetSingleConstantResult")],-1)),t[1213]||(t[1213]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1214]||(t[1214]=l('mlirAffineMapGetSingleConstantResult(affineMap)
Returns the constant result of the given affine map. The function asserts that the map has a single constant result.
',3))]),e("details",fn,[e("summary",null,[t[1215]||(t[1215]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapGetSubMap-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirAffineMapGetSubMap-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapGetSubMap")],-1)),t[1216]||(t[1216]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1217]||(t[1217]=l('mlirAffineMapGetSubMap(affineMap, size, resultPos)
Returns the affine map consisting of the resultPos
subset.
mlirAffineMapIsEmpty(affineMap)
Checks whether the given affine map is an empty affine map.
',3))]),e("details",In,[e("summary",null,[t[1221]||(t[1221]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapIsIdentity-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapIsIdentity-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapIsIdentity")],-1)),t[1222]||(t[1222]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1223]||(t[1223]=l('mlirAffineMapIsIdentity(affineMap)
Checks whether the given affine map is an identity affine map. The function asserts that the number of dimensions is greater or equal to the number of results.
',3))]),e("details",jn,[e("summary",null,[t[1224]||(t[1224]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapIsMinorIdentity-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapIsMinorIdentity-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapIsMinorIdentity")],-1)),t[1225]||(t[1225]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1226]||(t[1226]=l('mlirAffineMapIsMinorIdentity(affineMap)
Checks whether the given affine map is a minor identity affine map.
',3))]),e("details",Mn,[e("summary",null,[t[1227]||(t[1227]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapIsNull")],-1)),t[1228]||(t[1228]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1229]||(t[1229]=l('mlirAffineMapIsNull(affineMap)
Checks whether an affine map is null.
',3))]),e("details",An,[e("summary",null,[t[1230]||(t[1230]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapIsPermutation-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapIsPermutation-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapIsPermutation")],-1)),t[1231]||(t[1231]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1232]||(t[1232]=l('mlirAffineMapIsPermutation(affineMap)
Checks whether the given affine map represents a symbol-less permutation map.
',3))]),e("details",Ln,[e("summary",null,[t[1233]||(t[1233]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapIsProjectedPermutation-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapIsProjectedPermutation-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapIsProjectedPermutation")],-1)),t[1234]||(t[1234]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1235]||(t[1235]=l('mlirAffineMapIsProjectedPermutation(affineMap)
Checks whether the given affine map represents a subset of a symbol-less permutation map.
',3))]),e("details",En,[e("summary",null,[t[1236]||(t[1236]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapIsSingleConstant-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapIsSingleConstant-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapIsSingleConstant")],-1)),t[1237]||(t[1237]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1238]||(t[1238]=l('mlirAffineMapIsSingleConstant(affineMap)
Checks whether the given affine map is a single result constant affine map.
',3))]),e("details",vn,[e("summary",null,[t[1239]||(t[1239]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapMinorIdentityGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirAffineMapMinorIdentityGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapMinorIdentityGet")],-1)),t[1240]||(t[1240]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1241]||(t[1241]=l('mlirAffineMapMinorIdentityGet(ctx, dims, results)
Creates an identity affine map on the most minor dimensions in the context. The affine map is owned by the context. The function asserts that the number of dimensions is greater or equal to the number of results.
',3))]),e("details",Tn,[e("summary",null,[t[1242]||(t[1242]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapMultiDimIdentityGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineMapMultiDimIdentityGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapMultiDimIdentityGet")],-1)),t[1243]||(t[1243]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1244]||(t[1244]=l('mlirAffineMapMultiDimIdentityGet(ctx, numDims)
Creates an affine map with 'numDims' identity in the context. The affine map is owned by the context.
',3))]),e("details",Cn,[e("summary",null,[t[1245]||(t[1245]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapPermutationGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirAffineMapPermutationGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapPermutationGet")],-1)),t[1246]||(t[1246]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1247]||(t[1247]=l('mlirAffineMapPermutationGet(ctx, size, permutation)
Creates an affine map with a permutation expression and its size in the context. The permutation expression is a non-empty vector of integers. The elements of the permutation vector must be continuous from 0 and cannot be repeated (i.e. [1,2,0]
is a valid permutation. [2,0]
or [1,1,2]
is an invalid permutation.) The affine map is owned by the context.
mlirAffineMapPrint(affineMap, callback, userData)
Prints an affine map by sending chunks of the string representation and forwarding userData to
callback`. Note that the callback may be called several times with consecutive chunks of the string.
mlirAffineMapReplace(affineMap, expression, replacement, numResultDims, numResultSyms)
Apply AffineExpr::replace(map
) to each of the results and return a new new AffineMap with the new results and the specified number of dims and symbols.
mlirAffineMapZeroResultGet(ctx, dimCount, symbolCount)
Creates a zero result affine map of the given dimensions and symbols in the context. The affine map is owned by the context.
',3))]),e("details",Dn,[e("summary",null,[t[1257]||(t[1257]=e("a",{id:"Reactant.MLIR.API.mlirAffineModExprGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineModExprGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineModExprGet")],-1)),t[1258]||(t[1258]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1259]||(t[1259]=l('mlirAffineModExprGet(lhs, rhs)
Creates an affine mod expression with 'lhs' and 'rhs'.
',3))]),e("details",On,[e("summary",null,[t[1260]||(t[1260]=e("a",{id:"Reactant.MLIR.API.mlirAffineMulExprGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineMulExprGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMulExprGet")],-1)),t[1261]||(t[1261]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1262]||(t[1262]=l('mlirAffineMulExprGet(lhs, rhs)
Creates an affine mul expression with 'lhs' and 'rhs'.
',3))]),e("details",Bn,[e("summary",null,[t[1263]||(t[1263]=e("a",{id:"Reactant.MLIR.API.mlirAffineSymbolExprGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineSymbolExprGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineSymbolExprGet")],-1)),t[1264]||(t[1264]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1265]||(t[1265]=l('mlirAffineSymbolExprGet(ctx, position)
Creates an affine symbol expression with 'position' in the context.
',3))]),e("details",Gn,[e("summary",null,[t[1266]||(t[1266]=e("a",{id:"Reactant.MLIR.API.mlirAffineSymbolExprGetPosition-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineSymbolExprGetPosition-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineSymbolExprGetPosition")],-1)),t[1267]||(t[1267]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1268]||(t[1268]=l('mlirAffineSymbolExprGetPosition(affineExpr)
Returns the position of the given affine symbol expression.
',3))]),e("details",zn,[e("summary",null,[t[1269]||(t[1269]=e("a",{id:"Reactant.MLIR.API.mlirAnyQuantizedTypeGet-NTuple{5, Any}",href:"#Reactant.MLIR.API.mlirAnyQuantizedTypeGet-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAnyQuantizedTypeGet")],-1)),t[1270]||(t[1270]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1271]||(t[1271]=l('mlirAnyQuantizedTypeGet(flags, storageType, expressedType, storageTypeMin, storageTypeMax)
Creates an instance of AnyQuantizedType with the given parameters in the same context as storageType
and returns it. The instance is owned by the context.
mlirArrayAttrGet(ctx, numElements, elements)
Creates an array element containing the given list of elements in the given context.
',3))]),e("details",Sn,[e("summary",null,[t[1275]||(t[1275]=e("a",{id:"Reactant.MLIR.API.mlirArrayAttrGetElement-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirArrayAttrGetElement-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirArrayAttrGetElement")],-1)),t[1276]||(t[1276]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1277]||(t[1277]=l('mlirArrayAttrGetElement(attr, pos)
Returns pos-th element stored in the given array attribute.
',3))]),e("details",Nn,[e("summary",null,[t[1278]||(t[1278]=e("a",{id:"Reactant.MLIR.API.mlirArrayAttrGetNumElements-Tuple{Any}",href:"#Reactant.MLIR.API.mlirArrayAttrGetNumElements-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirArrayAttrGetNumElements")],-1)),t[1279]||(t[1279]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1280]||(t[1280]=l('mlirArrayAttrGetNumElements(attr)
Returns the number of elements stored in the given array attribute.
',3))]),e("details",Vn,[e("summary",null,[t[1281]||(t[1281]=e("a",{id:"Reactant.MLIR.API.mlirArrayAttrGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirArrayAttrGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirArrayAttrGetTypeID")],-1)),t[1282]||(t[1282]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1283]||(t[1283]=l('mlirArrayAttrGetTypeID()
Returns the typeID of an Array attribute.
',3))]),e("details",qn,[e("summary",null,[t[1284]||(t[1284]=e("a",{id:"Reactant.MLIR.API.mlirAsmStateCreateForOperation-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAsmStateCreateForOperation-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAsmStateCreateForOperation")],-1)),t[1285]||(t[1285]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1286]||(t[1286]=l('mlirAsmStateCreateForOperation(op, flags)
Creates new AsmState, as with AsmState the IR should not be mutated in-between using this state. Must be freed with a call to mlirAsmStateDestroy
().
mlirAsmStateCreateForValue(value, flags)
Creates new AsmState from value. Must be freed with a call to mlirAsmStateDestroy
().
mlirAsmStateDestroy(state)
Destroys printing flags created with mlirAsmStateCreate.
',3))]),e("details",Wn,[e("summary",null,[t[1293]||(t[1293]=e("a",{id:"Reactant.MLIR.API.mlirAttributeDump-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeDump-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeDump")],-1)),t[1294]||(t[1294]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1295]||(t[1295]=l('mlirAttributeDump(attr)
Prints the attribute to the standard error stream.
',3))]),e("details",Hn,[e("summary",null,[t[1296]||(t[1296]=e("a",{id:"Reactant.MLIR.API.mlirAttributeEqual-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAttributeEqual-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeEqual")],-1)),t[1297]||(t[1297]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1298]||(t[1298]=l('mlirAttributeEqual(a1, a2)
Checks if two attributes are equal.
',3))]),e("details",Zn,[e("summary",null,[t[1299]||(t[1299]=e("a",{id:"Reactant.MLIR.API.mlirAttributeGetContext-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeGetContext-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeGetContext")],-1)),t[1300]||(t[1300]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1301]||(t[1301]=l('mlirAttributeGetContext(attribute)
Gets the context that an attribute was created with.
',3))]),e("details",Jn,[e("summary",null,[t[1302]||(t[1302]=e("a",{id:"Reactant.MLIR.API.mlirAttributeGetDialect-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeGetDialect-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeGetDialect")],-1)),t[1303]||(t[1303]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1304]||(t[1304]=l('mlirAttributeGetDialect(attribute)
Gets the dialect of the attribute.
',3))]),e("details",Kn,[e("summary",null,[t[1305]||(t[1305]=e("a",{id:"Reactant.MLIR.API.mlirAttributeGetNull-Tuple{}",href:"#Reactant.MLIR.API.mlirAttributeGetNull-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeGetNull")],-1)),t[1306]||(t[1306]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1307]||(t[1307]=l('mlirAttributeGetNull()
Returns an empty attribute.
',3))]),e("details",$n,[e("summary",null,[t[1308]||(t[1308]=e("a",{id:"Reactant.MLIR.API.mlirAttributeGetType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeGetType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeGetType")],-1)),t[1309]||(t[1309]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1310]||(t[1310]=l('mlirAttributeGetType(attribute)
Gets the type of this attribute.
',3))]),e("details",Xn,[e("summary",null,[t[1311]||(t[1311]=e("a",{id:"Reactant.MLIR.API.mlirAttributeGetTypeID-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeGetTypeID-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeGetTypeID")],-1)),t[1312]||(t[1312]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1313]||(t[1313]=l('mlirAttributeGetTypeID(attribute)
Gets the type id of the attribute.
',3))]),e("details",Yn,[e("summary",null,[t[1314]||(t[1314]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsAAffineMap-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsAAffineMap-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsAAffineMap")],-1)),t[1315]||(t[1315]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1316]||(t[1316]=l('mlirAttributeIsAAffineMap(attr)
Checks whether the given attribute is an affine map attribute.
',3))]),e("details",_n,[e("summary",null,[t[1317]||(t[1317]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsAArray-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsAArray-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsAArray")],-1)),t[1318]||(t[1318]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1319]||(t[1319]=l('mlirAttributeIsAArray(attr)
Checks whether the given attribute is an array attribute.
',3))]),e("details",tp,[e("summary",null,[t[1320]||(t[1320]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsABool-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsABool-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsABool")],-1)),t[1321]||(t[1321]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1322]||(t[1322]=l('mlirAttributeIsABool(attr)
Checks whether the given attribute is a bool attribute.
',3))]),e("details",ep,[e("summary",null,[t[1323]||(t[1323]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsADenseBoolArray-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsADenseBoolArray-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsADenseBoolArray")],-1)),t[1324]||(t[1324]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1325]||(t[1325]=l('mlirAttributeIsADenseBoolArray(attr)
Checks whether the given attribute is a dense array attribute.
',3))]),e("details",sp,[e("summary",null,[t[1326]||(t[1326]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsADenseElements-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsADenseElements-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsADenseElements")],-1)),t[1327]||(t[1327]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1328]||(t[1328]=l('mlirAttributeIsADenseElements(attr)
Checks whether the given attribute is a dense elements attribute.
',3))]),e("details",ap,[e("summary",null,[t[1329]||(t[1329]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsADictionary-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsADictionary-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsADictionary")],-1)),t[1330]||(t[1330]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1331]||(t[1331]=l('mlirAttributeIsADictionary(attr)
Checks whether the given attribute is a dictionary attribute.
',3))]),e("details",ip,[e("summary",null,[t[1332]||(t[1332]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsAElements-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsAElements-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsAElements")],-1)),t[1333]||(t[1333]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1334]||(t[1334]=l('mlirAttributeIsAElements(attr)
Checks whether the given attribute is an elements attribute.
',3))]),e("details",lp,[e("summary",null,[t[1335]||(t[1335]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsAFlatSymbolRef-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsAFlatSymbolRef-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsAFlatSymbolRef")],-1)),t[1336]||(t[1336]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1337]||(t[1337]=l('mlirAttributeIsAFlatSymbolRef(attr)
Checks whether the given attribute is a flat symbol reference attribute.
',3))]),e("details",np,[e("summary",null,[t[1338]||(t[1338]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsAFloat-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsAFloat-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsAFloat")],-1)),t[1339]||(t[1339]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1340]||(t[1340]=l('mlirAttributeIsAFloat(attr)
Checks whether the given attribute is a floating point attribute.
',3))]),e("details",pp,[e("summary",null,[t[1341]||(t[1341]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsAInteger-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsAInteger-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsAInteger")],-1)),t[1342]||(t[1342]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1343]||(t[1343]=l('mlirAttributeIsAInteger(attr)
Checks whether the given attribute is an integer attribute.
',3))]),e("details",rp,[e("summary",null,[t[1344]||(t[1344]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsAIntegerSet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsAIntegerSet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsAIntegerSet")],-1)),t[1345]||(t[1345]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1346]||(t[1346]=l('mlirAttributeIsAIntegerSet(attr)
Checks whether the given attribute is an integer set attribute.
',3))]),e("details",op,[e("summary",null,[t[1347]||(t[1347]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsAOpaque-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsAOpaque-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsAOpaque")],-1)),t[1348]||(t[1348]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1349]||(t[1349]=l('mlirAttributeIsAOpaque(attr)
Checks whether the given attribute is an opaque attribute.
',3))]),e("details",dp,[e("summary",null,[t[1350]||(t[1350]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsASparseElements-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsASparseElements-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsASparseElements")],-1)),t[1351]||(t[1351]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1352]||(t[1352]=l('mlirAttributeIsASparseElements(attr)
Checks whether the given attribute is a sparse elements attribute.
',3))]),e("details",cp,[e("summary",null,[t[1353]||(t[1353]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsASparseTensorEncodingAttr-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsASparseTensorEncodingAttr-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsASparseTensorEncodingAttr")],-1)),t[1354]||(t[1354]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1355]||(t[1355]=l('mlirAttributeIsASparseTensorEncodingAttr(attr)
Checks whether the given attribute is a sparse\\_tensor.encoding
attribute.
mlirAttributeIsAString(attr)
Checks whether the given attribute is a string attribute.
',3))]),e("details",up,[e("summary",null,[t[1359]||(t[1359]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsASymbolRef-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsASymbolRef-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsASymbolRef")],-1)),t[1360]||(t[1360]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1361]||(t[1361]=l('mlirAttributeIsASymbolRef(attr)
Checks whether the given attribute is a symbol reference attribute.
',3))]),e("details",bp,[e("summary",null,[t[1362]||(t[1362]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsAType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsAType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsAType")],-1)),t[1363]||(t[1363]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1364]||(t[1364]=l('mlirAttributeIsAType(attr)
Checks whether the given attribute is a type attribute.
',3))]),e("details",gp,[e("summary",null,[t[1365]||(t[1365]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsAUnit-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsAUnit-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsAUnit")],-1)),t[1366]||(t[1366]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1367]||(t[1367]=l('mlirAttributeIsAUnit(attr)
Checks whether the given attribute is a unit attribute.
',3))]),e("details",yp,[e("summary",null,[t[1368]||(t[1368]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsNull")],-1)),t[1369]||(t[1369]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1370]||(t[1370]=l('mlirAttributeIsNull(attr)
Checks whether an attribute is null.
',3))]),e("details",mp,[e("summary",null,[t[1371]||(t[1371]=e("a",{id:"Reactant.MLIR.API.mlirAttributeParseGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAttributeParseGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeParseGet")],-1)),t[1372]||(t[1372]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1373]||(t[1373]=l('mlirAttributeParseGet(context, attr)
Parses an attribute. The attribute is owned by the context.
',3))]),e("details",kp,[e("summary",null,[t[1374]||(t[1374]=e("a",{id:"Reactant.MLIR.API.mlirAttributePrint-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirAttributePrint-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributePrint")],-1)),t[1375]||(t[1375]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1376]||(t[1376]=l('mlirAttributePrint(attr, callback, userData)
Prints an attribute by sending chunks of the string representation and forwarding userData to
callback`. Note that the callback may be called several times with consecutive chunks of the string.
mlirBF16TypeGet(ctx)
Creates a bf16 type in the given context. The type is owned by the context.
',3))]),e("details",Rp,[e("summary",null,[t[1380]||(t[1380]=e("a",{id:"Reactant.MLIR.API.mlirBFloat16TypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirBFloat16TypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBFloat16TypeGetTypeID")],-1)),t[1381]||(t[1381]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1382]||(t[1382]=l('mlirBFloat16TypeGetTypeID()
Returns the typeID of an BFloat16 type.
',3))]),e("details",Ip,[e("summary",null,[t[1383]||(t[1383]=e("a",{id:"Reactant.MLIR.API.mlirBlockAddArgument-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirBlockAddArgument-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockAddArgument")],-1)),t[1384]||(t[1384]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1385]||(t[1385]=l('mlirBlockAddArgument(block, type, loc)
Appends an argument of the specified type to the block. Returns the newly added argument.
',3))]),e("details",jp,[e("summary",null,[t[1386]||(t[1386]=e("a",{id:"Reactant.MLIR.API.mlirBlockAppendOwnedOperation-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirBlockAppendOwnedOperation-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockAppendOwnedOperation")],-1)),t[1387]||(t[1387]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1388]||(t[1388]=l('mlirBlockAppendOwnedOperation(block, operation)
Takes an operation owned by the caller and appends it to the block.
',3))]),e("details",Mp,[e("summary",null,[t[1389]||(t[1389]=e("a",{id:"Reactant.MLIR.API.mlirBlockArgumentGetArgNumber-Tuple{Any}",href:"#Reactant.MLIR.API.mlirBlockArgumentGetArgNumber-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockArgumentGetArgNumber")],-1)),t[1390]||(t[1390]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1391]||(t[1391]=l('mlirBlockArgumentGetArgNumber(value)
Returns the position of the value in the argument list of its block.
',3))]),e("details",Ap,[e("summary",null,[t[1392]||(t[1392]=e("a",{id:"Reactant.MLIR.API.mlirBlockArgumentGetOwner-Tuple{Any}",href:"#Reactant.MLIR.API.mlirBlockArgumentGetOwner-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockArgumentGetOwner")],-1)),t[1393]||(t[1393]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1394]||(t[1394]=l('mlirBlockArgumentGetOwner(value)
Returns the block in which this value is defined as an argument. Asserts if the value is not a block argument.
',3))]),e("details",Lp,[e("summary",null,[t[1395]||(t[1395]=e("a",{id:"Reactant.MLIR.API.mlirBlockArgumentSetType-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirBlockArgumentSetType-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockArgumentSetType")],-1)),t[1396]||(t[1396]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1397]||(t[1397]=l('mlirBlockArgumentSetType(value, type)
Sets the type of the block argument to the given type.
',3))]),e("details",Ep,[e("summary",null,[t[1398]||(t[1398]=e("a",{id:"Reactant.MLIR.API.mlirBlockCreate-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirBlockCreate-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockCreate")],-1)),t[1399]||(t[1399]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1400]||(t[1400]=l('mlirBlockCreate(nArgs, args, locs)
Creates a new empty block with the given argument types and transfers ownership to the caller.
',3))]),e("details",vp,[e("summary",null,[t[1401]||(t[1401]=e("a",{id:"Reactant.MLIR.API.mlirBlockDestroy-Tuple{Any}",href:"#Reactant.MLIR.API.mlirBlockDestroy-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockDestroy")],-1)),t[1402]||(t[1402]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1403]||(t[1403]=l('mlirBlockDestroy(block)
Takes a block owned by the caller and destroys it.
',3))]),e("details",Tp,[e("summary",null,[t[1404]||(t[1404]=e("a",{id:"Reactant.MLIR.API.mlirBlockDetach-Tuple{Any}",href:"#Reactant.MLIR.API.mlirBlockDetach-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockDetach")],-1)),t[1405]||(t[1405]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1406]||(t[1406]=l('mlirBlockDetach(block)
Detach a block from the owning region and assume ownership.
',3))]),e("details",Cp,[e("summary",null,[t[1407]||(t[1407]=e("a",{id:"Reactant.MLIR.API.mlirBlockEqual-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirBlockEqual-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockEqual")],-1)),t[1408]||(t[1408]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1409]||(t[1409]=l('mlirBlockEqual(block, other)
Checks whether two blocks handles point to the same block. This does not perform deep comparison.
',3))]),e("details",xp,[e("summary",null,[t[1410]||(t[1410]=e("a",{id:"Reactant.MLIR.API.mlirBlockEraseArgument-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirBlockEraseArgument-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockEraseArgument")],-1)),t[1411]||(t[1411]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1412]||(t[1412]=l('mlirBlockEraseArgument(block, index)
Erase the argument at 'index' and remove it from the argument list.
',3))]),e("details",Fp,[e("summary",null,[t[1413]||(t[1413]=e("a",{id:"Reactant.MLIR.API.mlirBlockGetArgument-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirBlockGetArgument-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockGetArgument")],-1)),t[1414]||(t[1414]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1415]||(t[1415]=l('mlirBlockGetArgument(block, pos)
Returns pos
-th argument of the block.
mlirBlockGetFirstOperation(block)
Returns the first operation in the block.
',3))]),e("details",Dp,[e("summary",null,[t[1419]||(t[1419]=e("a",{id:"Reactant.MLIR.API.mlirBlockGetNextInRegion-Tuple{Any}",href:"#Reactant.MLIR.API.mlirBlockGetNextInRegion-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockGetNextInRegion")],-1)),t[1420]||(t[1420]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1421]||(t[1421]=l('mlirBlockGetNextInRegion(block)
Returns the block immediately following the given block in its parent region.
',3))]),e("details",Op,[e("summary",null,[t[1422]||(t[1422]=e("a",{id:"Reactant.MLIR.API.mlirBlockGetNumArguments-Tuple{Any}",href:"#Reactant.MLIR.API.mlirBlockGetNumArguments-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockGetNumArguments")],-1)),t[1423]||(t[1423]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1424]||(t[1424]=l('mlirBlockGetNumArguments(block)
Returns the number of arguments of the block.
',3))]),e("details",Bp,[e("summary",null,[t[1425]||(t[1425]=e("a",{id:"Reactant.MLIR.API.mlirBlockGetParentOperation-Tuple{Any}",href:"#Reactant.MLIR.API.mlirBlockGetParentOperation-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockGetParentOperation")],-1)),t[1426]||(t[1426]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1427]||(t[1427]=l('mlirBlockGetParentOperation(arg1)
Returns the closest surrounding operation that contains this block.
',3))]),e("details",Gp,[e("summary",null,[t[1428]||(t[1428]=e("a",{id:"Reactant.MLIR.API.mlirBlockGetParentRegion-Tuple{Any}",href:"#Reactant.MLIR.API.mlirBlockGetParentRegion-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockGetParentRegion")],-1)),t[1429]||(t[1429]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1430]||(t[1430]=l('mlirBlockGetParentRegion(block)
Returns the region that contains this block.
',3))]),e("details",zp,[e("summary",null,[t[1431]||(t[1431]=e("a",{id:"Reactant.MLIR.API.mlirBlockGetTerminator-Tuple{Any}",href:"#Reactant.MLIR.API.mlirBlockGetTerminator-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockGetTerminator")],-1)),t[1432]||(t[1432]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1433]||(t[1433]=l('mlirBlockGetTerminator(block)
Returns the terminator operation in the block or null if no terminator.
',3))]),e("details",wp,[e("summary",null,[t[1434]||(t[1434]=e("a",{id:"Reactant.MLIR.API.mlirBlockInsertArgument-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirBlockInsertArgument-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockInsertArgument")],-1)),t[1435]||(t[1435]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1436]||(t[1436]=l('mlirBlockInsertArgument(block, pos, type, loc)
Inserts an argument of the specified type at a specified index to the block. Returns the newly added argument.
',3))]),e("details",Sp,[e("summary",null,[t[1437]||(t[1437]=e("a",{id:"Reactant.MLIR.API.mlirBlockInsertOwnedOperation-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirBlockInsertOwnedOperation-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockInsertOwnedOperation")],-1)),t[1438]||(t[1438]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1439]||(t[1439]=l('mlirBlockInsertOwnedOperation(block, pos, operation)
Takes an operation owned by the caller and inserts it as pos
to the block. This is an expensive operation that scans the block linearly, prefer insertBefore/After instead.
mlirBlockInsertOwnedOperationAfter(block, reference, operation)
Takes an operation owned by the caller and inserts it after the (non-owned) reference operation in the given block. If the reference is null, prepends the operation. Otherwise, the reference must belong to the block.
',3))]),e("details",Vp,[e("summary",null,[t[1443]||(t[1443]=e("a",{id:"Reactant.MLIR.API.mlirBlockInsertOwnedOperationBefore-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirBlockInsertOwnedOperationBefore-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockInsertOwnedOperationBefore")],-1)),t[1444]||(t[1444]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1445]||(t[1445]=l('mlirBlockInsertOwnedOperationBefore(block, reference, operation)
Takes an operation owned by the caller and inserts it before the (non-owned) reference operation in the given block. If the reference is null, appends the operation. Otherwise, the reference must belong to the block.
',3))]),e("details",qp,[e("summary",null,[t[1446]||(t[1446]=e("a",{id:"Reactant.MLIR.API.mlirBlockIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirBlockIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockIsNull")],-1)),t[1447]||(t[1447]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1448]||(t[1448]=l('mlirBlockIsNull(block)
Checks whether a block is null.
',3))]),e("details",Up,[e("summary",null,[t[1449]||(t[1449]=e("a",{id:"Reactant.MLIR.API.mlirBlockPrint-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirBlockPrint-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockPrint")],-1)),t[1450]||(t[1450]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1451]||(t[1451]=l('mlirBlockPrint(block, callback, userData)
Prints a block by sending chunks of the string representation and forwarding userData to
callback`. Note that the callback may be called several times with consecutive chunks of the string.
mlirBoolAttrGet(ctx, value)
Creates a bool attribute in the given context with the given value.
',3))]),e("details",Wp,[e("summary",null,[t[1455]||(t[1455]=e("a",{id:"Reactant.MLIR.API.mlirBoolAttrGetValue-Tuple{Any}",href:"#Reactant.MLIR.API.mlirBoolAttrGetValue-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBoolAttrGetValue")],-1)),t[1456]||(t[1456]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1457]||(t[1457]=l('mlirBoolAttrGetValue(attr)
Returns the value stored in the given bool attribute.
',3))]),e("details",Hp,[e("summary",null,[t[1458]||(t[1458]=e("a",{id:"Reactant.MLIR.API.mlirBytecodeWriterConfigCreate-Tuple{}",href:"#Reactant.MLIR.API.mlirBytecodeWriterConfigCreate-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBytecodeWriterConfigCreate")],-1)),t[1459]||(t[1459]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1460]||(t[1460]=l('mlirBytecodeWriterConfigCreate()
Creates new printing flags with defaults, intended for customization. Must be freed with a call to mlirBytecodeWriterConfigDestroy
().
mlirBytecodeWriterConfigDesiredEmitVersion(flags, version)
Sets the version to emit in the writer config.
',3))]),e("details",Jp,[e("summary",null,[t[1464]||(t[1464]=e("a",{id:"Reactant.MLIR.API.mlirBytecodeWriterConfigDestroy-Tuple{Any}",href:"#Reactant.MLIR.API.mlirBytecodeWriterConfigDestroy-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBytecodeWriterConfigDestroy")],-1)),t[1465]||(t[1465]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1466]||(t[1466]=l('mlirBytecodeWriterConfigDestroy(config)
Destroys printing flags created with mlirBytecodeWriterConfigCreate
.
mlirCalibratedQuantizedTypeGet(expressedType, min, max)
Creates an instance of CalibratedQuantizedType with the given parameters in the same context as expressedType
and returns it. The instance is owned by the context.
mlirCalibratedQuantizedTypeGetMax(type)
Returns the max value of the given calibrated quantized type.
',3))]),e("details",Xp,[e("summary",null,[t[1473]||(t[1473]=e("a",{id:"Reactant.MLIR.API.mlirCalibratedQuantizedTypeGetMin-Tuple{Any}",href:"#Reactant.MLIR.API.mlirCalibratedQuantizedTypeGetMin-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirCalibratedQuantizedTypeGetMin")],-1)),t[1474]||(t[1474]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1475]||(t[1475]=l('mlirCalibratedQuantizedTypeGetMin(type)
Returns the min value of the given calibrated quantized type.
',3))]),e("details",Yp,[e("summary",null,[t[1476]||(t[1476]=e("a",{id:"Reactant.MLIR.API.mlirComplexTypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirComplexTypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirComplexTypeGet")],-1)),t[1477]||(t[1477]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1478]||(t[1478]=l('mlirComplexTypeGet(elementType)
Creates a complex type with the given element type in the same context as the element type. The type is owned by the context.
',3))]),e("details",_p,[e("summary",null,[t[1479]||(t[1479]=e("a",{id:"Reactant.MLIR.API.mlirComplexTypeGetElementType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirComplexTypeGetElementType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirComplexTypeGetElementType")],-1)),t[1480]||(t[1480]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1481]||(t[1481]=l('mlirComplexTypeGetElementType(type)
Returns the element type of the given complex type.
',3))]),e("details",tr,[e("summary",null,[t[1482]||(t[1482]=e("a",{id:"Reactant.MLIR.API.mlirComplexTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirComplexTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirComplexTypeGetTypeID")],-1)),t[1483]||(t[1483]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1484]||(t[1484]=l('mlirComplexTypeGetTypeID()
Returns the typeID of an Complex type.
',3))]),e("details",er,[e("summary",null,[t[1485]||(t[1485]=e("a",{id:"Reactant.MLIR.API.mlirContextAppendDialectRegistry-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirContextAppendDialectRegistry-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextAppendDialectRegistry")],-1)),t[1486]||(t[1486]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1487]||(t[1487]=l('mlirContextAppendDialectRegistry(ctx, registry)
Append the contents of the given dialect registry to the registry associated with the context.
',3))]),e("details",sr,[e("summary",null,[t[1488]||(t[1488]=e("a",{id:"Reactant.MLIR.API.mlirContextAttachDiagnosticHandler-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirContextAttachDiagnosticHandler-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextAttachDiagnosticHandler")],-1)),t[1489]||(t[1489]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1490]||(t[1490]=l('mlirContextAttachDiagnosticHandler(context, handler, userData, deleteUserData)
Attaches the diagnostic handler to the context. Handlers are invoked in the reverse order of attachment until one of them processes the diagnostic completely. When a handler is invoked it is passed the userData
that was provided when it was attached. If non-NULL, deleteUserData
is called once the system no longer needs to call the handler (for instance after the handler is detached or the context is destroyed). Returns an identifier that can be used to detach the handler.
mlirContextCreate()
Creates an MLIR context and transfers its ownership to the caller. This sets the default multithreading option (enabled).
',3))]),e("details",ir,[e("summary",null,[t[1494]||(t[1494]=e("a",{id:"Reactant.MLIR.API.mlirContextCreateWithRegistry-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirContextCreateWithRegistry-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextCreateWithRegistry")],-1)),t[1495]||(t[1495]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1496]||(t[1496]=l('mlirContextCreateWithRegistry(registry, threadingEnabled)
Creates an MLIR context, setting the multithreading setting explicitly and pre-loading the dialects from the provided DialectRegistry.
',3))]),e("details",lr,[e("summary",null,[t[1497]||(t[1497]=e("a",{id:"Reactant.MLIR.API.mlirContextCreateWithThreading-Tuple{Any}",href:"#Reactant.MLIR.API.mlirContextCreateWithThreading-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextCreateWithThreading")],-1)),t[1498]||(t[1498]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1499]||(t[1499]=l('mlirContextCreateWithThreading(threadingEnabled)
Creates an MLIR context with an explicit setting of the multithreading setting and transfers its ownership to the caller.
',3))]),e("details",nr,[e("summary",null,[t[1500]||(t[1500]=e("a",{id:"Reactant.MLIR.API.mlirContextDestroy-Tuple{Any}",href:"#Reactant.MLIR.API.mlirContextDestroy-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextDestroy")],-1)),t[1501]||(t[1501]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1502]||(t[1502]=l('mlirContextDestroy(context)
Takes an MLIR context owned by the caller and destroys it.
',3))]),e("details",pr,[e("summary",null,[t[1503]||(t[1503]=e("a",{id:"Reactant.MLIR.API.mlirContextDetachDiagnosticHandler-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirContextDetachDiagnosticHandler-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextDetachDiagnosticHandler")],-1)),t[1504]||(t[1504]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1505]||(t[1505]=l('mlirContextDetachDiagnosticHandler(context, id)
Detaches an attached diagnostic handler from the context given its identifier.
',3))]),e("details",rr,[e("summary",null,[t[1506]||(t[1506]=e("a",{id:"Reactant.MLIR.API.mlirContextEnableMultithreading-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirContextEnableMultithreading-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextEnableMultithreading")],-1)),t[1507]||(t[1507]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1508]||(t[1508]=l('mlirContextEnableMultithreading(context, enable)
Set threading mode (must be set to false to mlir-print-ir-after-all).
',3))]),e("details",or,[e("summary",null,[t[1509]||(t[1509]=e("a",{id:"Reactant.MLIR.API.mlirContextEqual-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirContextEqual-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextEqual")],-1)),t[1510]||(t[1510]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1511]||(t[1511]=l('mlirContextEqual(ctx1, ctx2)
Checks if two contexts are equal.
',3))]),e("details",dr,[e("summary",null,[t[1512]||(t[1512]=e("a",{id:"Reactant.MLIR.API.mlirContextGetAllowUnregisteredDialects-Tuple{Any}",href:"#Reactant.MLIR.API.mlirContextGetAllowUnregisteredDialects-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextGetAllowUnregisteredDialects")],-1)),t[1513]||(t[1513]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1514]||(t[1514]=l('mlirContextGetAllowUnregisteredDialects(context)
Returns whether the context allows unregistered dialects.
',3))]),e("details",cr,[e("summary",null,[t[1515]||(t[1515]=e("a",{id:"Reactant.MLIR.API.mlirContextGetNumLoadedDialects-Tuple{Any}",href:"#Reactant.MLIR.API.mlirContextGetNumLoadedDialects-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextGetNumLoadedDialects")],-1)),t[1516]||(t[1516]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1517]||(t[1517]=l('mlirContextGetNumLoadedDialects(context)
Returns the number of dialects loaded by the context.
',3))]),e("details",hr,[e("summary",null,[t[1518]||(t[1518]=e("a",{id:"Reactant.MLIR.API.mlirContextGetNumRegisteredDialects-Tuple{Any}",href:"#Reactant.MLIR.API.mlirContextGetNumRegisteredDialects-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextGetNumRegisteredDialects")],-1)),t[1519]||(t[1519]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1520]||(t[1520]=l('mlirContextGetNumRegisteredDialects(context)
Returns the number of dialects registered with the given context. A registered dialect will be loaded if needed by the parser.
',3))]),e("details",ur,[e("summary",null,[t[1521]||(t[1521]=e("a",{id:"Reactant.MLIR.API.mlirContextGetOrLoadDialect-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirContextGetOrLoadDialect-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextGetOrLoadDialect")],-1)),t[1522]||(t[1522]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1523]||(t[1523]=l('mlirContextGetOrLoadDialect(context, name)
Gets the dialect instance owned by the given context using the dialect namespace to identify it, loads (i.e., constructs the instance of) the dialect if necessary. If the dialect is not registered with the context, returns null. Use mlirContextLoad<Name>Dialect to load an unregistered dialect.
',3))]),e("details",br,[e("summary",null,[t[1524]||(t[1524]=e("a",{id:"Reactant.MLIR.API.mlirContextIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirContextIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextIsNull")],-1)),t[1525]||(t[1525]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1526]||(t[1526]=l('mlirContextIsNull(context)
Checks whether a context is null.
',3))]),e("details",gr,[e("summary",null,[t[1527]||(t[1527]=e("a",{id:"Reactant.MLIR.API.mlirContextIsRegisteredOperation-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirContextIsRegisteredOperation-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextIsRegisteredOperation")],-1)),t[1528]||(t[1528]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1529]||(t[1529]=l('mlirContextIsRegisteredOperation(context, name)
Returns whether the given fully-qualified operation (i.e. 'dialect.operation') is registered with the context. This will return true if the dialect is loaded and the operation is registered within the dialect.
',3))]),e("details",yr,[e("summary",null,[t[1530]||(t[1530]=e("a",{id:"Reactant.MLIR.API.mlirContextLoadAllAvailableDialects-Tuple{Any}",href:"#Reactant.MLIR.API.mlirContextLoadAllAvailableDialects-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextLoadAllAvailableDialects")],-1)),t[1531]||(t[1531]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1532]||(t[1532]=l('mlirContextLoadAllAvailableDialects(context)
Eagerly loads all available dialects registered with a context, making them available for use for IR construction.
',3))]),e("details",mr,[e("summary",null,[t[1533]||(t[1533]=e("a",{id:"Reactant.MLIR.API.mlirContextSetAllowUnregisteredDialects-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirContextSetAllowUnregisteredDialects-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextSetAllowUnregisteredDialects")],-1)),t[1534]||(t[1534]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1535]||(t[1535]=l('mlirContextSetAllowUnregisteredDialects(context, allow)
Sets whether unregistered dialects are allowed in this context.
',3))]),e("details",kr,[e("summary",null,[t[1536]||(t[1536]=e("a",{id:"Reactant.MLIR.API.mlirContextSetThreadPool-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirContextSetThreadPool-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextSetThreadPool")],-1)),t[1537]||(t[1537]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1538]||(t[1538]=l('mlirContextSetThreadPool(context, threadPool)
Sets the thread pool of the context explicitly, enabling multithreading in the process. This API should be used to avoid re-creating thread pools in long-running applications that perform multiple compilations, see the C++ documentation for MLIRContext for details.
',3))]),e("details",fr,[e("summary",null,[t[1539]||(t[1539]=e("a",{id:"Reactant.MLIR.API.mlirCreateExternalPass-NTuple{9, Any}",href:"#Reactant.MLIR.API.mlirCreateExternalPass-NTuple{9, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirCreateExternalPass")],-1)),t[1540]||(t[1540]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1541]||(t[1541]=l('mlirCreateExternalPass(passID, name, argument, description, opName, nDependentDialects, dependentDialects, callbacks, userData)
Creates an external MlirPass
that calls the supplied callbacks
using the supplied userData
. If opName
is empty, the pass is a generic operation pass. Otherwise it is an operation pass specific to the specified pass name.
mlirDenseArrayGetNumElements(attr)
Get the size of a dense array.
',3))]),e("details",Ir,[e("summary",null,[t[1545]||(t[1545]=e("a",{id:"Reactant.MLIR.API.mlirDenseBoolArrayGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirDenseBoolArrayGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDenseBoolArrayGet")],-1)),t[1546]||(t[1546]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1547]||(t[1547]=l('mlirDenseBoolArrayGet(ctx, size, values)
Create a dense array attribute with the given elements.
',3))]),e("details",jr,[e("summary",null,[t[1548]||(t[1548]=e("a",{id:"Reactant.MLIR.API.mlirDenseBoolArrayGetElement-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirDenseBoolArrayGetElement-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDenseBoolArrayGetElement")],-1)),t[1549]||(t[1549]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1550]||(t[1550]=l('mlirDenseBoolArrayGetElement(attr, pos)
Get an element of a dense array.
',3))]),e("details",Mr,[e("summary",null,[t[1551]||(t[1551]=e("a",{id:"Reactant.MLIR.API.mlirDenseBoolResourceElementsAttrGetValue-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirDenseBoolResourceElementsAttrGetValue-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDenseBoolResourceElementsAttrGetValue")],-1)),t[1552]||(t[1552]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1553]||(t[1553]=l('mlirDenseBoolResourceElementsAttrGetValue(attr, pos)
Returns the pos-th value (flat contiguous indexing) of a specific type contained by the given dense resource elements attribute.
',3))]),e("details",Ar,[e("summary",null,[t[1554]||(t[1554]=e("a",{id:"Reactant.MLIR.API.mlirDenseElementsAttrBoolGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirDenseElementsAttrBoolGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDenseElementsAttrBoolGet")],-1)),t[1555]||(t[1555]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1556]||(t[1556]=l('mlirDenseElementsAttrBoolGet(shapedType, numElements, elements)
Creates a dense elements attribute with the given shaped type from elements of a specific type. Expects the element type of the shaped type to match the data element type.
',3))]),e("details",Lr,[e("summary",null,[t[1557]||(t[1557]=e("a",{id:"Reactant.MLIR.API.mlirDenseElementsAttrGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirDenseElementsAttrGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDenseElementsAttrGet")],-1)),t[1558]||(t[1558]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1559]||(t[1559]=l('mlirDenseElementsAttrGet(shapedType, numElements, elements)
Creates a dense elements attribute with the given Shaped type and elements in the same context as the type.
',3))]),e("details",Er,[e("summary",null,[t[1560]||(t[1560]=e("a",{id:"Reactant.MLIR.API.mlirDenseElementsAttrGetBoolValue-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirDenseElementsAttrGetBoolValue-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDenseElementsAttrGetBoolValue")],-1)),t[1561]||(t[1561]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1562]||(t[1562]=l('mlirDenseElementsAttrGetBoolValue(attr, pos)
Returns the pos-th value (flat contiguous indexing) of a specific type contained by the given dense elements attribute.
',3))]),e("details",vr,[e("summary",null,[t[1563]||(t[1563]=e("a",{id:"Reactant.MLIR.API.mlirDenseElementsAttrGetRawData-Tuple{Any}",href:"#Reactant.MLIR.API.mlirDenseElementsAttrGetRawData-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDenseElementsAttrGetRawData")],-1)),t[1564]||(t[1564]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1565]||(t[1565]=l('mlirDenseElementsAttrGetRawData(attr)
Returns the raw data of the given dense elements attribute.
',3))]),e("details",Tr,[e("summary",null,[t[1566]||(t[1566]=e("a",{id:"Reactant.MLIR.API.mlirDenseElementsAttrGetSplatValue-Tuple{Any}",href:"#Reactant.MLIR.API.mlirDenseElementsAttrGetSplatValue-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDenseElementsAttrGetSplatValue")],-1)),t[1567]||(t[1567]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1568]||(t[1568]=l('mlirDenseElementsAttrGetSplatValue(attr)
Returns the single replicated value (splat) of a specific type contained by the given dense elements attribute.
',3))]),e("details",Cr,[e("summary",null,[t[1569]||(t[1569]=e("a",{id:"Reactant.MLIR.API.mlirDenseElementsAttrIsSplat-Tuple{Any}",href:"#Reactant.MLIR.API.mlirDenseElementsAttrIsSplat-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDenseElementsAttrIsSplat")],-1)),t[1570]||(t[1570]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1571]||(t[1571]=l('mlirDenseElementsAttrIsSplat(attr)
Checks whether the given dense elements attribute contains a single replicated value (splat).
',3))]),e("details",xr,[e("summary",null,[t[1572]||(t[1572]=e("a",{id:"Reactant.MLIR.API.mlirDenseElementsAttrRawBufferGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirDenseElementsAttrRawBufferGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDenseElementsAttrRawBufferGet")],-1)),t[1573]||(t[1573]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1574]||(t[1574]=l('mlirDenseElementsAttrRawBufferGet(shapedType, rawBufferSize, rawBuffer)
Creates a dense elements attribute with the given Shaped type and elements populated from a packed, row-major opaque buffer of contents.
The format of the raw buffer is a densely packed array of values that can be bitcast to the storage format of the element type specified. Types that are not byte aligned will be: - For bitwidth > 1: Rounded up to the next byte. - For bitwidth = 1: Packed into 8bit bytes with bits corresponding to the linear order of the shape type from MSB to LSB, padded to on the right.
A raw buffer of a single element (or for 1-bit, a byte of value 0 or 255) will be interpreted as a splat. User code should be prepared for additional, conformant patterns to be identified as splats in the future.
',5))]),e("details",Fr,[e("summary",null,[t[1575]||(t[1575]=e("a",{id:"Reactant.MLIR.API.mlirDenseElementsAttrReshapeGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirDenseElementsAttrReshapeGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDenseElementsAttrReshapeGet")],-1)),t[1576]||(t[1576]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1577]||(t[1577]=l('mlirDenseElementsAttrReshapeGet(attr, shapedType)
Creates a dense elements attribute that has the same data as the given dense elements attribute and a different shaped type. The new type must have the same total number of elements.
',3))]),e("details",Pr,[e("summary",null,[t[1578]||(t[1578]=e("a",{id:"Reactant.MLIR.API.mlirDenseElementsAttrSplatGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirDenseElementsAttrSplatGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDenseElementsAttrSplatGet")],-1)),t[1579]||(t[1579]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1580]||(t[1580]=l('mlirDenseElementsAttrSplatGet(shapedType, element)
Creates a dense elements attribute with the given Shaped type containing a single replicated element (splat).
',3))]),e("details",Dr,[e("summary",null,[t[1581]||(t[1581]=e("a",{id:"Reactant.MLIR.API.mlirDenseElementsAttrStringGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirDenseElementsAttrStringGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDenseElementsAttrStringGet")],-1)),t[1582]||(t[1582]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1583]||(t[1583]=l('mlirDenseElementsAttrStringGet(shapedType, numElements, strs)
Creates a dense elements attribute with the given shaped type from string elements.
',3))]),e("details",Or,[e("summary",null,[t[1584]||(t[1584]=e("a",{id:"Reactant.MLIR.API.mlirDenseIntOrFPElementsAttrGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirDenseIntOrFPElementsAttrGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDenseIntOrFPElementsAttrGetTypeID")],-1)),t[1585]||(t[1585]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1586]||(t[1586]=l('mlirDenseIntOrFPElementsAttrGetTypeID()
Returns the typeID of an DenseIntOrFPElements attribute.
',3))]),e("details",Br,[e("summary",null,[t[1587]||(t[1587]=e("a",{id:"Reactant.MLIR.API.mlirDiagnosticGetLocation-Tuple{Any}",href:"#Reactant.MLIR.API.mlirDiagnosticGetLocation-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDiagnosticGetLocation")],-1)),t[1588]||(t[1588]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1589]||(t[1589]=l('mlirDiagnosticGetLocation(diagnostic)
Returns the location at which the diagnostic is reported.
',3))]),e("details",Gr,[e("summary",null,[t[1590]||(t[1590]=e("a",{id:"Reactant.MLIR.API.mlirDiagnosticGetNote-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirDiagnosticGetNote-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDiagnosticGetNote")],-1)),t[1591]||(t[1591]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1592]||(t[1592]=l('mlirDiagnosticGetNote(diagnostic, pos)
Returns pos
-th note attached to the diagnostic. Expects pos
to be a valid zero-based index into the list of notes.
mlirDiagnosticGetNumNotes(diagnostic)
Returns the number of notes attached to the diagnostic.
',3))]),e("details",wr,[e("summary",null,[t[1596]||(t[1596]=e("a",{id:"Reactant.MLIR.API.mlirDiagnosticGetSeverity-Tuple{Any}",href:"#Reactant.MLIR.API.mlirDiagnosticGetSeverity-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDiagnosticGetSeverity")],-1)),t[1597]||(t[1597]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1598]||(t[1598]=l('mlirDiagnosticGetSeverity(diagnostic)
Returns the severity of the diagnostic.
',3))]),e("details",Sr,[e("summary",null,[t[1599]||(t[1599]=e("a",{id:"Reactant.MLIR.API.mlirDiagnosticPrint-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirDiagnosticPrint-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDiagnosticPrint")],-1)),t[1600]||(t[1600]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1601]||(t[1601]=l('mlirDiagnosticPrint(diagnostic, callback, userData)
Prints a diagnostic using the provided callback.
',3))]),e("details",Nr,[e("summary",null,[t[1602]||(t[1602]=e("a",{id:"Reactant.MLIR.API.mlirDialectEqual-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirDialectEqual-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDialectEqual")],-1)),t[1603]||(t[1603]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1604]||(t[1604]=l('mlirDialectEqual(dialect1, dialect2)
Checks if two dialects that belong to the same context are equal. Dialects from different contexts will not compare equal.
',3))]),e("details",Vr,[e("summary",null,[t[1605]||(t[1605]=e("a",{id:"Reactant.MLIR.API.mlirDialectGetContext-Tuple{Any}",href:"#Reactant.MLIR.API.mlirDialectGetContext-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDialectGetContext")],-1)),t[1606]||(t[1606]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1607]||(t[1607]=l('mlirDialectGetContext(dialect)
Returns the context that owns the dialect.
',3))]),e("details",qr,[e("summary",null,[t[1608]||(t[1608]=e("a",{id:"Reactant.MLIR.API.mlirDialectGetNamespace-Tuple{Any}",href:"#Reactant.MLIR.API.mlirDialectGetNamespace-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDialectGetNamespace")],-1)),t[1609]||(t[1609]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1610]||(t[1610]=l('mlirDialectGetNamespace(dialect)
Returns the namespace of the given dialect.
',3))]),e("details",Ur,[e("summary",null,[t[1611]||(t[1611]=e("a",{id:"Reactant.MLIR.API.mlirDialectHandleGetNamespace-Tuple{Any}",href:"#Reactant.MLIR.API.mlirDialectHandleGetNamespace-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDialectHandleGetNamespace")],-1)),t[1612]||(t[1612]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1613]||(t[1613]=l('mlirDialectHandleGetNamespace(arg1)
Returns the namespace associated with the provided dialect handle.
',3))]),e("details",Qr,[e("summary",null,[t[1614]||(t[1614]=e("a",{id:"Reactant.MLIR.API.mlirDialectHandleInsertDialect-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirDialectHandleInsertDialect-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDialectHandleInsertDialect")],-1)),t[1615]||(t[1615]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1616]||(t[1616]=l('mlirDialectHandleInsertDialect(arg1, arg2)
Inserts the dialect associated with the provided dialect handle into the provided dialect registry
',3))]),e("details",Wr,[e("summary",null,[t[1617]||(t[1617]=e("a",{id:"Reactant.MLIR.API.mlirDialectHandleLoadDialect-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirDialectHandleLoadDialect-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDialectHandleLoadDialect")],-1)),t[1618]||(t[1618]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1619]||(t[1619]=l('mlirDialectHandleLoadDialect(arg1, arg2)
Loads the dialect associated with the provided dialect handle.
',3))]),e("details",Hr,[e("summary",null,[t[1620]||(t[1620]=e("a",{id:"Reactant.MLIR.API.mlirDialectHandleRegisterDialect-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirDialectHandleRegisterDialect-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDialectHandleRegisterDialect")],-1)),t[1621]||(t[1621]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1622]||(t[1622]=l('mlirDialectHandleRegisterDialect(arg1, arg2)
Registers the dialect associated with the provided dialect handle.
',3))]),e("details",Zr,[e("summary",null,[t[1623]||(t[1623]=e("a",{id:"Reactant.MLIR.API.mlirDialectIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirDialectIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDialectIsNull")],-1)),t[1624]||(t[1624]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1625]||(t[1625]=l('mlirDialectIsNull(dialect)
Checks if the dialect is null.
',3))]),e("details",Jr,[e("summary",null,[t[1626]||(t[1626]=e("a",{id:"Reactant.MLIR.API.mlirDialectRegistryCreate-Tuple{}",href:"#Reactant.MLIR.API.mlirDialectRegistryCreate-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDialectRegistryCreate")],-1)),t[1627]||(t[1627]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1628]||(t[1628]=l('mlirDialectRegistryCreate()
Creates a dialect registry and transfers its ownership to the caller.
',3))]),e("details",Kr,[e("summary",null,[t[1629]||(t[1629]=e("a",{id:"Reactant.MLIR.API.mlirDialectRegistryDestroy-Tuple{Any}",href:"#Reactant.MLIR.API.mlirDialectRegistryDestroy-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDialectRegistryDestroy")],-1)),t[1630]||(t[1630]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1631]||(t[1631]=l('mlirDialectRegistryDestroy(registry)
Takes a dialect registry owned by the caller and destroys it.
',3))]),e("details",$r,[e("summary",null,[t[1632]||(t[1632]=e("a",{id:"Reactant.MLIR.API.mlirDialectRegistryIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirDialectRegistryIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDialectRegistryIsNull")],-1)),t[1633]||(t[1633]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1634]||(t[1634]=l('mlirDialectRegistryIsNull(registry)
Checks if the dialect registry is null.
',3))]),e("details",Xr,[e("summary",null,[t[1635]||(t[1635]=e("a",{id:"Reactant.MLIR.API.mlirDictionaryAttrGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirDictionaryAttrGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDictionaryAttrGet")],-1)),t[1636]||(t[1636]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1637]||(t[1637]=l('mlirDictionaryAttrGet(ctx, numElements, elements)
Creates a dictionary attribute containing the given list of elements in the provided context.
',3))]),e("details",Yr,[e("summary",null,[t[1638]||(t[1638]=e("a",{id:"Reactant.MLIR.API.mlirDictionaryAttrGetElement-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirDictionaryAttrGetElement-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDictionaryAttrGetElement")],-1)),t[1639]||(t[1639]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1640]||(t[1640]=l('mlirDictionaryAttrGetElement(attr, pos)
Returns pos-th element of the given dictionary attribute.
',3))]),e("details",_r,[e("summary",null,[t[1641]||(t[1641]=e("a",{id:"Reactant.MLIR.API.mlirDictionaryAttrGetElementByName-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirDictionaryAttrGetElementByName-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDictionaryAttrGetElementByName")],-1)),t[1642]||(t[1642]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1643]||(t[1643]=l('mlirDictionaryAttrGetElementByName(attr, name)
Returns the dictionary attribute element with the given name or NULL if the given name does not exist in the dictionary.
',3))]),e("details",to,[e("summary",null,[t[1644]||(t[1644]=e("a",{id:"Reactant.MLIR.API.mlirDictionaryAttrGetNumElements-Tuple{Any}",href:"#Reactant.MLIR.API.mlirDictionaryAttrGetNumElements-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDictionaryAttrGetNumElements")],-1)),t[1645]||(t[1645]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1646]||(t[1646]=l('mlirDictionaryAttrGetNumElements(attr)
Returns the number of attributes contained in a dictionary attribute.
',3))]),e("details",eo,[e("summary",null,[t[1647]||(t[1647]=e("a",{id:"Reactant.MLIR.API.mlirDictionaryAttrGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirDictionaryAttrGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDictionaryAttrGetTypeID")],-1)),t[1648]||(t[1648]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1649]||(t[1649]=l('mlirDictionaryAttrGetTypeID()
Returns the typeID of a Dictionary attribute.
',3))]),e("details",so,[e("summary",null,[t[1650]||(t[1650]=e("a",{id:"Reactant.MLIR.API.mlirDisctinctAttrCreate-Tuple{Any}",href:"#Reactant.MLIR.API.mlirDisctinctAttrCreate-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDisctinctAttrCreate")],-1)),t[1651]||(t[1651]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1652]||(t[1652]=l('mlirDisctinctAttrCreate(referencedAttr)
Creates a DisctinctAttr with the referenced attribute.
',3))]),e("details",ao,[e("summary",null,[t[1653]||(t[1653]=e("a",{id:"Reactant.MLIR.API.mlirElementsAttrGetNumElements-Tuple{Any}",href:"#Reactant.MLIR.API.mlirElementsAttrGetNumElements-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirElementsAttrGetNumElements")],-1)),t[1654]||(t[1654]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1655]||(t[1655]=l('mlirElementsAttrGetNumElements(attr)
Gets the total number of elements in the given elements attribute. In order to iterate over the attribute, obtain its type, which must be a statically shaped type and use its sizes to build a multi-dimensional index.
',3))]),e("details",io,[e("summary",null,[t[1656]||(t[1656]=e("a",{id:"Reactant.MLIR.API.mlirElementsAttrGetValue-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirElementsAttrGetValue-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirElementsAttrGetValue")],-1)),t[1657]||(t[1657]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1658]||(t[1658]=l('mlirElementsAttrGetValue(attr, rank, idxs)
Returns the element at the given rank-dimensional index.
',3))]),e("details",lo,[e("summary",null,[t[1659]||(t[1659]=e("a",{id:"Reactant.MLIR.API.mlirElementsAttrIsValidIndex-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirElementsAttrIsValidIndex-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirElementsAttrIsValidIndex")],-1)),t[1660]||(t[1660]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1661]||(t[1661]=l('mlirElementsAttrIsValidIndex(attr, rank, idxs)
Checks whether the given rank-dimensional index is valid in the given elements attribute.
',3))]),e("details",no,[e("summary",null,[t[1662]||(t[1662]=e("a",{id:"Reactant.MLIR.API.mlirEmitError-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirEmitError-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirEmitError")],-1)),t[1663]||(t[1663]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1664]||(t[1664]=l('mlirEmitError(location, message)
Emits an error at the given location through the diagnostics engine. Used for testing purposes.
',3))]),e("details",po,[e("summary",null,[t[1665]||(t[1665]=e("a",{id:"Reactant.MLIR.API.mlirEnableGlobalDebug-Tuple{Any}",href:"#Reactant.MLIR.API.mlirEnableGlobalDebug-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirEnableGlobalDebug")],-1)),t[1666]||(t[1666]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1667]||(t[1667]=l('mlirEnableGlobalDebug(enable)
Sets the global debugging flag.
',3))]),e("details",ro,[e("summary",null,[t[1668]||(t[1668]=e("a",{id:"Reactant.MLIR.API.mlirExecutionEngineCreate-NTuple{5, Any}",href:"#Reactant.MLIR.API.mlirExecutionEngineCreate-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirExecutionEngineCreate")],-1)),t[1669]||(t[1669]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1670]||(t[1670]=l('mlirExecutionEngineCreate(op, optLevel, numPaths, sharedLibPaths, enableObjectDump)
Creates an ExecutionEngine for the provided ModuleOp. The ModuleOp is expected to be "translatable" to LLVM IR (only contains operations in dialects that implement the LLVMTranslationDialectInterface
). The module ownership stays with the client and can be destroyed as soon as the call returns. optLevel
is the optimization level to be used for transformation and code generation. LLVM passes at optLevel
are run before code generation. The number and array of paths corresponding to shared libraries that will be loaded are specified via numPaths
and sharedLibPaths
respectively. TODO: figure out other options.
mlirExecutionEngineDestroy(jit)
Destroy an ExecutionEngine instance.
',3))]),e("details",co,[e("summary",null,[t[1674]||(t[1674]=e("a",{id:"Reactant.MLIR.API.mlirExecutionEngineDumpToObjectFile-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirExecutionEngineDumpToObjectFile-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirExecutionEngineDumpToObjectFile")],-1)),t[1675]||(t[1675]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1676]||(t[1676]=l('mlirExecutionEngineDumpToObjectFile(jit, fileName)
Dump as an object in fileName
.
mlirExecutionEngineInvokePacked(jit, name, arguments)
Invoke a native function in the execution engine by name with the arguments and result of the invoked function passed as an array of pointers. The function must have been tagged with the llvm.emit\\_c\\_interface
attribute. Returns a failure if the execution fails for any reason (the function name can't be resolved for instance).
mlirExecutionEngineIsNull(jit)
Checks whether an execution engine is null.
',3))]),e("details",bo,[e("summary",null,[t[1683]||(t[1683]=e("a",{id:"Reactant.MLIR.API.mlirExecutionEngineLookup-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirExecutionEngineLookup-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirExecutionEngineLookup")],-1)),t[1684]||(t[1684]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1685]||(t[1685]=l('mlirExecutionEngineLookup(jit, name)
Lookup a native function in the execution engine by name, returns nullptr if the name can't be looked-up.
',3))]),e("details",go,[e("summary",null,[t[1686]||(t[1686]=e("a",{id:"Reactant.MLIR.API.mlirExecutionEngineLookupPacked-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirExecutionEngineLookupPacked-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirExecutionEngineLookupPacked")],-1)),t[1687]||(t[1687]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1688]||(t[1688]=l('mlirExecutionEngineLookupPacked(jit, name)
Lookup the wrapper of the native function in the execution engine with the given name, returns nullptr if the function can't be looked-up.
',3))]),e("details",yo,[e("summary",null,[t[1689]||(t[1689]=e("a",{id:"Reactant.MLIR.API.mlirExecutionEngineRegisterSymbol-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirExecutionEngineRegisterSymbol-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirExecutionEngineRegisterSymbol")],-1)),t[1690]||(t[1690]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1691]||(t[1691]=l('mlirExecutionEngineRegisterSymbol(jit, name, sym)
Register a symbol with the jit: this symbol will be accessible to the jitted code.
',3))]),e("details",mo,[e("summary",null,[t[1692]||(t[1692]=e("a",{id:"Reactant.MLIR.API.mlirExternalPassSignalFailure-Tuple{Any}",href:"#Reactant.MLIR.API.mlirExternalPassSignalFailure-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirExternalPassSignalFailure")],-1)),t[1693]||(t[1693]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1694]||(t[1694]=l('mlirExternalPassSignalFailure(pass)
This signals that the pass has failed. This is only valid to call during the run
callback of MlirExternalPassCallbacks
. See Pass::signalPassFailure().
mlirF16TypeGet(ctx)
Creates an f16 type in the given context. The type is owned by the context.
',3))]),e("details",fo,[e("summary",null,[t[1698]||(t[1698]=e("a",{id:"Reactant.MLIR.API.mlirF32TypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirF32TypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirF32TypeGet")],-1)),t[1699]||(t[1699]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1700]||(t[1700]=l('mlirF32TypeGet(ctx)
Creates an f32 type in the given context. The type is owned by the context.
',3))]),e("details",Ro,[e("summary",null,[t[1701]||(t[1701]=e("a",{id:"Reactant.MLIR.API.mlirF64TypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirF64TypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirF64TypeGet")],-1)),t[1702]||(t[1702]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1703]||(t[1703]=l('mlirF64TypeGet(ctx)
Creates a f64 type in the given context. The type is owned by the context.
',3))]),e("details",Io,[e("summary",null,[t[1704]||(t[1704]=e("a",{id:"Reactant.MLIR.API.mlirFlatSymbolRefAttrGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirFlatSymbolRefAttrGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFlatSymbolRefAttrGet")],-1)),t[1705]||(t[1705]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1706]||(t[1706]=l('mlirFlatSymbolRefAttrGet(ctx, symbol)
Creates a flat symbol reference attribute in the given context referencing a symbol identified by the given string.
',3))]),e("details",jo,[e("summary",null,[t[1707]||(t[1707]=e("a",{id:"Reactant.MLIR.API.mlirFlatSymbolRefAttrGetValue-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFlatSymbolRefAttrGetValue-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFlatSymbolRefAttrGetValue")],-1)),t[1708]||(t[1708]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1709]||(t[1709]=l('mlirFlatSymbolRefAttrGetValue(attr)
Returns the referenced symbol as a string reference. The data remains live as long as the context in which the attribute lives.
',3))]),e("details",Mo,[e("summary",null,[t[1710]||(t[1710]=e("a",{id:"Reactant.MLIR.API.mlirFloat16TypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFloat16TypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat16TypeGetTypeID")],-1)),t[1711]||(t[1711]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1712]||(t[1712]=l('mlirFloat16TypeGetTypeID()
Returns the typeID of an Float16 type.
',3))]),e("details",Ao,[e("summary",null,[t[1713]||(t[1713]=e("a",{id:"Reactant.MLIR.API.mlirFloat32TypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFloat32TypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat32TypeGetTypeID")],-1)),t[1714]||(t[1714]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1715]||(t[1715]=l('mlirFloat32TypeGetTypeID()
Returns the typeID of an Float32 type.
',3))]),e("details",Lo,[e("summary",null,[t[1716]||(t[1716]=e("a",{id:"Reactant.MLIR.API.mlirFloat4E2M1FNTypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFloat4E2M1FNTypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat4E2M1FNTypeGet")],-1)),t[1717]||(t[1717]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1718]||(t[1718]=l('mlirFloat4E2M1FNTypeGet(ctx)
Creates an f4E2M1FN type in the given context. The type is owned by the context.
',3))]),e("details",Eo,[e("summary",null,[t[1719]||(t[1719]=e("a",{id:"Reactant.MLIR.API.mlirFloat4E2M1FNTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFloat4E2M1FNTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat4E2M1FNTypeGetTypeID")],-1)),t[1720]||(t[1720]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1721]||(t[1721]=l('mlirFloat4E2M1FNTypeGetTypeID()
Returns the typeID of an Float4E2M1FN type.
',3))]),e("details",vo,[e("summary",null,[t[1722]||(t[1722]=e("a",{id:"Reactant.MLIR.API.mlirFloat64TypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFloat64TypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat64TypeGetTypeID")],-1)),t[1723]||(t[1723]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1724]||(t[1724]=l('mlirFloat64TypeGetTypeID()
Returns the typeID of an Float64 type.
',3))]),e("details",To,[e("summary",null,[t[1725]||(t[1725]=e("a",{id:"Reactant.MLIR.API.mlirFloat6E2M3FNTypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFloat6E2M3FNTypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat6E2M3FNTypeGet")],-1)),t[1726]||(t[1726]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1727]||(t[1727]=l('mlirFloat6E2M3FNTypeGet(ctx)
Creates an f6E2M3FN type in the given context. The type is owned by the context.
',3))]),e("details",Co,[e("summary",null,[t[1728]||(t[1728]=e("a",{id:"Reactant.MLIR.API.mlirFloat6E2M3FNTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFloat6E2M3FNTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat6E2M3FNTypeGetTypeID")],-1)),t[1729]||(t[1729]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1730]||(t[1730]=l('mlirFloat6E2M3FNTypeGetTypeID()
Returns the typeID of an Float6E2M3FN type.
',3))]),e("details",xo,[e("summary",null,[t[1731]||(t[1731]=e("a",{id:"Reactant.MLIR.API.mlirFloat6E3M2FNTypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFloat6E3M2FNTypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat6E3M2FNTypeGet")],-1)),t[1732]||(t[1732]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1733]||(t[1733]=l('mlirFloat6E3M2FNTypeGet(ctx)
Creates an f6E3M2FN type in the given context. The type is owned by the context.
',3))]),e("details",Fo,[e("summary",null,[t[1734]||(t[1734]=e("a",{id:"Reactant.MLIR.API.mlirFloat6E3M2FNTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFloat6E3M2FNTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat6E3M2FNTypeGetTypeID")],-1)),t[1735]||(t[1735]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1736]||(t[1736]=l('mlirFloat6E3M2FNTypeGetTypeID()
Returns the typeID of an Float6E3M2FN type.
',3))]),e("details",Po,[e("summary",null,[t[1737]||(t[1737]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E3M4TypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFloat8E3M4TypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E3M4TypeGet")],-1)),t[1738]||(t[1738]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1739]||(t[1739]=l('mlirFloat8E3M4TypeGet(ctx)
Creates an f8E3M4 type in the given context. The type is owned by the context.
',3))]),e("details",Do,[e("summary",null,[t[1740]||(t[1740]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E3M4TypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFloat8E3M4TypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E3M4TypeGetTypeID")],-1)),t[1741]||(t[1741]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1742]||(t[1742]=l('mlirFloat8E3M4TypeGetTypeID()
Returns the typeID of an Float8E3M4 type.
',3))]),e("details",Oo,[e("summary",null,[t[1743]||(t[1743]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E4M3B11FNUZTypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFloat8E4M3B11FNUZTypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E4M3B11FNUZTypeGet")],-1)),t[1744]||(t[1744]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1745]||(t[1745]=l('mlirFloat8E4M3B11FNUZTypeGet(ctx)
Creates an f8E4M3B11FNUZ type in the given context. The type is owned by the context.
',3))]),e("details",Bo,[e("summary",null,[t[1746]||(t[1746]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E4M3B11FNUZTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFloat8E4M3B11FNUZTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E4M3B11FNUZTypeGetTypeID")],-1)),t[1747]||(t[1747]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1748]||(t[1748]=l('mlirFloat8E4M3B11FNUZTypeGetTypeID()
Returns the typeID of an Float8E4M3B11FNUZ type.
',3))]),e("details",Go,[e("summary",null,[t[1749]||(t[1749]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E4M3FNTypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFloat8E4M3FNTypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E4M3FNTypeGet")],-1)),t[1750]||(t[1750]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1751]||(t[1751]=l('mlirFloat8E4M3FNTypeGet(ctx)
Creates an f8E4M3FN type in the given context. The type is owned by the context.
',3))]),e("details",zo,[e("summary",null,[t[1752]||(t[1752]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E4M3FNTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFloat8E4M3FNTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E4M3FNTypeGetTypeID")],-1)),t[1753]||(t[1753]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1754]||(t[1754]=l('mlirFloat8E4M3FNTypeGetTypeID()
Returns the typeID of an Float8E4M3FN type.
',3))]),e("details",wo,[e("summary",null,[t[1755]||(t[1755]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E4M3FNUZTypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFloat8E4M3FNUZTypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E4M3FNUZTypeGet")],-1)),t[1756]||(t[1756]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1757]||(t[1757]=l('mlirFloat8E4M3FNUZTypeGet(ctx)
Creates an f8E4M3FNUZ type in the given context. The type is owned by the context.
',3))]),e("details",So,[e("summary",null,[t[1758]||(t[1758]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E4M3FNUZTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFloat8E4M3FNUZTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E4M3FNUZTypeGetTypeID")],-1)),t[1759]||(t[1759]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1760]||(t[1760]=l('mlirFloat8E4M3FNUZTypeGetTypeID()
Returns the typeID of an Float8E4M3FNUZ type.
',3))]),e("details",No,[e("summary",null,[t[1761]||(t[1761]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E4M3TypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFloat8E4M3TypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E4M3TypeGet")],-1)),t[1762]||(t[1762]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1763]||(t[1763]=l('mlirFloat8E4M3TypeGet(ctx)
Creates an f8E4M3 type in the given context. The type is owned by the context.
',3))]),e("details",Vo,[e("summary",null,[t[1764]||(t[1764]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E4M3TypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFloat8E4M3TypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E4M3TypeGetTypeID")],-1)),t[1765]||(t[1765]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1766]||(t[1766]=l('mlirFloat8E4M3TypeGetTypeID()
Returns the typeID of an Float8E4M3 type.
',3))]),e("details",qo,[e("summary",null,[t[1767]||(t[1767]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E5M2FNUZTypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFloat8E5M2FNUZTypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E5M2FNUZTypeGet")],-1)),t[1768]||(t[1768]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1769]||(t[1769]=l('mlirFloat8E5M2FNUZTypeGet(ctx)
Creates an f8E5M2FNUZ type in the given context. The type is owned by the context.
',3))]),e("details",Uo,[e("summary",null,[t[1770]||(t[1770]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E5M2FNUZTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFloat8E5M2FNUZTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E5M2FNUZTypeGetTypeID")],-1)),t[1771]||(t[1771]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1772]||(t[1772]=l('mlirFloat8E5M2FNUZTypeGetTypeID()
Returns the typeID of an Float8E5M2FNUZ type.
',3))]),e("details",Qo,[e("summary",null,[t[1773]||(t[1773]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E5M2TypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFloat8E5M2TypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E5M2TypeGet")],-1)),t[1774]||(t[1774]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1775]||(t[1775]=l('mlirFloat8E5M2TypeGet(ctx)
Creates an f8E5M2 type in the given context. The type is owned by the context.
',3))]),e("details",Wo,[e("summary",null,[t[1776]||(t[1776]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E5M2TypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFloat8E5M2TypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E5M2TypeGetTypeID")],-1)),t[1777]||(t[1777]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1778]||(t[1778]=l('mlirFloat8E5M2TypeGetTypeID()
Returns the typeID of an Float8E5M2 type.
',3))]),e("details",Ho,[e("summary",null,[t[1779]||(t[1779]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E8M0FNUTypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFloat8E8M0FNUTypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E8M0FNUTypeGet")],-1)),t[1780]||(t[1780]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1781]||(t[1781]=l('mlirFloat8E8M0FNUTypeGet(ctx)
Creates an f8E8M0FNU type in the given context. The type is owned by the context.
',3))]),e("details",Zo,[e("summary",null,[t[1782]||(t[1782]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E8M0FNUTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFloat8E8M0FNUTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E8M0FNUTypeGetTypeID")],-1)),t[1783]||(t[1783]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1784]||(t[1784]=l('mlirFloat8E8M0FNUTypeGetTypeID()
Returns the typeID of an Float8E8M0FNU type.
',3))]),e("details",Jo,[e("summary",null,[t[1785]||(t[1785]=e("a",{id:"Reactant.MLIR.API.mlirFloatAttrDoubleGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirFloatAttrDoubleGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloatAttrDoubleGet")],-1)),t[1786]||(t[1786]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1787]||(t[1787]=l('mlirFloatAttrDoubleGet(ctx, type, value)
Creates a floating point attribute in the given context with the given double value and double-precision FP semantics.
',3))]),e("details",Ko,[e("summary",null,[t[1788]||(t[1788]=e("a",{id:"Reactant.MLIR.API.mlirFloatAttrDoubleGetChecked-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirFloatAttrDoubleGetChecked-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloatAttrDoubleGetChecked")],-1)),t[1789]||(t[1789]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1790]||(t[1790]=l('mlirFloatAttrDoubleGetChecked(loc, type, value)
Same as "mlirFloatAttrDoubleGet
", but if the type is not valid for a construction of a FloatAttr, returns a null MlirAttribute
.
mlirFloatAttrGetTypeID()
Returns the typeID of a Float attribute.
',3))]),e("details",Xo,[e("summary",null,[t[1794]||(t[1794]=e("a",{id:"Reactant.MLIR.API.mlirFloatAttrGetValueDouble-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFloatAttrGetValueDouble-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloatAttrGetValueDouble")],-1)),t[1795]||(t[1795]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1796]||(t[1796]=l('mlirFloatAttrGetValueDouble(attr)
Returns the value stored in the given floating point attribute, interpreting the value as double.
',3))]),e("details",Yo,[e("summary",null,[t[1797]||(t[1797]=e("a",{id:"Reactant.MLIR.API.mlirFloatTF32TypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFloatTF32TypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloatTF32TypeGetTypeID")],-1)),t[1798]||(t[1798]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1799]||(t[1799]=l('mlirFloatTF32TypeGetTypeID()
Returns the typeID of a TF32 type.
',3))]),e("details",_o,[e("summary",null,[t[1800]||(t[1800]=e("a",{id:"Reactant.MLIR.API.mlirFloatTypeGetWidth-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFloatTypeGetWidth-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloatTypeGetWidth")],-1)),t[1801]||(t[1801]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1802]||(t[1802]=l('mlirFloatTypeGetWidth(type)
Returns the bitwidth of a floating-point type.
',3))]),e("details",td,[e("summary",null,[t[1803]||(t[1803]=e("a",{id:"Reactant.MLIR.API.mlirFreezeRewritePattern-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFreezeRewritePattern-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFreezeRewritePattern")],-1)),t[1804]||(t[1804]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1805]||(t[1805]=l('mlirFreezeRewritePattern(op)
FrozenRewritePatternSet API
',3))]),e("details",ed,[e("summary",null,[t[1806]||(t[1806]=e("a",{id:"Reactant.MLIR.API.mlirFuncSetArgAttr-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirFuncSetArgAttr-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFuncSetArgAttr")],-1)),t[1807]||(t[1807]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1808]||(t[1808]=l('mlirFuncSetArgAttr(op, pos, name, attr)
Sets the argument attribute 'name' of an argument at index 'pos'. Asserts that the operation is a FuncOp.
',3))]),e("details",sd,[e("summary",null,[t[1809]||(t[1809]=e("a",{id:"Reactant.MLIR.API.mlirFunctionTypeGet-NTuple{5, Any}",href:"#Reactant.MLIR.API.mlirFunctionTypeGet-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFunctionTypeGet")],-1)),t[1810]||(t[1810]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1811]||(t[1811]=l('mlirFunctionTypeGet(ctx, numInputs, inputs, numResults, results)
Creates a function type, mapping a list of input types to result types.
',3))]),e("details",ad,[e("summary",null,[t[1812]||(t[1812]=e("a",{id:"Reactant.MLIR.API.mlirFunctionTypeGetInput-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirFunctionTypeGetInput-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFunctionTypeGetInput")],-1)),t[1813]||(t[1813]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1814]||(t[1814]=l('mlirFunctionTypeGetInput(type, pos)
Returns the pos-th input type.
',3))]),e("details",id,[e("summary",null,[t[1815]||(t[1815]=e("a",{id:"Reactant.MLIR.API.mlirFunctionTypeGetNumInputs-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFunctionTypeGetNumInputs-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFunctionTypeGetNumInputs")],-1)),t[1816]||(t[1816]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1817]||(t[1817]=l('mlirFunctionTypeGetNumInputs(type)
Returns the number of input types.
',3))]),e("details",ld,[e("summary",null,[t[1818]||(t[1818]=e("a",{id:"Reactant.MLIR.API.mlirFunctionTypeGetNumResults-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFunctionTypeGetNumResults-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFunctionTypeGetNumResults")],-1)),t[1819]||(t[1819]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1820]||(t[1820]=l('mlirFunctionTypeGetNumResults(type)
Returns the number of result types.
',3))]),e("details",nd,[e("summary",null,[t[1821]||(t[1821]=e("a",{id:"Reactant.MLIR.API.mlirFunctionTypeGetResult-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirFunctionTypeGetResult-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFunctionTypeGetResult")],-1)),t[1822]||(t[1822]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1823]||(t[1823]=l('mlirFunctionTypeGetResult(type, pos)
Returns the pos-th result type.
',3))]),e("details",pd,[e("summary",null,[t[1824]||(t[1824]=e("a",{id:"Reactant.MLIR.API.mlirFunctionTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFunctionTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFunctionTypeGetTypeID")],-1)),t[1825]||(t[1825]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1826]||(t[1826]=l('mlirFunctionTypeGetTypeID()
Returns the typeID of an Function type.
',3))]),e("details",rd,[e("summary",null,[t[1827]||(t[1827]=e("a",{id:"Reactant.MLIR.API.mlirIRRewriterCreate-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIRRewriterCreate-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIRRewriterCreate")],-1)),t[1828]||(t[1828]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1829]||(t[1829]=l('mlirIRRewriterCreate(context)
Create an IRRewriter and transfer ownership to the caller.
',3))]),e("details",od,[e("summary",null,[t[1830]||(t[1830]=e("a",{id:"Reactant.MLIR.API.mlirIRRewriterCreateFromOp-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIRRewriterCreateFromOp-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIRRewriterCreateFromOp")],-1)),t[1831]||(t[1831]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1832]||(t[1832]=l('mlirIRRewriterCreateFromOp(op)
Create an IRRewriter and transfer ownership to the caller. Additionally set the insertion point before the operation.
',3))]),e("details",dd,[e("summary",null,[t[1833]||(t[1833]=e("a",{id:"Reactant.MLIR.API.mlirIRRewriterDestroy-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIRRewriterDestroy-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIRRewriterDestroy")],-1)),t[1834]||(t[1834]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1835]||(t[1835]=l('mlirIRRewriterDestroy(rewriter)
Takes an IRRewriter owned by the caller and destroys it. It is the responsibility of the user to only pass an IRRewriter class.
',3))]),e("details",cd,[e("summary",null,[t[1836]||(t[1836]=e("a",{id:"Reactant.MLIR.API.mlirIdentifierEqual-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirIdentifierEqual-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIdentifierEqual")],-1)),t[1837]||(t[1837]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1838]||(t[1838]=l('mlirIdentifierEqual(ident, other)
Checks whether two identifiers are the same.
',3))]),e("details",hd,[e("summary",null,[t[1839]||(t[1839]=e("a",{id:"Reactant.MLIR.API.mlirIdentifierGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirIdentifierGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIdentifierGet")],-1)),t[1840]||(t[1840]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1841]||(t[1841]=l('mlirIdentifierGet(context, str)
Gets an identifier with the given string value.
',3))]),e("details",ud,[e("summary",null,[t[1842]||(t[1842]=e("a",{id:"Reactant.MLIR.API.mlirIdentifierGetContext-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIdentifierGetContext-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIdentifierGetContext")],-1)),t[1843]||(t[1843]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1844]||(t[1844]=l('mlirIdentifierGetContext(arg1)
Returns the context associated with this identifier
',3))]),e("details",bd,[e("summary",null,[t[1845]||(t[1845]=e("a",{id:"Reactant.MLIR.API.mlirIdentifierStr-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIdentifierStr-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIdentifierStr")],-1)),t[1846]||(t[1846]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1847]||(t[1847]=l('mlirIdentifierStr(ident)
Gets the string value of the identifier.
',3))]),e("details",gd,[e("summary",null,[t[1848]||(t[1848]=e("a",{id:"Reactant.MLIR.API.mlirIndexTypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIndexTypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIndexTypeGet")],-1)),t[1849]||(t[1849]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1850]||(t[1850]=l('mlirIndexTypeGet(ctx)
Creates an index type in the given context. The type is owned by the context.
',3))]),e("details",yd,[e("summary",null,[t[1851]||(t[1851]=e("a",{id:"Reactant.MLIR.API.mlirIndexTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirIndexTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIndexTypeGetTypeID")],-1)),t[1852]||(t[1852]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1853]||(t[1853]=l('mlirIndexTypeGetTypeID()
Returns the typeID of an Index type.
',3))]),e("details",md,[e("summary",null,[t[1854]||(t[1854]=e("a",{id:"Reactant.MLIR.API.mlirInferShapedTypeOpInterfaceInferReturnTypes-NTuple{11, Any}",href:"#Reactant.MLIR.API.mlirInferShapedTypeOpInterfaceInferReturnTypes-NTuple{11, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirInferShapedTypeOpInterfaceInferReturnTypes")],-1)),t[1855]||(t[1855]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1856]||(t[1856]=l('mlirInferShapedTypeOpInterfaceInferReturnTypes(opName, context, location, nOperands, operands, attributes, properties, nRegions, regions, callback, userData)
Infers the return shaped type components of the operation. Calls callback
with the types of inferred arguments on success. Returns failure otherwise.
mlirInferShapedTypeOpInterfaceTypeID()
Returns the interface TypeID of the InferShapedTypeOpInterface.
',3))]),e("details",fd,[e("summary",null,[t[1860]||(t[1860]=e("a",{id:"Reactant.MLIR.API.mlirInferTypeOpInterfaceInferReturnTypes-NTuple{11, Any}",href:"#Reactant.MLIR.API.mlirInferTypeOpInterfaceInferReturnTypes-NTuple{11, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirInferTypeOpInterfaceInferReturnTypes")],-1)),t[1861]||(t[1861]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1862]||(t[1862]=l('mlirInferTypeOpInterfaceInferReturnTypes(opName, context, location, nOperands, operands, attributes, properties, nRegions, regions, callback, userData)
Infers the return types of the operation identified by its canonical given the arguments that will be supplied to its generic builder. Calls callback
with the types of inferred arguments, potentially several times, on success. Returns failure otherwise.
mlirInferTypeOpInterfaceTypeID()
Returns the interface TypeID of the InferTypeOpInterface.
',3))]),e("details",Id,[e("summary",null,[t[1866]||(t[1866]=e("a",{id:"Reactant.MLIR.API.mlirIntegerAttrGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirIntegerAttrGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerAttrGet")],-1)),t[1867]||(t[1867]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1868]||(t[1868]=l('mlirIntegerAttrGet(type, value)
Creates an integer attribute of the given type with the given integer value.
',3))]),e("details",jd,[e("summary",null,[t[1869]||(t[1869]=e("a",{id:"Reactant.MLIR.API.mlirIntegerAttrGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirIntegerAttrGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerAttrGetTypeID")],-1)),t[1870]||(t[1870]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1871]||(t[1871]=l('mlirIntegerAttrGetTypeID()
Returns the typeID of an Integer attribute.
',3))]),e("details",Md,[e("summary",null,[t[1872]||(t[1872]=e("a",{id:"Reactant.MLIR.API.mlirIntegerAttrGetValueInt-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerAttrGetValueInt-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerAttrGetValueInt")],-1)),t[1873]||(t[1873]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1874]||(t[1874]=l('mlirIntegerAttrGetValueInt(attr)
Returns the value stored in the given integer attribute, assuming the value is of signless type and fits into a signed 64-bit integer.
',3))]),e("details",Ad,[e("summary",null,[t[1875]||(t[1875]=e("a",{id:"Reactant.MLIR.API.mlirIntegerAttrGetValueSInt-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerAttrGetValueSInt-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerAttrGetValueSInt")],-1)),t[1876]||(t[1876]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1877]||(t[1877]=l('mlirIntegerAttrGetValueSInt(attr)
Returns the value stored in the given integer attribute, assuming the value is of signed type and fits into a signed 64-bit integer.
',3))]),e("details",Ld,[e("summary",null,[t[1878]||(t[1878]=e("a",{id:"Reactant.MLIR.API.mlirIntegerAttrGetValueUInt-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerAttrGetValueUInt-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerAttrGetValueUInt")],-1)),t[1879]||(t[1879]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1880]||(t[1880]=l('mlirIntegerAttrGetValueUInt(attr)
Returns the value stored in the given integer attribute, assuming the value is of unsigned type and fits into an unsigned 64-bit integer.
',3))]),e("details",Ed,[e("summary",null,[t[1881]||(t[1881]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetAttrGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerSetAttrGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetAttrGet")],-1)),t[1882]||(t[1882]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1883]||(t[1883]=l('mlirIntegerSetAttrGet(set)
Creates an integer set attribute wrapping the given set. The attribute belongs to the same context as the integer set.
',3))]),e("details",vd,[e("summary",null,[t[1884]||(t[1884]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetAttrGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirIntegerSetAttrGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetAttrGetTypeID")],-1)),t[1885]||(t[1885]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1886]||(t[1886]=l('mlirIntegerSetAttrGetTypeID()
Returns the typeID of an IntegerSet attribute.
',3))]),e("details",Td,[e("summary",null,[t[1887]||(t[1887]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetAttrGetValue-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerSetAttrGetValue-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetAttrGetValue")],-1)),t[1888]||(t[1888]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1889]||(t[1889]=l('mlirIntegerSetAttrGetValue(attr)
Returns the integer set wrapped in the given integer set attribute.
',3))]),e("details",Cd,[e("summary",null,[t[1890]||(t[1890]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetDump-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerSetDump-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetDump")],-1)),t[1891]||(t[1891]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1892]||(t[1892]=l('mlirIntegerSetDump(set)
Prints an integer set to the standard error stream.
',3))]),e("details",xd,[e("summary",null,[t[1893]||(t[1893]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetEmptyGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirIntegerSetEmptyGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetEmptyGet")],-1)),t[1894]||(t[1894]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1895]||(t[1895]=l('mlirIntegerSetEmptyGet(context, numDims, numSymbols)
Gets or creates a new canonically empty integer set with the give number of dimensions and symbols in the given context.
',3))]),e("details",Fd,[e("summary",null,[t[1896]||(t[1896]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetEqual-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirIntegerSetEqual-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetEqual")],-1)),t[1897]||(t[1897]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1898]||(t[1898]=l('mlirIntegerSetEqual(s1, s2)
Checks if two integer set objects are equal. This is a "shallow" comparison of two objects. Only the sets with some small number of constraints are uniqued and compare equal here. Set objects that represent the same integer set with different constraints may be considered non-equal by this check. Set difference followed by an (expensive) emptiness check should be used to check equivalence of the underlying integer sets.
',3))]),e("details",Pd,[e("summary",null,[t[1899]||(t[1899]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetGet-NTuple{6, Any}",href:"#Reactant.MLIR.API.mlirIntegerSetGet-NTuple{6, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetGet")],-1)),t[1900]||(t[1900]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1901]||(t[1901]=l('mlirIntegerSetGet(context, numDims, numSymbols, numConstraints, constraints, eqFlags)
Gets or creates a new integer set in the given context. The set is defined by a list of affine constraints, with the given number of input dimensions and symbols, which are treated as either equalities (eqFlags is 1) or inequalities (eqFlags is 0). Both constraints
and eqFlags
are expected to point to at least numConstraint
consecutive values.
mlirIntegerSetGetConstraint(set, pos)
Returns pos
-th constraint of the set.
mlirIntegerSetGetContext(set)
Gets the context in which the given integer set lives.
',3))]),e("details",Bd,[e("summary",null,[t[1908]||(t[1908]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetGetNumConstraints-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerSetGetNumConstraints-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetGetNumConstraints")],-1)),t[1909]||(t[1909]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1910]||(t[1910]=l('mlirIntegerSetGetNumConstraints(set)
Returns the number of constraints (equalities + inequalities) in the given set.
',3))]),e("details",Gd,[e("summary",null,[t[1911]||(t[1911]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetGetNumDims-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerSetGetNumDims-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetGetNumDims")],-1)),t[1912]||(t[1912]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1913]||(t[1913]=l('mlirIntegerSetGetNumDims(set)
Returns the number of dimensions in the given set.
',3))]),e("details",zd,[e("summary",null,[t[1914]||(t[1914]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetGetNumEqualities-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerSetGetNumEqualities-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetGetNumEqualities")],-1)),t[1915]||(t[1915]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1916]||(t[1916]=l('mlirIntegerSetGetNumEqualities(set)
Returns the number of equalities in the given set.
',3))]),e("details",wd,[e("summary",null,[t[1917]||(t[1917]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetGetNumInequalities-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerSetGetNumInequalities-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetGetNumInequalities")],-1)),t[1918]||(t[1918]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1919]||(t[1919]=l('mlirIntegerSetGetNumInequalities(set)
Returns the number of inequalities in the given set.
',3))]),e("details",Sd,[e("summary",null,[t[1920]||(t[1920]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetGetNumInputs-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerSetGetNumInputs-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetGetNumInputs")],-1)),t[1921]||(t[1921]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1922]||(t[1922]=l('mlirIntegerSetGetNumInputs(set)
Returns the number of inputs (dimensions + symbols) in the given set.
',3))]),e("details",Nd,[e("summary",null,[t[1923]||(t[1923]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetGetNumSymbols-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerSetGetNumSymbols-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetGetNumSymbols")],-1)),t[1924]||(t[1924]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1925]||(t[1925]=l('mlirIntegerSetGetNumSymbols(set)
Returns the number of symbols in the given set.
',3))]),e("details",Vd,[e("summary",null,[t[1926]||(t[1926]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetIsCanonicalEmpty-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerSetIsCanonicalEmpty-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetIsCanonicalEmpty")],-1)),t[1927]||(t[1927]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1928]||(t[1928]=l('mlirIntegerSetIsCanonicalEmpty(set)
Checks whether the given set is a canonical empty set, e.g., the set returned by mlirIntegerSetEmptyGet
.
mlirIntegerSetIsConstraintEq(set, pos)
Returns true
of the pos
-th constraint of the set is an equality constraint, false
otherwise.
mlirIntegerSetIsNull(set)
Checks whether an integer set is a null object.
',3))]),e("details",Qd,[e("summary",null,[t[1935]||(t[1935]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetPrint-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirIntegerSetPrint-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetPrint")],-1)),t[1936]||(t[1936]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1937]||(t[1937]=l('mlirIntegerSetPrint(set, callback, userData)
Prints an integer set by sending chunks of the string representation and forwarding userData to
callback`. Note that the callback may be called several times with consecutive chunks of the string.
mlirIntegerSetReplaceGet(set, dimReplacements, symbolReplacements, numResultDims, numResultSymbols)
Gets or creates a new integer set in which the values and dimensions of the given set are replaced with the given affine expressions. dimReplacements
and symbolReplacements
are expected to point to at least as many consecutive expressions as the given set has dimensions and symbols, respectively. The new set will have numResultDims
and numResultSymbols
dimensions and symbols, respectively.
mlirIntegerTypeGet(ctx, bitwidth)
Creates a signless integer type of the given bitwidth in the context. The type is owned by the context.
',3))]),e("details",Zd,[e("summary",null,[t[1944]||(t[1944]=e("a",{id:"Reactant.MLIR.API.mlirIntegerTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirIntegerTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerTypeGetTypeID")],-1)),t[1945]||(t[1945]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1946]||(t[1946]=l('mlirIntegerTypeGetTypeID()
Returns the typeID of an Integer type.
',3))]),e("details",Jd,[e("summary",null,[t[1947]||(t[1947]=e("a",{id:"Reactant.MLIR.API.mlirIntegerTypeGetWidth-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerTypeGetWidth-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerTypeGetWidth")],-1)),t[1948]||(t[1948]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1949]||(t[1949]=l('mlirIntegerTypeGetWidth(type)
Returns the bitwidth of an integer type.
',3))]),e("details",Kd,[e("summary",null,[t[1950]||(t[1950]=e("a",{id:"Reactant.MLIR.API.mlirIntegerTypeIsSigned-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerTypeIsSigned-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerTypeIsSigned")],-1)),t[1951]||(t[1951]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1952]||(t[1952]=l('mlirIntegerTypeIsSigned(type)
Checks whether the given integer type is signed.
',3))]),e("details",$d,[e("summary",null,[t[1953]||(t[1953]=e("a",{id:"Reactant.MLIR.API.mlirIntegerTypeIsSignless-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerTypeIsSignless-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerTypeIsSignless")],-1)),t[1954]||(t[1954]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1955]||(t[1955]=l('mlirIntegerTypeIsSignless(type)
Checks whether the given integer type is signless.
',3))]),e("details",Xd,[e("summary",null,[t[1956]||(t[1956]=e("a",{id:"Reactant.MLIR.API.mlirIntegerTypeIsUnsigned-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerTypeIsUnsigned-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerTypeIsUnsigned")],-1)),t[1957]||(t[1957]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1958]||(t[1958]=l('mlirIntegerTypeIsUnsigned(type)
Checks whether the given integer type is unsigned.
',3))]),e("details",Yd,[e("summary",null,[t[1959]||(t[1959]=e("a",{id:"Reactant.MLIR.API.mlirIntegerTypeSignedGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirIntegerTypeSignedGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerTypeSignedGet")],-1)),t[1960]||(t[1960]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1961]||(t[1961]=l('mlirIntegerTypeSignedGet(ctx, bitwidth)
Creates a signed integer type of the given bitwidth in the context. The type is owned by the context.
',3))]),e("details",_d,[e("summary",null,[t[1962]||(t[1962]=e("a",{id:"Reactant.MLIR.API.mlirIntegerTypeUnsignedGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirIntegerTypeUnsignedGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerTypeUnsignedGet")],-1)),t[1963]||(t[1963]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1964]||(t[1964]=l('mlirIntegerTypeUnsignedGet(ctx, bitwidth)
Creates an unsigned integer type of the given bitwidth in the context. The type is owned by the context.
',3))]),e("details",tc,[e("summary",null,[t[1965]||(t[1965]=e("a",{id:"Reactant.MLIR.API.mlirIsCurrentDebugType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIsCurrentDebugType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIsCurrentDebugType")],-1)),t[1966]||(t[1966]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1967]||(t[1967]=l('mlirIsCurrentDebugType(type)
Checks if type
is set as the current debug type.
mlirIsGlobalDebugEnabled()
Retuns true
if the global debugging flag is set, false otherwise.
mlirLLVMArrayTypeGet(elementType, numElements)
Creates an llvm.array type.
',3))]),e("details",ac,[e("summary",null,[t[1974]||(t[1974]=e("a",{id:"Reactant.MLIR.API.mlirLLVMCConvAttrGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirLLVMCConvAttrGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMCConvAttrGet")],-1)),t[1975]||(t[1975]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1976]||(t[1976]=l('mlirLLVMCConvAttrGet(ctx, cconv)
Creates a LLVM CConv attribute.
',3))]),e("details",ic,[e("summary",null,[t[1977]||(t[1977]=e("a",{id:"Reactant.MLIR.API.mlirLLVMComdatAttrGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirLLVMComdatAttrGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMComdatAttrGet")],-1)),t[1978]||(t[1978]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1979]||(t[1979]=l('mlirLLVMComdatAttrGet(ctx, comdat)
Creates a LLVM Comdat attribute.
',3))]),e("details",lc,[e("summary",null,[t[1980]||(t[1980]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDIAnnotationAttrGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirLLVMDIAnnotationAttrGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDIAnnotationAttrGet")],-1)),t[1981]||(t[1981]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1982]||(t[1982]=l('mlirLLVMDIAnnotationAttrGet(ctx, name, value)
Creates a LLVM DIAnnotation attribute.
',3))]),e("details",nc,[e("summary",null,[t[1983]||(t[1983]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDIBasicTypeAttrGet-NTuple{5, Any}",href:"#Reactant.MLIR.API.mlirLLVMDIBasicTypeAttrGet-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDIBasicTypeAttrGet")],-1)),t[1984]||(t[1984]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1985]||(t[1985]=l('mlirLLVMDIBasicTypeAttrGet(ctx, tag, name, sizeInBits, encoding)
Creates a LLVM DIBasicType attribute.
',3))]),e("details",pc,[e("summary",null,[t[1986]||(t[1986]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDICompileUnitAttrGet-NTuple{8, Any}",href:"#Reactant.MLIR.API.mlirLLVMDICompileUnitAttrGet-NTuple{8, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDICompileUnitAttrGet")],-1)),t[1987]||(t[1987]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1988]||(t[1988]=l('mlirLLVMDICompileUnitAttrGet(ctx, id, sourceLanguage, file, producer, isOptimized, emissionKind, nameTableKind)
Creates a LLVM DICompileUnit attribute.
',3))]),e("details",rc,[e("summary",null,[t[1989]||(t[1989]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDICompositeTypeAttrGet-NTuple{18, Any}",href:"#Reactant.MLIR.API.mlirLLVMDICompositeTypeAttrGet-NTuple{18, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDICompositeTypeAttrGet")],-1)),t[1990]||(t[1990]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1991]||(t[1991]=l('mlirLLVMDICompositeTypeAttrGet(ctx, recId, isRecSelf, tag, name, file, line, scope, baseType, flags, sizeInBits, alignInBits, nElements, elements, dataLocation, rank, allocated, associated)
Creates a LLVM DICompositeType attribute.
',3))]),e("details",oc,[e("summary",null,[t[1992]||(t[1992]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDICompositeTypeAttrGetRecSelf-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMDICompositeTypeAttrGetRecSelf-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDICompositeTypeAttrGetRecSelf")],-1)),t[1993]||(t[1993]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1994]||(t[1994]=l('mlirLLVMDICompositeTypeAttrGetRecSelf(recId)
Creates a self-referencing LLVM DICompositeType attribute.
',3))]),e("details",dc,[e("summary",null,[t[1995]||(t[1995]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDIDerivedTypeAttrGet-NTuple{9, Any}",href:"#Reactant.MLIR.API.mlirLLVMDIDerivedTypeAttrGet-NTuple{9, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDIDerivedTypeAttrGet")],-1)),t[1996]||(t[1996]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1997]||(t[1997]=l('mlirLLVMDIDerivedTypeAttrGet(ctx, tag, name, baseType, sizeInBits, alignInBits, offsetInBits, dwarfAddressSpace, extraData)
Creates a LLVM DIDerivedType attribute. Note that dwarfAddressSpace
is an optional field, where MLIR_CAPI_DWARF_ADDRESS_SPACE_NULL
indicates null and non-negative values indicate a value present.
mlirLLVMDIDerivedTypeAttrGetBaseType(diDerivedType)
Gets the base type from a LLVM DIDerivedType attribute.
',3))]),e("details",hc,[e("summary",null,[t[2001]||(t[2001]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDIExpressionAttrGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirLLVMDIExpressionAttrGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDIExpressionAttrGet")],-1)),t[2002]||(t[2002]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2003]||(t[2003]=l('mlirLLVMDIExpressionAttrGet(ctx, nOperations, operations)
Creates a LLVM DIExpression attribute.
',3))]),e("details",uc,[e("summary",null,[t[2004]||(t[2004]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDIExpressionElemAttrGet-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirLLVMDIExpressionElemAttrGet-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDIExpressionElemAttrGet")],-1)),t[2005]||(t[2005]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2006]||(t[2006]=l('mlirLLVMDIExpressionElemAttrGet(ctx, opcode, nArguments, arguments)
Creates a LLVM DIExpressionElem attribute.
',3))]),e("details",bc,[e("summary",null,[t[2007]||(t[2007]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDIFileAttrGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirLLVMDIFileAttrGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDIFileAttrGet")],-1)),t[2008]||(t[2008]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2009]||(t[2009]=l('mlirLLVMDIFileAttrGet(ctx, name, directory)
Creates a LLVM DIFileAttr attribute.
',3))]),e("details",gc,[e("summary",null,[t[2010]||(t[2010]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDIFlagsAttrGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirLLVMDIFlagsAttrGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDIFlagsAttrGet")],-1)),t[2011]||(t[2011]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2012]||(t[2012]=l('mlirLLVMDIFlagsAttrGet(ctx, value)
Creates a LLVM DIFlags attribute.
',3))]),e("details",yc,[e("summary",null,[t[2013]||(t[2013]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDIImportedEntityAttrGet-NTuple{9, Any}",href:"#Reactant.MLIR.API.mlirLLVMDIImportedEntityAttrGet-NTuple{9, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDIImportedEntityAttrGet")],-1)),t[2014]||(t[2014]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2015]||(t[2015]=l('mlirLLVMDIImportedEntityAttrGet(ctx, tag, scope, entity, file, line, name, nElements, elements)
Creates a LLVM DIImportedEntityAttr attribute.
',3))]),e("details",mc,[e("summary",null,[t[2016]||(t[2016]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDILexicalBlockAttrGet-NTuple{5, Any}",href:"#Reactant.MLIR.API.mlirLLVMDILexicalBlockAttrGet-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDILexicalBlockAttrGet")],-1)),t[2017]||(t[2017]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2018]||(t[2018]=l('mlirLLVMDILexicalBlockAttrGet(ctx, scope, file, line, column)
Creates a LLVM DILexicalBlock attribute.
',3))]),e("details",kc,[e("summary",null,[t[2019]||(t[2019]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDILexicalBlockFileAttrGet-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirLLVMDILexicalBlockFileAttrGet-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDILexicalBlockFileAttrGet")],-1)),t[2020]||(t[2020]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2021]||(t[2021]=l('mlirLLVMDILexicalBlockFileAttrGet(ctx, scope, file, discriminator)
Creates a LLVM DILexicalBlockFile attribute.
',3))]),e("details",fc,[e("summary",null,[t[2022]||(t[2022]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDILocalVariableAttrGet-NTuple{9, Any}",href:"#Reactant.MLIR.API.mlirLLVMDILocalVariableAttrGet-NTuple{9, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDILocalVariableAttrGet")],-1)),t[2023]||(t[2023]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2024]||(t[2024]=l('mlirLLVMDILocalVariableAttrGet(ctx, scope, name, diFile, line, arg, alignInBits, diType, flags)
Creates a LLVM DILocalVariableAttr attribute.
',3))]),e("details",Rc,[e("summary",null,[t[2025]||(t[2025]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDIModuleAttrGet-NTuple{9, Any}",href:"#Reactant.MLIR.API.mlirLLVMDIModuleAttrGet-NTuple{9, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDIModuleAttrGet")],-1)),t[2026]||(t[2026]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2027]||(t[2027]=l('mlirLLVMDIModuleAttrGet(ctx, file, scope, name, configMacros, includePath, apinotes, line, isDecl)
Creates a LLVM DIModuleAttr attribute.
',3))]),e("details",Ic,[e("summary",null,[t[2028]||(t[2028]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDIModuleAttrGetScope-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMDIModuleAttrGetScope-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDIModuleAttrGetScope")],-1)),t[2029]||(t[2029]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2030]||(t[2030]=l('mlirLLVMDIModuleAttrGetScope(diModule)
Gets the scope of this DIModuleAttr.
',3))]),e("details",jc,[e("summary",null,[t[2031]||(t[2031]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDINullTypeAttrGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMDINullTypeAttrGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDINullTypeAttrGet")],-1)),t[2032]||(t[2032]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2033]||(t[2033]=l('mlirLLVMDINullTypeAttrGet(ctx)
Creates a LLVM DINullType attribute.
',3))]),e("details",Mc,[e("summary",null,[t[2034]||(t[2034]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGet-NTuple{17, Any}",href:"#Reactant.MLIR.API.mlirLLVMDISubprogramAttrGet-NTuple{17, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGet")],-1)),t[2035]||(t[2035]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2036]||(t[2036]=l('mlirLLVMDISubprogramAttrGet(ctx, recId, isRecSelf, id, compileUnit, scope, name, linkageName, file, line, scopeLine, subprogramFlags, type, nRetainedNodes, retainedNodes, nAnnotations, annotations)
Creates a LLVM DISubprogramAttr attribute.
',3))]),e("details",Ac,[e("summary",null,[t[2037]||(t[2037]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetCompileUnit-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetCompileUnit-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetCompileUnit")],-1)),t[2038]||(t[2038]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2039]||(t[2039]=l('mlirLLVMDISubprogramAttrGetCompileUnit(diSubprogram)
Gets the compile unit from this DISubprogram.
',3))]),e("details",Lc,[e("summary",null,[t[2040]||(t[2040]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetFile-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetFile-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetFile")],-1)),t[2041]||(t[2041]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2042]||(t[2042]=l('mlirLLVMDISubprogramAttrGetFile(diSubprogram)
Gets the file from this DISubprogramAttr.
',3))]),e("details",Ec,[e("summary",null,[t[2043]||(t[2043]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetLine-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetLine-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetLine")],-1)),t[2044]||(t[2044]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2045]||(t[2045]=l('mlirLLVMDISubprogramAttrGetLine(diSubprogram)
Gets the line from this DISubprogramAttr.
',3))]),e("details",vc,[e("summary",null,[t[2046]||(t[2046]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetRecSelf-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetRecSelf-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetRecSelf")],-1)),t[2047]||(t[2047]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2048]||(t[2048]=l('mlirLLVMDISubprogramAttrGetRecSelf(recId)
Creates a self-referencing LLVM DISubprogramAttr attribute.
',3))]),e("details",Tc,[e("summary",null,[t[2049]||(t[2049]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetScope-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetScope-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetScope")],-1)),t[2050]||(t[2050]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2051]||(t[2051]=l('mlirLLVMDISubprogramAttrGetScope(diSubprogram)
Gets the scope from this DISubprogramAttr.
',3))]),e("details",Cc,[e("summary",null,[t[2052]||(t[2052]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetScopeLine-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetScopeLine-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetScopeLine")],-1)),t[2053]||(t[2053]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2054]||(t[2054]=l('mlirLLVMDISubprogramAttrGetScopeLine(diSubprogram)
Gets the scope line from this DISubprogram.
',3))]),e("details",xc,[e("summary",null,[t[2055]||(t[2055]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetType")],-1)),t[2056]||(t[2056]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2057]||(t[2057]=l('mlirLLVMDISubprogramAttrGetType(diSubprogram)
Gets the type from this DISubprogramAttr.
',3))]),e("details",Fc,[e("summary",null,[t[2058]||(t[2058]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDISubroutineTypeAttrGet-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirLLVMDISubroutineTypeAttrGet-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDISubroutineTypeAttrGet")],-1)),t[2059]||(t[2059]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2060]||(t[2060]=l('mlirLLVMDISubroutineTypeAttrGet(ctx, callingConvention, nTypes, types)
Creates a LLVM DISubroutineTypeAttr attribute.
',3))]),e("details",Pc,[e("summary",null,[t[2061]||(t[2061]=e("a",{id:"Reactant.MLIR.API.mlirLLVMFunctionTypeGet-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirLLVMFunctionTypeGet-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMFunctionTypeGet")],-1)),t[2062]||(t[2062]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2063]||(t[2063]=l('mlirLLVMFunctionTypeGet(resultType, nArgumentTypes, argumentTypes, isVarArg)
Creates an llvm.func type.
',3))]),e("details",Dc,[e("summary",null,[t[2064]||(t[2064]=e("a",{id:"Reactant.MLIR.API.mlirLLVMLinkageAttrGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirLLVMLinkageAttrGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMLinkageAttrGet")],-1)),t[2065]||(t[2065]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2066]||(t[2066]=l('mlirLLVMLinkageAttrGet(ctx, linkage)
Creates a LLVM Linkage attribute.
',3))]),e("details",Oc,[e("summary",null,[t[2067]||(t[2067]=e("a",{id:"Reactant.MLIR.API.mlirLLVMPointerTypeGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirLLVMPointerTypeGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMPointerTypeGet")],-1)),t[2068]||(t[2068]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2069]||(t[2069]=l('mlirLLVMPointerTypeGet(ctx, addressSpace)
Creates an llvm.ptr type.
',3))]),e("details",Bc,[e("summary",null,[t[2070]||(t[2070]=e("a",{id:"Reactant.MLIR.API.mlirLLVMPointerTypeGetAddressSpace-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMPointerTypeGetAddressSpace-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMPointerTypeGetAddressSpace")],-1)),t[2071]||(t[2071]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2072]||(t[2072]=l('mlirLLVMPointerTypeGetAddressSpace(pointerType)
Returns address space of llvm.ptr
',3))]),e("details",Gc,[e("summary",null,[t[2073]||(t[2073]=e("a",{id:"Reactant.MLIR.API.mlirLLVMStructTypeGetElementType-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirLLVMStructTypeGetElementType-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMStructTypeGetElementType")],-1)),t[2074]||(t[2074]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2075]||(t[2075]=l('mlirLLVMStructTypeGetElementType(type, position)
Returns the positions
-th field of the struct. Asserts if the struct is opaque, not yet initialized or if the position is out of range.
mlirLLVMStructTypeGetIdentifier(type)
Returns the identifier of the identified struct. Asserts that the struct is identified, i.e., not literal.
',3))]),e("details",wc,[e("summary",null,[t[2079]||(t[2079]=e("a",{id:"Reactant.MLIR.API.mlirLLVMStructTypeGetNumElementTypes-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMStructTypeGetNumElementTypes-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMStructTypeGetNumElementTypes")],-1)),t[2080]||(t[2080]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2081]||(t[2081]=l('mlirLLVMStructTypeGetNumElementTypes(type)
Returns the number of fields in the struct. Asserts if the struct is opaque or not yet initialized.
',3))]),e("details",Sc,[e("summary",null,[t[2082]||(t[2082]=e("a",{id:"Reactant.MLIR.API.mlirLLVMStructTypeIdentifiedGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirLLVMStructTypeIdentifiedGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMStructTypeIdentifiedGet")],-1)),t[2083]||(t[2083]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2084]||(t[2084]=l('mlirLLVMStructTypeIdentifiedGet(ctx, name)
Creates an LLVM identified struct type with no body. If a struct type with this name already exists in the context, returns that type. Use mlirLLVMStructTypeIdentifiedNewGet
to create a fresh struct type, potentially renaming it. The body should be set separatelty by calling mlirLLVMStructTypeSetBody
, if it isn't set already.
mlirLLVMStructTypeIdentifiedNewGet(ctx, name, nFieldTypes, fieldTypes, isPacked)
Creates an LLVM identified struct type with no body and a name starting with the given prefix. If a struct with the exact name as the given prefix already exists, appends an unspecified suffix to the name so that the name is unique in context.
',3))]),e("details",Vc,[e("summary",null,[t[2088]||(t[2088]=e("a",{id:"Reactant.MLIR.API.mlirLLVMStructTypeIsLiteral-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMStructTypeIsLiteral-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMStructTypeIsLiteral")],-1)),t[2089]||(t[2089]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2090]||(t[2090]=l('mlirLLVMStructTypeIsLiteral(type)
Returns true
if the type is a literal (unnamed) LLVM struct type.
mlirLLVMStructTypeIsOpaque(type)
Returns true
is the struct is explicitly opaque (will not have a body) or uninitialized (will eventually have a body).
mlirLLVMStructTypeIsPacked(type)
Returns true
if the struct is packed.
mlirLLVMStructTypeLiteralGet(ctx, nFieldTypes, fieldTypes, isPacked)
Creates an LLVM literal (unnamed) struct type. This may assert if the fields have types not compatible with the LLVM dialect. For a graceful failure, use the checked version.
',3))]),e("details",Wc,[e("summary",null,[t[2100]||(t[2100]=e("a",{id:"Reactant.MLIR.API.mlirLLVMStructTypeLiteralGetChecked-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirLLVMStructTypeLiteralGetChecked-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMStructTypeLiteralGetChecked")],-1)),t[2101]||(t[2101]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2102]||(t[2102]=l('mlirLLVMStructTypeLiteralGetChecked(loc, nFieldTypes, fieldTypes, isPacked)
Creates an LLVM literal (unnamed) struct type if possible. Emits a diagnostic at the given location and returns null otherwise.
',3))]),e("details",Hc,[e("summary",null,[t[2103]||(t[2103]=e("a",{id:"Reactant.MLIR.API.mlirLLVMStructTypeSetBody-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirLLVMStructTypeSetBody-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMStructTypeSetBody")],-1)),t[2104]||(t[2104]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2105]||(t[2105]=l('mlirLLVMStructTypeSetBody(structType, nFieldTypes, fieldTypes, isPacked)
Sets the body of the identified struct if it hasn't been set yet. Returns whether the operation was successful.
',3))]),e("details",Zc,[e("summary",null,[t[2106]||(t[2106]=e("a",{id:"Reactant.MLIR.API.mlirLLVMVoidTypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMVoidTypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMVoidTypeGet")],-1)),t[2107]||(t[2107]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2108]||(t[2108]=l('mlirLLVMVoidTypeGet(ctx)
Creates an llmv.void type.
',3))]),e("details",Jc,[e("summary",null,[t[2109]||(t[2109]=e("a",{id:"Reactant.MLIR.API.mlirLinalgFillBuiltinNamedOpRegion-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLinalgFillBuiltinNamedOpRegion-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLinalgFillBuiltinNamedOpRegion")],-1)),t[2110]||(t[2110]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2111]||(t[2111]=l('mlirLinalgFillBuiltinNamedOpRegion(mlirOp)
Apply the special region builder for the builtin named Linalg op. Assert that mlirOp
is a builtin named Linalg op.
mlirLlvmThreadPoolCreate()
Create an LLVM thread pool. This is reexported here to avoid directly pulling in the LLVM headers directly.
',3))]),e("details",$c,[e("summary",null,[t[2115]||(t[2115]=e("a",{id:"Reactant.MLIR.API.mlirLlvmThreadPoolDestroy-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLlvmThreadPoolDestroy-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLlvmThreadPoolDestroy")],-1)),t[2116]||(t[2116]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2117]||(t[2117]=l('mlirLlvmThreadPoolDestroy(pool)
Destroy an LLVM thread pool.
',3))]),e("details",Xc,[e("summary",null,[t[2118]||(t[2118]=e("a",{id:"Reactant.MLIR.API.mlirLoadIRDLDialects-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLoadIRDLDialects-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLoadIRDLDialects")],-1)),t[2119]||(t[2119]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2120]||(t[2120]=l('mlirLoadIRDLDialects(_module)
Loads all IRDL dialects in the provided module, registering the dialects in the module's associated context.
',3))]),e("details",Yc,[e("summary",null,[t[2121]||(t[2121]=e("a",{id:"Reactant.MLIR.API.mlirLocationCallSiteGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirLocationCallSiteGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLocationCallSiteGet")],-1)),t[2122]||(t[2122]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2123]||(t[2123]=l('mlirLocationCallSiteGet(callee, caller)
Creates a call site location with a callee and a caller.
',3))]),e("details",_c,[e("summary",null,[t[2124]||(t[2124]=e("a",{id:"Reactant.MLIR.API.mlirLocationEqual-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirLocationEqual-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLocationEqual")],-1)),t[2125]||(t[2125]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2126]||(t[2126]=l('mlirLocationEqual(l1, l2)
Checks if two locations are equal.
',3))]),e("details",th,[e("summary",null,[t[2127]||(t[2127]=e("a",{id:"Reactant.MLIR.API.mlirLocationFileLineColGet-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirLocationFileLineColGet-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLocationFileLineColGet")],-1)),t[2128]||(t[2128]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2129]||(t[2129]=l('mlirLocationFileLineColGet(context, filename, line, col)
Creates an File/Line/Column location owned by the given context.
',3))]),e("details",eh,[e("summary",null,[t[2130]||(t[2130]=e("a",{id:"Reactant.MLIR.API.mlirLocationFromAttribute-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLocationFromAttribute-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLocationFromAttribute")],-1)),t[2131]||(t[2131]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2132]||(t[2132]=l('mlirLocationFromAttribute(attribute)
Creates a location from a location attribute.
',3))]),e("details",sh,[e("summary",null,[t[2133]||(t[2133]=e("a",{id:"Reactant.MLIR.API.mlirLocationFusedGet-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirLocationFusedGet-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLocationFusedGet")],-1)),t[2134]||(t[2134]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2135]||(t[2135]=l('mlirLocationFusedGet(ctx, nLocations, locations, metadata)
Creates a fused location with an array of locations and metadata.
',3))]),e("details",ah,[e("summary",null,[t[2136]||(t[2136]=e("a",{id:"Reactant.MLIR.API.mlirLocationGetAttribute-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLocationGetAttribute-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLocationGetAttribute")],-1)),t[2137]||(t[2137]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2138]||(t[2138]=l('mlirLocationGetAttribute(location)
Returns the underlying location attribute of this location.
',3))]),e("details",ih,[e("summary",null,[t[2139]||(t[2139]=e("a",{id:"Reactant.MLIR.API.mlirLocationGetContext-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLocationGetContext-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLocationGetContext")],-1)),t[2140]||(t[2140]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2141]||(t[2141]=l('mlirLocationGetContext(location)
Gets the context that a location was created with.
',3))]),e("details",lh,[e("summary",null,[t[2142]||(t[2142]=e("a",{id:"Reactant.MLIR.API.mlirLocationIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLocationIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLocationIsNull")],-1)),t[2143]||(t[2143]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2144]||(t[2144]=l('mlirLocationIsNull(location)
Checks if the location is null.
',3))]),e("details",nh,[e("summary",null,[t[2145]||(t[2145]=e("a",{id:"Reactant.MLIR.API.mlirLocationNameGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirLocationNameGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLocationNameGet")],-1)),t[2146]||(t[2146]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2147]||(t[2147]=l('mlirLocationNameGet(context, name, childLoc)
Creates a name location owned by the given context. Providing null location for childLoc is allowed and if childLoc is null location, then the behavior is the same as having unknown child location.
',3))]),e("details",ph,[e("summary",null,[t[2148]||(t[2148]=e("a",{id:"Reactant.MLIR.API.mlirLocationPrint-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirLocationPrint-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLocationPrint")],-1)),t[2149]||(t[2149]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2150]||(t[2150]=l('mlirLocationPrint(location, callback, userData)
Prints a location by sending chunks of the string representation and forwarding userData to
callback`. Note that the callback may be called several times with consecutive chunks of the string.
mlirLocationUnknownGet(context)
Creates a location with unknown position owned by the given context.
',3))]),e("details",oh,[e("summary",null,[t[2154]||(t[2154]=e("a",{id:"Reactant.MLIR.API.mlirLogicalResultFailure-Tuple{}",href:"#Reactant.MLIR.API.mlirLogicalResultFailure-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLogicalResultFailure")],-1)),t[2155]||(t[2155]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2156]||(t[2156]=l('mlirLogicalResultFailure()
Creates a logical result representing a failure.
',3))]),e("details",dh,[e("summary",null,[t[2157]||(t[2157]=e("a",{id:"Reactant.MLIR.API.mlirLogicalResultIsFailure-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLogicalResultIsFailure-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLogicalResultIsFailure")],-1)),t[2158]||(t[2158]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2159]||(t[2159]=l('mlirLogicalResultIsFailure(res)
Checks if the given logical result represents a failure.
',3))]),e("details",ch,[e("summary",null,[t[2160]||(t[2160]=e("a",{id:"Reactant.MLIR.API.mlirLogicalResultIsSuccess-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLogicalResultIsSuccess-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLogicalResultIsSuccess")],-1)),t[2161]||(t[2161]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2162]||(t[2162]=l('mlirLogicalResultIsSuccess(res)
Checks if the given logical result represents a success.
',3))]),e("details",hh,[e("summary",null,[t[2163]||(t[2163]=e("a",{id:"Reactant.MLIR.API.mlirLogicalResultSuccess-Tuple{}",href:"#Reactant.MLIR.API.mlirLogicalResultSuccess-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLogicalResultSuccess")],-1)),t[2164]||(t[2164]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2165]||(t[2165]=l('mlirLogicalResultSuccess()
Creates a logical result representing a success.
',3))]),e("details",uh,[e("summary",null,[t[2166]||(t[2166]=e("a",{id:"Reactant.MLIR.API.mlirMemRefTypeContiguousGet-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirMemRefTypeContiguousGet-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirMemRefTypeContiguousGet")],-1)),t[2167]||(t[2167]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2168]||(t[2168]=l('mlirMemRefTypeContiguousGet(elementType, rank, shape, memorySpace)
Creates a MemRef type with the given rank, shape, memory space and element type in the same context as the element type. The type has no affine maps, i.e. represents a default row-major contiguous memref. The type is owned by the context.
',3))]),e("details",bh,[e("summary",null,[t[2169]||(t[2169]=e("a",{id:"Reactant.MLIR.API.mlirMemRefTypeContiguousGetChecked-NTuple{5, Any}",href:"#Reactant.MLIR.API.mlirMemRefTypeContiguousGetChecked-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirMemRefTypeContiguousGetChecked")],-1)),t[2170]||(t[2170]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2171]||(t[2171]=l('mlirMemRefTypeContiguousGetChecked(loc, elementType, rank, shape, memorySpace)
Same as "mlirMemRefTypeContiguousGet
" but returns a nullptr wrapping MlirType
on illegal arguments, emitting appropriate diagnostics.
mlirMemRefTypeGet(elementType, rank, shape, layout, memorySpace)
Creates a MemRef type with the given rank and shape, a potentially empty list of affine layout maps, the given memory space and element type, in the same context as element type. The type is owned by the context.
',3))]),e("details",yh,[e("summary",null,[t[2175]||(t[2175]=e("a",{id:"Reactant.MLIR.API.mlirMemRefTypeGetAffineMap-Tuple{Any}",href:"#Reactant.MLIR.API.mlirMemRefTypeGetAffineMap-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirMemRefTypeGetAffineMap")],-1)),t[2176]||(t[2176]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2177]||(t[2177]=l('mlirMemRefTypeGetAffineMap(type)
Returns the affine map of the given MemRef type.
',3))]),e("details",mh,[e("summary",null,[t[2178]||(t[2178]=e("a",{id:"Reactant.MLIR.API.mlirMemRefTypeGetChecked-NTuple{6, Any}",href:"#Reactant.MLIR.API.mlirMemRefTypeGetChecked-NTuple{6, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirMemRefTypeGetChecked")],-1)),t[2179]||(t[2179]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2180]||(t[2180]=l('mlirMemRefTypeGetChecked(loc, elementType, rank, shape, layout, memorySpace)
Same as "mlirMemRefTypeGet
" but returns a nullptr-wrapping MlirType
o illegal arguments, emitting appropriate diagnostics.
mlirMemRefTypeGetLayout(type)
Returns the layout of the given MemRef type.
',3))]),e("details",fh,[e("summary",null,[t[2184]||(t[2184]=e("a",{id:"Reactant.MLIR.API.mlirMemRefTypeGetMemorySpace-Tuple{Any}",href:"#Reactant.MLIR.API.mlirMemRefTypeGetMemorySpace-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirMemRefTypeGetMemorySpace")],-1)),t[2185]||(t[2185]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2186]||(t[2186]=l('mlirMemRefTypeGetMemorySpace(type)
Returns the memory space of the given MemRef type.
',3))]),e("details",Rh,[e("summary",null,[t[2187]||(t[2187]=e("a",{id:"Reactant.MLIR.API.mlirMemRefTypeGetStridesAndOffset-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirMemRefTypeGetStridesAndOffset-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirMemRefTypeGetStridesAndOffset")],-1)),t[2188]||(t[2188]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2189]||(t[2189]=l('mlirMemRefTypeGetStridesAndOffset(type, strides, offset)
Returns the strides of the MemRef if the layout map is in strided form. Both strides and offset are out params. strides must point to pre-allocated memory of length equal to the rank of the memref.
',3))]),e("details",Ih,[e("summary",null,[t[2190]||(t[2190]=e("a",{id:"Reactant.MLIR.API.mlirMemRefTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirMemRefTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirMemRefTypeGetTypeID")],-1)),t[2191]||(t[2191]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2192]||(t[2192]=l('mlirMemRefTypeGetTypeID()
Returns the typeID of an MemRef type.
',3))]),e("details",jh,[e("summary",null,[t[2193]||(t[2193]=e("a",{id:"Reactant.MLIR.API.mlirMergeSymbolsIntoFromClone-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirMergeSymbolsIntoFromClone-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirMergeSymbolsIntoFromClone")],-1)),t[2194]||(t[2194]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2195]||(t[2195]=l('mlirMergeSymbolsIntoFromClone(target, other)
Merge the symbols from other
into target
, potentially renaming them to avoid conflicts. Private symbols may be renamed during the merge, public symbols must have at most one declaration. A name conflict in public symbols is reported as an error before returning a failure.
Note that this clones the other
operation unlike the C++ counterpart that takes ownership.
mlirModuleCreateEmpty(location)
Creates a new, empty module and transfers ownership to the caller.
',3))]),e("details",Ah,[e("summary",null,[t[2199]||(t[2199]=e("a",{id:"Reactant.MLIR.API.mlirModuleCreateParse-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirModuleCreateParse-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirModuleCreateParse")],-1)),t[2200]||(t[2200]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2201]||(t[2201]=l('mlirModuleCreateParse(context, _module)
Parses a module from the string and transfers ownership to the caller.
',3))]),e("details",Lh,[e("summary",null,[t[2202]||(t[2202]=e("a",{id:"Reactant.MLIR.API.mlirModuleDestroy-Tuple{Any}",href:"#Reactant.MLIR.API.mlirModuleDestroy-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirModuleDestroy")],-1)),t[2203]||(t[2203]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2204]||(t[2204]=l('mlirModuleDestroy(_module)
Takes a module owned by the caller and deletes it.
',3))]),e("details",Eh,[e("summary",null,[t[2205]||(t[2205]=e("a",{id:"Reactant.MLIR.API.mlirModuleFromOperation-Tuple{Any}",href:"#Reactant.MLIR.API.mlirModuleFromOperation-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirModuleFromOperation")],-1)),t[2206]||(t[2206]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2207]||(t[2207]=l('mlirModuleFromOperation(op)
Views the generic operation as a module. The returned module is null when the input operation was not a ModuleOp.
',3))]),e("details",vh,[e("summary",null,[t[2208]||(t[2208]=e("a",{id:"Reactant.MLIR.API.mlirModuleGetBody-Tuple{Any}",href:"#Reactant.MLIR.API.mlirModuleGetBody-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirModuleGetBody")],-1)),t[2209]||(t[2209]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2210]||(t[2210]=l('mlirModuleGetBody(_module)
Gets the body of the module, i.e. the only block it contains.
',3))]),e("details",Th,[e("summary",null,[t[2211]||(t[2211]=e("a",{id:"Reactant.MLIR.API.mlirModuleGetContext-Tuple{Any}",href:"#Reactant.MLIR.API.mlirModuleGetContext-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirModuleGetContext")],-1)),t[2212]||(t[2212]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2213]||(t[2213]=l('mlirModuleGetContext(_module)
Gets the context that a module was created with.
',3))]),e("details",Ch,[e("summary",null,[t[2214]||(t[2214]=e("a",{id:"Reactant.MLIR.API.mlirModuleGetOperation-Tuple{Any}",href:"#Reactant.MLIR.API.mlirModuleGetOperation-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirModuleGetOperation")],-1)),t[2215]||(t[2215]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2216]||(t[2216]=l('mlirModuleGetOperation(_module)
Views the module as a generic operation.
',3))]),e("details",xh,[e("summary",null,[t[2217]||(t[2217]=e("a",{id:"Reactant.MLIR.API.mlirModuleIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirModuleIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirModuleIsNull")],-1)),t[2218]||(t[2218]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2219]||(t[2219]=l('mlirModuleIsNull(_module)
Checks whether a module is null.
',3))]),e("details",Fh,[e("summary",null,[t[2220]||(t[2220]=e("a",{id:"Reactant.MLIR.API.mlirNamedAttributeGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirNamedAttributeGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirNamedAttributeGet")],-1)),t[2221]||(t[2221]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2222]||(t[2222]=l('mlirNamedAttributeGet(name, attr)
Associates an attribute with the name. Takes ownership of neither.
',3))]),e("details",Ph,[e("summary",null,[t[2223]||(t[2223]=e("a",{id:"Reactant.MLIR.API.mlirNoneTypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirNoneTypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirNoneTypeGet")],-1)),t[2224]||(t[2224]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2225]||(t[2225]=l('mlirNoneTypeGet(ctx)
Creates a None type in the given context. The type is owned by the context.
',3))]),e("details",Dh,[e("summary",null,[t[2226]||(t[2226]=e("a",{id:"Reactant.MLIR.API.mlirNoneTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirNoneTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirNoneTypeGetTypeID")],-1)),t[2227]||(t[2227]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2228]||(t[2228]=l('mlirNoneTypeGetTypeID()
Returns the typeID of an None type.
',3))]),e("details",Oh,[e("summary",null,[t[2229]||(t[2229]=e("a",{id:"Reactant.MLIR.API.mlirOpOperandGetNextUse-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOpOperandGetNextUse-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpOperandGetNextUse")],-1)),t[2230]||(t[2230]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2231]||(t[2231]=l('mlirOpOperandGetNextUse(opOperand)
Returns an op operand representing the next use of the value, or a null op operand if there is no next use.
',3))]),e("details",Bh,[e("summary",null,[t[2232]||(t[2232]=e("a",{id:"Reactant.MLIR.API.mlirOpOperandGetOperandNumber-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOpOperandGetOperandNumber-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpOperandGetOperandNumber")],-1)),t[2233]||(t[2233]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2234]||(t[2234]=l('mlirOpOperandGetOperandNumber(opOperand)
Returns the operand number of an op operand.
',3))]),e("details",Gh,[e("summary",null,[t[2235]||(t[2235]=e("a",{id:"Reactant.MLIR.API.mlirOpOperandGetOwner-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOpOperandGetOwner-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpOperandGetOwner")],-1)),t[2236]||(t[2236]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2237]||(t[2237]=l('mlirOpOperandGetOwner(opOperand)
Returns the owner operation of an op operand.
',3))]),e("details",zh,[e("summary",null,[t[2238]||(t[2238]=e("a",{id:"Reactant.MLIR.API.mlirOpOperandGetValue-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOpOperandGetValue-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpOperandGetValue")],-1)),t[2239]||(t[2239]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2240]||(t[2240]=l('mlirOpOperandGetValue(opOperand)
Returns the value of an op operand.
',3))]),e("details",wh,[e("summary",null,[t[2241]||(t[2241]=e("a",{id:"Reactant.MLIR.API.mlirOpOperandIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOpOperandIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpOperandIsNull")],-1)),t[2242]||(t[2242]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2243]||(t[2243]=l('mlirOpOperandIsNull(opOperand)
Returns whether the op operand is null.
',3))]),e("details",Sh,[e("summary",null,[t[2244]||(t[2244]=e("a",{id:"Reactant.MLIR.API.mlirOpPassManagerAddOwnedPass-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOpPassManagerAddOwnedPass-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpPassManagerAddOwnedPass")],-1)),t[2245]||(t[2245]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2246]||(t[2246]=l('mlirOpPassManagerAddOwnedPass(passManager, pass)
Add a pass and transfer ownership to the provided mlirOpPassManager. If the pass is not a generic operation pass or matching the type of the provided PassManager, a new OpPassManager is implicitly nested under the provided PassManager.
',3))]),e("details",Nh,[e("summary",null,[t[2247]||(t[2247]=e("a",{id:"Reactant.MLIR.API.mlirOpPassManagerAddPipeline-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirOpPassManagerAddPipeline-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpPassManagerAddPipeline")],-1)),t[2248]||(t[2248]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2249]||(t[2249]=l('mlirOpPassManagerAddPipeline(passManager, pipelineElements, callback, userData)
Parse a sequence of textual MLIR pass pipeline elements and add them to the provided OpPassManager. If parsing fails an error message is reported using the provided callback.
',3))]),e("details",Vh,[e("summary",null,[t[2250]||(t[2250]=e("a",{id:"Reactant.MLIR.API.mlirOpPassManagerGetNestedUnder-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOpPassManagerGetNestedUnder-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpPassManagerGetNestedUnder")],-1)),t[2251]||(t[2251]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2252]||(t[2252]=l('mlirOpPassManagerGetNestedUnder(passManager, operationName)
Nest an OpPassManager under the provided OpPassManager, the nested passmanager will only run on operations matching the provided name. The returned OpPassManager will be destroyed when the parent is destroyed.
',3))]),e("details",qh,[e("summary",null,[t[2253]||(t[2253]=e("a",{id:"Reactant.MLIR.API.mlirOpPrintingFlagsAssumeVerified-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOpPrintingFlagsAssumeVerified-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpPrintingFlagsAssumeVerified")],-1)),t[2254]||(t[2254]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2255]||(t[2255]=l('mlirOpPrintingFlagsAssumeVerified(flags)
Do not verify the operation when using custom operation printers.
',3))]),e("details",Uh,[e("summary",null,[t[2256]||(t[2256]=e("a",{id:"Reactant.MLIR.API.mlirOpPrintingFlagsCreate-Tuple{}",href:"#Reactant.MLIR.API.mlirOpPrintingFlagsCreate-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpPrintingFlagsCreate")],-1)),t[2257]||(t[2257]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2258]||(t[2258]=l('mlirOpPrintingFlagsCreate()
Creates new printing flags with defaults, intended for customization. Must be freed with a call to mlirOpPrintingFlagsDestroy
().
mlirOpPrintingFlagsDestroy(flags)
Destroys printing flags created with mlirOpPrintingFlagsCreate
.
mlirOpPrintingFlagsElideLargeElementsAttrs(flags, largeElementLimit)
Enables the elision of large elements attributes by printing a lexically valid but otherwise meaningless form instead of the element data. The largeElementLimit
is used to configure what is considered to be a "large" ElementsAttr by providing an upper limit to the number of elements.
mlirOpPrintingFlagsElideLargeResourceString(flags, largeResourceLimit)
Enables the elision of large resources strings by omitting them from the dialect_resources
section. The largeResourceLimit
is used to configure what is considered to be a "large" resource by providing an upper limit to the string size.
mlirOpPrintingFlagsEnableDebugInfo(flags, enable, prettyForm)
Enable or disable printing of debug information (based on enable
). If 'prettyForm' is set to true, debug information is printed in a more readable 'pretty' form. Note: The IR generated with 'prettyForm' is not parsable.
mlirOpPrintingFlagsPrintGenericOpForm(flags)
Always print operations in the generic form.
',3))]),e("details",Kh,[e("summary",null,[t[2274]||(t[2274]=e("a",{id:"Reactant.MLIR.API.mlirOpPrintingFlagsSkipRegions-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOpPrintingFlagsSkipRegions-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpPrintingFlagsSkipRegions")],-1)),t[2275]||(t[2275]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2276]||(t[2276]=l('mlirOpPrintingFlagsSkipRegions(flags)
Skip printing regions.
',3))]),e("details",$h,[e("summary",null,[t[2277]||(t[2277]=e("a",{id:"Reactant.MLIR.API.mlirOpPrintingFlagsUseLocalScope-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOpPrintingFlagsUseLocalScope-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpPrintingFlagsUseLocalScope")],-1)),t[2278]||(t[2278]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2279]||(t[2279]=l('mlirOpPrintingFlagsUseLocalScope(flags)
Use local scope when printing the operation. This allows for using the printer in a more localized and thread-safe setting, but may not necessarily be identical to what the IR will look like when dumping the full module.
',3))]),e("details",Xh,[e("summary",null,[t[2280]||(t[2280]=e("a",{id:"Reactant.MLIR.API.mlirOpResultGetOwner-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOpResultGetOwner-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpResultGetOwner")],-1)),t[2281]||(t[2281]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2282]||(t[2282]=l('mlirOpResultGetOwner(value)
Returns an operation that produced this value as its result. Asserts if the value is not an op result.
',3))]),e("details",Yh,[e("summary",null,[t[2283]||(t[2283]=e("a",{id:"Reactant.MLIR.API.mlirOpResultGetResultNumber-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOpResultGetResultNumber-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpResultGetResultNumber")],-1)),t[2284]||(t[2284]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2285]||(t[2285]=l('mlirOpResultGetResultNumber(value)
Returns the position of the value in the list of results of the operation that produced it.
',3))]),e("details",_h,[e("summary",null,[t[2286]||(t[2286]=e("a",{id:"Reactant.MLIR.API.mlirOpaqueAttrGet-NTuple{5, Any}",href:"#Reactant.MLIR.API.mlirOpaqueAttrGet-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpaqueAttrGet")],-1)),t[2287]||(t[2287]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2288]||(t[2288]=l('mlirOpaqueAttrGet(ctx, dialectNamespace, dataLength, data, type)
Creates an opaque attribute in the given context associated with the dialect identified by its namespace. The attribute contains opaque byte data of the specified length (data need not be null-terminated).
',3))]),e("details",tu,[e("summary",null,[t[2289]||(t[2289]=e("a",{id:"Reactant.MLIR.API.mlirOpaqueAttrGetData-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOpaqueAttrGetData-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpaqueAttrGetData")],-1)),t[2290]||(t[2290]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2291]||(t[2291]=l('mlirOpaqueAttrGetData(attr)
Returns the raw data as a string reference. The data remains live as long as the context in which the attribute lives.
',3))]),e("details",eu,[e("summary",null,[t[2292]||(t[2292]=e("a",{id:"Reactant.MLIR.API.mlirOpaqueAttrGetDialectNamespace-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOpaqueAttrGetDialectNamespace-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpaqueAttrGetDialectNamespace")],-1)),t[2293]||(t[2293]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2294]||(t[2294]=l('mlirOpaqueAttrGetDialectNamespace(attr)
Returns the namespace of the dialect with which the given opaque attribute is associated. The namespace string is owned by the context.
',3))]),e("details",su,[e("summary",null,[t[2295]||(t[2295]=e("a",{id:"Reactant.MLIR.API.mlirOpaqueAttrGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirOpaqueAttrGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpaqueAttrGetTypeID")],-1)),t[2296]||(t[2296]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2297]||(t[2297]=l('mlirOpaqueAttrGetTypeID()
Returns the typeID of an Opaque attribute.
',3))]),e("details",au,[e("summary",null,[t[2298]||(t[2298]=e("a",{id:"Reactant.MLIR.API.mlirOpaqueTypeGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirOpaqueTypeGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpaqueTypeGet")],-1)),t[2299]||(t[2299]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2300]||(t[2300]=l('mlirOpaqueTypeGet(ctx, dialectNamespace, typeData)
Creates an opaque type in the given context associated with the dialect identified by its namespace. The type contains opaque byte data of the specified length (data need not be null-terminated).
',3))]),e("details",iu,[e("summary",null,[t[2301]||(t[2301]=e("a",{id:"Reactant.MLIR.API.mlirOpaqueTypeGetData-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOpaqueTypeGetData-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpaqueTypeGetData")],-1)),t[2302]||(t[2302]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2303]||(t[2303]=l('mlirOpaqueTypeGetData(type)
Returns the raw data as a string reference. The data remains live as long as the context in which the type lives.
',3))]),e("details",lu,[e("summary",null,[t[2304]||(t[2304]=e("a",{id:"Reactant.MLIR.API.mlirOpaqueTypeGetDialectNamespace-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOpaqueTypeGetDialectNamespace-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpaqueTypeGetDialectNamespace")],-1)),t[2305]||(t[2305]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2306]||(t[2306]=l('mlirOpaqueTypeGetDialectNamespace(type)
Returns the namespace of the dialect with which the given opaque type is associated. The namespace string is owned by the context.
',3))]),e("details",nu,[e("summary",null,[t[2307]||(t[2307]=e("a",{id:"Reactant.MLIR.API.mlirOpaqueTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirOpaqueTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpaqueTypeGetTypeID")],-1)),t[2308]||(t[2308]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2309]||(t[2309]=l('mlirOpaqueTypeGetTypeID()
Returns the typeID of an Opaque type.
',3))]),e("details",pu,[e("summary",null,[t[2310]||(t[2310]=e("a",{id:"Reactant.MLIR.API.mlirOperationClone-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationClone-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationClone")],-1)),t[2311]||(t[2311]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2312]||(t[2312]=l('mlirOperationClone(op)
Creates a deep copy of an operation. The operation is not inserted and ownership is transferred to the caller.
',3))]),e("details",ru,[e("summary",null,[t[2313]||(t[2313]=e("a",{id:"Reactant.MLIR.API.mlirOperationCreate-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationCreate-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationCreate")],-1)),t[2314]||(t[2314]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2315]||(t[2315]=l('mlirOperationCreate(state)
Creates an operation and transfers ownership to the caller. Note that caller owned child objects are transferred in this call and must not be further used. Particularly, this applies to any regions added to the state (the implementation may invalidate any such pointers).
This call can fail under the following conditions, in which case, it will return a null operation and emit diagnostics: - Result type inference is enabled and cannot be performed.
',4))]),e("details",ou,[e("summary",null,[t[2316]||(t[2316]=e("a",{id:"Reactant.MLIR.API.mlirOperationCreateParse-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirOperationCreateParse-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationCreateParse")],-1)),t[2317]||(t[2317]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2318]||(t[2318]=l('mlirOperationCreateParse(context, sourceStr, sourceName)
Parses an operation, giving ownership to the caller. If parsing fails a null operation will be returned, and an error diagnostic emitted.
sourceStr
may be either the text assembly format, or binary bytecode format. sourceName
is used as the file name of the source; any IR without locations will get a FileLineColLoc
location with sourceName
as the file name.
mlirOperationDestroy(op)
Takes an operation owned by the caller and destroys it.
',3))]),e("details",cu,[e("summary",null,[t[2322]||(t[2322]=e("a",{id:"Reactant.MLIR.API.mlirOperationDump-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationDump-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationDump")],-1)),t[2323]||(t[2323]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2324]||(t[2324]=l('mlirOperationDump(op)
Prints an operation to stderr.
',3))]),e("details",hu,[e("summary",null,[t[2325]||(t[2325]=e("a",{id:"Reactant.MLIR.API.mlirOperationEqual-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOperationEqual-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationEqual")],-1)),t[2326]||(t[2326]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2327]||(t[2327]=l('mlirOperationEqual(op, other)
Checks whether two operation handles point to the same operation. This does not perform deep comparison.
',3))]),e("details",uu,[e("summary",null,[t[2328]||(t[2328]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetAttribute-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOperationGetAttribute-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetAttribute")],-1)),t[2329]||(t[2329]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2330]||(t[2330]=l('mlirOperationGetAttribute(op, pos)
Return pos
-th attribute of the operation. Deprecated, please use mlirOperationGetInherentAttribute
or mlirOperationGetDiscardableAttribute
.
mlirOperationGetAttributeByName(op, name)
Returns an attribute attached to the operation given its name. Deprecated, please use mlirOperationGetInherentAttributeByName
or mlirOperationGetDiscardableAttributeByName
.
mlirOperationGetBlock(op)
Gets the block that owns this operation, returning null if the operation is not owned.
',3))]),e("details",yu,[e("summary",null,[t[2337]||(t[2337]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetContext-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationGetContext-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetContext")],-1)),t[2338]||(t[2338]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2339]||(t[2339]=l('mlirOperationGetContext(op)
Gets the context this operation is associated with
',3))]),e("details",mu,[e("summary",null,[t[2340]||(t[2340]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetDiscardableAttribute-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOperationGetDiscardableAttribute-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetDiscardableAttribute")],-1)),t[2341]||(t[2341]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2342]||(t[2342]=l('mlirOperationGetDiscardableAttribute(op, pos)
Return pos
-th discardable attribute of the operation.
mlirOperationGetDiscardableAttributeByName(op, name)
Returns a discardable attribute attached to the operation given its name.
',3))]),e("details",fu,[e("summary",null,[t[2346]||(t[2346]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetFirstRegion-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationGetFirstRegion-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetFirstRegion")],-1)),t[2347]||(t[2347]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2348]||(t[2348]=l('mlirOperationGetFirstRegion(op)
Returns first region attached to the operation.
',3))]),e("details",Ru,[e("summary",null,[t[2349]||(t[2349]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetInherentAttributeByName-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOperationGetInherentAttributeByName-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetInherentAttributeByName")],-1)),t[2350]||(t[2350]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2351]||(t[2351]=l('mlirOperationGetInherentAttributeByName(op, name)
Returns an inherent attribute attached to the operation given its name.
',3))]),e("details",Iu,[e("summary",null,[t[2352]||(t[2352]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetLocation-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationGetLocation-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetLocation")],-1)),t[2353]||(t[2353]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2354]||(t[2354]=l('mlirOperationGetLocation(op)
Gets the location of the operation.
',3))]),e("details",ju,[e("summary",null,[t[2355]||(t[2355]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetName-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationGetName-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetName")],-1)),t[2356]||(t[2356]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2357]||(t[2357]=l('mlirOperationGetName(op)
Gets the name of the operation as an identifier.
',3))]),e("details",Mu,[e("summary",null,[t[2358]||(t[2358]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetNextInBlock-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationGetNextInBlock-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetNextInBlock")],-1)),t[2359]||(t[2359]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2360]||(t[2360]=l('mlirOperationGetNextInBlock(op)
Returns an operation immediately following the given operation it its enclosing block.
',3))]),e("details",Au,[e("summary",null,[t[2361]||(t[2361]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetNumAttributes-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationGetNumAttributes-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetNumAttributes")],-1)),t[2362]||(t[2362]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2363]||(t[2363]=l('mlirOperationGetNumAttributes(op)
Returns the number of attributes attached to the operation. Deprecated, please use mlirOperationGetNumInherentAttributes
or mlirOperationGetNumDiscardableAttributes
.
mlirOperationGetNumDiscardableAttributes(op)
Returns the number of discardable attributes attached to the operation.
',3))]),e("details",Eu,[e("summary",null,[t[2367]||(t[2367]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetNumOperands-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationGetNumOperands-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetNumOperands")],-1)),t[2368]||(t[2368]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2369]||(t[2369]=l('mlirOperationGetNumOperands(op)
Returns the number of operands of the operation.
',3))]),e("details",vu,[e("summary",null,[t[2370]||(t[2370]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetNumRegions-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationGetNumRegions-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetNumRegions")],-1)),t[2371]||(t[2371]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2372]||(t[2372]=l('mlirOperationGetNumRegions(op)
Returns the number of regions attached to the given operation.
',3))]),e("details",Tu,[e("summary",null,[t[2373]||(t[2373]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetNumResults-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationGetNumResults-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetNumResults")],-1)),t[2374]||(t[2374]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2375]||(t[2375]=l('mlirOperationGetNumResults(op)
Returns the number of results of the operation.
',3))]),e("details",Cu,[e("summary",null,[t[2376]||(t[2376]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetNumSuccessors-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationGetNumSuccessors-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetNumSuccessors")],-1)),t[2377]||(t[2377]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2378]||(t[2378]=l('mlirOperationGetNumSuccessors(op)
Returns the number of successor blocks of the operation.
',3))]),e("details",xu,[e("summary",null,[t[2379]||(t[2379]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetOperand-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOperationGetOperand-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetOperand")],-1)),t[2380]||(t[2380]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2381]||(t[2381]=l('mlirOperationGetOperand(op, pos)
Returns pos
-th operand of the operation.
mlirOperationGetParentOperation(op)
Gets the operation that owns this operation, returning null if the operation is not owned.
',3))]),e("details",Pu,[e("summary",null,[t[2385]||(t[2385]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetRegion-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOperationGetRegion-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetRegion")],-1)),t[2386]||(t[2386]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2387]||(t[2387]=l('mlirOperationGetRegion(op, pos)
Returns pos
-th region attached to the operation.
mlirOperationGetResult(op, pos)
Returns pos
-th result of the operation.
mlirOperationGetSuccessor(op, pos)
Returns pos
-th successor of the operation.
mlirOperationGetTypeID(op)
Gets the type id of the operation. Returns null if the operation does not have a registered operation description.
',3))]),e("details",Gu,[e("summary",null,[t[2397]||(t[2397]=e("a",{id:"Reactant.MLIR.API.mlirOperationHasInherentAttributeByName-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOperationHasInherentAttributeByName-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationHasInherentAttributeByName")],-1)),t[2398]||(t[2398]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2399]||(t[2399]=l('mlirOperationHasInherentAttributeByName(op, name)
Returns true if this operation defines an inherent attribute with this name. Note: the attribute can be optional, so mlirOperationGetInherentAttributeByName
can still return a null attribute.
mlirOperationImplementsInterface(operation, interfaceTypeID)
Returns true
if the given operation implements an interface identified by its TypeID.
mlirOperationImplementsInterfaceStatic(operationName, context, interfaceTypeID)
Returns true
if the operation identified by its canonical string name implements the interface identified by its TypeID in the given context. Note that interfaces may be attached to operations in some contexts and not others.
mlirOperationIsNull(op)
Checks whether the underlying operation is null.
',3))]),e("details",Nu,[e("summary",null,[t[2409]||(t[2409]=e("a",{id:"Reactant.MLIR.API.mlirOperationMoveAfter-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOperationMoveAfter-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationMoveAfter")],-1)),t[2410]||(t[2410]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2411]||(t[2411]=l('mlirOperationMoveAfter(op, other)
Moves the given operation immediately after the other operation in its parent block. The given operation may be owned by the caller or by its current block. The other operation must belong to a block. In any case, the ownership is transferred to the block of the other operation.
',3))]),e("details",Vu,[e("summary",null,[t[2412]||(t[2412]=e("a",{id:"Reactant.MLIR.API.mlirOperationMoveBefore-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOperationMoveBefore-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationMoveBefore")],-1)),t[2413]||(t[2413]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2414]||(t[2414]=l('mlirOperationMoveBefore(op, other)
Moves the given operation immediately before the other operation in its parent block. The given operation may be owner by the caller or by its current block. The other operation must belong to a block. In any case, the ownership is transferred to the block of the other operation.
',3))]),e("details",qu,[e("summary",null,[t[2415]||(t[2415]=e("a",{id:"Reactant.MLIR.API.mlirOperationPrint-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirOperationPrint-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationPrint")],-1)),t[2416]||(t[2416]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2417]||(t[2417]=l('mlirOperationPrint(op, callback, userData)
Prints an operation by sending chunks of the string representation and forwarding userData to
callback`. Note that the callback may be called several times with consecutive chunks of the string.
mlirOperationPrintWithFlags(op, flags, callback, userData)
Same as mlirOperationPrint
but accepts flags controlling the printing behavior.
mlirOperationPrintWithState(op, state, callback, userData)
Same as mlirOperationPrint
but accepts AsmState controlling the printing behavior as well as caching computed names.
mlirOperationRemoveAttributeByName(op, name)
Removes an attribute by name. Returns false if the attribute was not found and true if removed. Deprecated, please use mlirOperationRemoveInherentAttributeByName
or mlirOperationRemoveDiscardableAttributeByName
.
mlirOperationRemoveDiscardableAttributeByName(op, name)
Removes a discardable attribute by name. Returns false if the attribute was not found and true if removed.
',3))]),e("details",Zu,[e("summary",null,[t[2430]||(t[2430]=e("a",{id:"Reactant.MLIR.API.mlirOperationRemoveFromParent-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationRemoveFromParent-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationRemoveFromParent")],-1)),t[2431]||(t[2431]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2432]||(t[2432]=l('mlirOperationRemoveFromParent(op)
Removes the given operation from its parent block. The operation is not destroyed. The ownership of the operation is transferred to the caller.
',3))]),e("details",Ju,[e("summary",null,[t[2433]||(t[2433]=e("a",{id:"Reactant.MLIR.API.mlirOperationSetAttributeByName-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirOperationSetAttributeByName-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationSetAttributeByName")],-1)),t[2434]||(t[2434]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2435]||(t[2435]=l('mlirOperationSetAttributeByName(op, name, attr)
Sets an attribute by name, replacing the existing if it exists or adding a new one otherwise. Deprecated, please use mlirOperationSetInherentAttributeByName
or mlirOperationSetDiscardableAttributeByName
.
mlirOperationSetDiscardableAttributeByName(op, name, attr)
Sets a discardable attribute by name, replacing the existing if it exists or adding a new one otherwise. The new attr
Attribute is not allowed to be null, use mlirOperationRemoveDiscardableAttributeByName
to remove an Attribute instead.
mlirOperationSetInherentAttributeByName(op, name, attr)
Sets an inherent attribute by name, replacing the existing if it exists. This has no effect if "name" does not match an inherent attribute.
',3))]),e("details",Xu,[e("summary",null,[t[2442]||(t[2442]=e("a",{id:"Reactant.MLIR.API.mlirOperationSetOperand-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirOperationSetOperand-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationSetOperand")],-1)),t[2443]||(t[2443]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2444]||(t[2444]=l('mlirOperationSetOperand(op, pos, newValue)
Sets the pos
-th operand of the operation.
mlirOperationSetOperands(op, nOperands, operands)
Replaces the operands of the operation.
',3))]),e("details",_u,[e("summary",null,[t[2448]||(t[2448]=e("a",{id:"Reactant.MLIR.API.mlirOperationSetSuccessor-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirOperationSetSuccessor-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationSetSuccessor")],-1)),t[2449]||(t[2449]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2450]||(t[2450]=l('mlirOperationSetSuccessor(op, pos, block)
Set pos
-th successor of the operation.
mlirOperationStateAddResults(state, n, results)
Adds a list of components to the operation state.
',3))]),e("details",eb,[e("summary",null,[t[2454]||(t[2454]=e("a",{id:"Reactant.MLIR.API.mlirOperationStateEnableResultTypeInference-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationStateEnableResultTypeInference-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationStateEnableResultTypeInference")],-1)),t[2455]||(t[2455]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2456]||(t[2456]=l('mlirOperationStateEnableResultTypeInference(state)
Enables result type inference for the operation under construction. If enabled, then the caller must not have called mlirOperationStateAddResults
(). Note that if enabled, the mlirOperationCreate
() call is failable: it will return a null operation on inference failure and will emit diagnostics.
mlirOperationStateGet(name, loc)
Constructs an operation state from a name and a location.
',3))]),e("details",ab,[e("summary",null,[t[2460]||(t[2460]=e("a",{id:"Reactant.MLIR.API.mlirOperationVerify-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationVerify-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationVerify")],-1)),t[2461]||(t[2461]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2462]||(t[2462]=l('mlirOperationVerify(op)
Verify the operation and return true if it passes, false if it fails.
',3))]),e("details",ib,[e("summary",null,[t[2463]||(t[2463]=e("a",{id:"Reactant.MLIR.API.mlirOperationWalk-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirOperationWalk-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationWalk")],-1)),t[2464]||(t[2464]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2465]||(t[2465]=l('mlirOperationWalk(op, callback, userData, walkOrder)
Walks operation op
in walkOrder
and calls callback
on that operation. *userData
is passed to the callback as well and can be used to tunnel some context or other data into the callback.
mlirOperationWriteBytecode(op, callback, userData)
Same as mlirOperationPrint
but writing the bytecode format.
mlirOperationWriteBytecodeWithConfig(op, config, callback, userData)
Same as mlirOperationWriteBytecode
but with writer config and returns failure only if desired bytecode could not be honored.
mlirParsePassPipeline(passManager, pipeline, callback, userData)
Parse a textual MLIR pass pipeline and assign it to the provided OpPassManager. If parsing fails an error message is reported using the provided callback.
',3))]),e("details",rb,[e("summary",null,[t[2475]||(t[2475]=e("a",{id:"Reactant.MLIR.API.mlirPassManagerAddOwnedPass-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirPassManagerAddOwnedPass-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirPassManagerAddOwnedPass")],-1)),t[2476]||(t[2476]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2477]||(t[2477]=l('mlirPassManagerAddOwnedPass(passManager, pass)
Add a pass and transfer ownership to the provided top-level mlirPassManager. If the pass is not a generic operation pass or a ModulePass, a new OpPassManager is implicitly nested under the provided PassManager.
',3))]),e("details",ob,[e("summary",null,[t[2478]||(t[2478]=e("a",{id:"Reactant.MLIR.API.mlirPassManagerCreate-Tuple{Any}",href:"#Reactant.MLIR.API.mlirPassManagerCreate-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirPassManagerCreate")],-1)),t[2479]||(t[2479]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2480]||(t[2480]=l('mlirPassManagerCreate(ctx)
Create a new top-level PassManager with the default anchor.
',3))]),e("details",db,[e("summary",null,[t[2481]||(t[2481]=e("a",{id:"Reactant.MLIR.API.mlirPassManagerCreateOnOperation-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirPassManagerCreateOnOperation-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirPassManagerCreateOnOperation")],-1)),t[2482]||(t[2482]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2483]||(t[2483]=l('mlirPassManagerCreateOnOperation(ctx, anchorOp)
Create a new top-level PassManager anchored on anchorOp
.
mlirPassManagerDestroy(passManager)
Destroy the provided PassManager.
',3))]),e("details",hb,[e("summary",null,[t[2487]||(t[2487]=e("a",{id:"Reactant.MLIR.API.mlirPassManagerEnableIRPrinting-NTuple{6, Any}",href:"#Reactant.MLIR.API.mlirPassManagerEnableIRPrinting-NTuple{6, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirPassManagerEnableIRPrinting")],-1)),t[2488]||(t[2488]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2489]||(t[2489]=l('mlirPassManagerEnableIRPrinting(passManager, printBeforeAll, printAfterAll, printModuleScope, printAfterOnlyOnChange, printAfterOnlyOnFailure)
Enable IR printing.
',3))]),e("details",ub,[e("summary",null,[t[2490]||(t[2490]=e("a",{id:"Reactant.MLIR.API.mlirPassManagerEnableVerifier-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirPassManagerEnableVerifier-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirPassManagerEnableVerifier")],-1)),t[2491]||(t[2491]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2492]||(t[2492]=l('mlirPassManagerEnableVerifier(passManager, enable)
Enable / disable verify-each.
',3))]),e("details",bb,[e("summary",null,[t[2493]||(t[2493]=e("a",{id:"Reactant.MLIR.API.mlirPassManagerGetAsOpPassManager-Tuple{Any}",href:"#Reactant.MLIR.API.mlirPassManagerGetAsOpPassManager-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirPassManagerGetAsOpPassManager")],-1)),t[2494]||(t[2494]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2495]||(t[2495]=l('mlirPassManagerGetAsOpPassManager(passManager)
Cast a top-level PassManager to a generic OpPassManager.
',3))]),e("details",gb,[e("summary",null,[t[2496]||(t[2496]=e("a",{id:"Reactant.MLIR.API.mlirPassManagerGetNestedUnder-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirPassManagerGetNestedUnder-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirPassManagerGetNestedUnder")],-1)),t[2497]||(t[2497]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2498]||(t[2498]=l('mlirPassManagerGetNestedUnder(passManager, operationName)
Nest an OpPassManager under the top-level PassManager, the nested passmanager will only run on operations matching the provided name. The returned OpPassManager will be destroyed when the parent is destroyed. To further nest more OpPassManager under the newly returned one, see mlirOpPassManagerNest
below.
mlirPassManagerIsNull(passManager)
Checks if a PassManager is null.
',3))]),e("details",mb,[e("summary",null,[t[2502]||(t[2502]=e("a",{id:"Reactant.MLIR.API.mlirPassManagerRunOnOp-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirPassManagerRunOnOp-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirPassManagerRunOnOp")],-1)),t[2503]||(t[2503]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2504]||(t[2504]=l('mlirPassManagerRunOnOp(passManager, op)
Run the provided passManager
on the given op
.
mlirPrintPassPipeline(passManager, callback, userData)
Print a textual MLIR pass pipeline by sending chunks of the string representation and forwarding userData to
callback`. Note that the callback may be called several times with consecutive chunks of the string.
mlirQuantizedTypeCastExpressedToStorageType(type, candidate)
Casts from a type based on the expressed type of the given quantized type to equivalent type based on storage type of the same quantized type.
',3))]),e("details",Rb,[e("summary",null,[t[2511]||(t[2511]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeCastFromExpressedType-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirQuantizedTypeCastFromExpressedType-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeCastFromExpressedType")],-1)),t[2512]||(t[2512]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2513]||(t[2513]=l('mlirQuantizedTypeCastFromExpressedType(type, candidate)
Casts from a type based on the expressed type of the given type to a corresponding type based on the given type. Returns a null type if the cast is not valid.
',3))]),e("details",Ib,[e("summary",null,[t[2514]||(t[2514]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeCastFromStorageType-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirQuantizedTypeCastFromStorageType-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeCastFromStorageType")],-1)),t[2515]||(t[2515]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2516]||(t[2516]=l('mlirQuantizedTypeCastFromStorageType(type, candidate)
Casts from a type based on the storage type of the given type to a corresponding type based on the given type. Returns a null type if the cast is not valid.
',3))]),e("details",jb,[e("summary",null,[t[2517]||(t[2517]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeCastToExpressedType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirQuantizedTypeCastToExpressedType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeCastToExpressedType")],-1)),t[2518]||(t[2518]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2519]||(t[2519]=l('mlirQuantizedTypeCastToExpressedType(type)
Casts from a type based on a quantized type to a corresponding typed based on the expressed type. Returns a null type if the cast is not valid.
',3))]),e("details",Mb,[e("summary",null,[t[2520]||(t[2520]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeCastToStorageType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirQuantizedTypeCastToStorageType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeCastToStorageType")],-1)),t[2521]||(t[2521]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2522]||(t[2522]=l('mlirQuantizedTypeCastToStorageType(type)
Casts from a type based on a quantized type to a corresponding typed based on the storage type. Returns a null type if the cast is not valid.
',3))]),e("details",Ab,[e("summary",null,[t[2523]||(t[2523]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeGetDefaultMaximumForInteger-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirQuantizedTypeGetDefaultMaximumForInteger-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeGetDefaultMaximumForInteger")],-1)),t[2524]||(t[2524]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2525]||(t[2525]=l('mlirQuantizedTypeGetDefaultMaximumForInteger(isSigned, integralWidth)
Returns the maximum possible value stored by a quantized type.
',3))]),e("details",Lb,[e("summary",null,[t[2526]||(t[2526]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeGetDefaultMinimumForInteger-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirQuantizedTypeGetDefaultMinimumForInteger-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeGetDefaultMinimumForInteger")],-1)),t[2527]||(t[2527]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2528]||(t[2528]=l('mlirQuantizedTypeGetDefaultMinimumForInteger(isSigned, integralWidth)
Returns the minimum possible value stored by a quantized type.
',3))]),e("details",Eb,[e("summary",null,[t[2529]||(t[2529]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeGetExpressedType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirQuantizedTypeGetExpressedType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeGetExpressedType")],-1)),t[2530]||(t[2530]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2531]||(t[2531]=l('mlirQuantizedTypeGetExpressedType(type)
Gets the original type approximated by the given quantized type.
',3))]),e("details",vb,[e("summary",null,[t[2532]||(t[2532]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeGetFlags-Tuple{Any}",href:"#Reactant.MLIR.API.mlirQuantizedTypeGetFlags-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeGetFlags")],-1)),t[2533]||(t[2533]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2534]||(t[2534]=l('mlirQuantizedTypeGetFlags(type)
Gets the flags associated with the given quantized type.
',3))]),e("details",Tb,[e("summary",null,[t[2535]||(t[2535]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeGetQuantizedElementType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirQuantizedTypeGetQuantizedElementType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeGetQuantizedElementType")],-1)),t[2536]||(t[2536]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2537]||(t[2537]=l('mlirQuantizedTypeGetQuantizedElementType(type)
Returns the element type of the given quantized type as another quantized type.
',3))]),e("details",Cb,[e("summary",null,[t[2538]||(t[2538]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeGetSignedFlag-Tuple{}",href:"#Reactant.MLIR.API.mlirQuantizedTypeGetSignedFlag-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeGetSignedFlag")],-1)),t[2539]||(t[2539]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2540]||(t[2540]=l('mlirQuantizedTypeGetSignedFlag()
Returns the bit flag used to indicate signedness of a quantized type.
',3))]),e("details",xb,[e("summary",null,[t[2541]||(t[2541]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeGetStorageType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirQuantizedTypeGetStorageType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeGetStorageType")],-1)),t[2542]||(t[2542]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2543]||(t[2543]=l('mlirQuantizedTypeGetStorageType(type)
Returns the underlying type used to store the values.
',3))]),e("details",Fb,[e("summary",null,[t[2544]||(t[2544]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeGetStorageTypeIntegralWidth-Tuple{Any}",href:"#Reactant.MLIR.API.mlirQuantizedTypeGetStorageTypeIntegralWidth-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeGetStorageTypeIntegralWidth")],-1)),t[2545]||(t[2545]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2546]||(t[2546]=l('mlirQuantizedTypeGetStorageTypeIntegralWidth(type)
Returns the integral bitwidth that the storage type of the given quantized type can represent exactly.
',3))]),e("details",Pb,[e("summary",null,[t[2547]||(t[2547]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeGetStorageTypeMax-Tuple{Any}",href:"#Reactant.MLIR.API.mlirQuantizedTypeGetStorageTypeMax-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeGetStorageTypeMax")],-1)),t[2548]||(t[2548]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2549]||(t[2549]=l('mlirQuantizedTypeGetStorageTypeMax(type)
Returns the maximum value that the storage type of the given quantized type can take.
',3))]),e("details",Db,[e("summary",null,[t[2550]||(t[2550]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeGetStorageTypeMin-Tuple{Any}",href:"#Reactant.MLIR.API.mlirQuantizedTypeGetStorageTypeMin-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeGetStorageTypeMin")],-1)),t[2551]||(t[2551]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2552]||(t[2552]=l('mlirQuantizedTypeGetStorageTypeMin(type)
Returns the minimum value that the storage type of the given quantized type can take.
',3))]),e("details",Ob,[e("summary",null,[t[2553]||(t[2553]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeIsCompatibleExpressedType-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirQuantizedTypeIsCompatibleExpressedType-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeIsCompatibleExpressedType")],-1)),t[2554]||(t[2554]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2555]||(t[2555]=l('mlirQuantizedTypeIsCompatibleExpressedType(type, candidate)
Returns true
if the candidate
type is compatible with the given quantized type
.
mlirQuantizedTypeIsSigned(type)
Returns true
if the given type is signed, false
otherwise.
mlirRankedTensorTypeGet(rank, shape, elementType, encoding)
Creates a tensor type of a fixed rank with the given shape, element type, and optional encoding in the same context as the element type. The type is owned by the context. Tensor types without any specific encoding field should assign mlirAttributeGetNull
() to this parameter.
mlirRankedTensorTypeGetChecked(loc, rank, shape, elementType, encoding)
Same as "mlirRankedTensorTypeGet
" but returns a nullptr wrapping MlirType
on illegal arguments, emitting appropriate diagnostics.
mlirRankedTensorTypeGetEncoding(type)
Gets the 'encoding' attribute from the ranked tensor type, returning a null attribute if none.
',3))]),e("details",Sb,[e("summary",null,[t[2568]||(t[2568]=e("a",{id:"Reactant.MLIR.API.mlirRankedTensorTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirRankedTensorTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRankedTensorTypeGetTypeID")],-1)),t[2569]||(t[2569]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2570]||(t[2570]=l('mlirRankedTensorTypeGetTypeID()
Returns the typeID of an RankedTensor type.
',3))]),e("details",Nb,[e("summary",null,[t[2571]||(t[2571]=e("a",{id:"Reactant.MLIR.API.mlirRegionAppendOwnedBlock-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirRegionAppendOwnedBlock-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRegionAppendOwnedBlock")],-1)),t[2572]||(t[2572]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2573]||(t[2573]=l('mlirRegionAppendOwnedBlock(region, block)
Takes a block owned by the caller and appends it to the given region.
',3))]),e("details",Vb,[e("summary",null,[t[2574]||(t[2574]=e("a",{id:"Reactant.MLIR.API.mlirRegionCreate-Tuple{}",href:"#Reactant.MLIR.API.mlirRegionCreate-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRegionCreate")],-1)),t[2575]||(t[2575]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2576]||(t[2576]=l('mlirRegionCreate()
Creates a new empty region and transfers ownership to the caller.
',3))]),e("details",qb,[e("summary",null,[t[2577]||(t[2577]=e("a",{id:"Reactant.MLIR.API.mlirRegionDestroy-Tuple{Any}",href:"#Reactant.MLIR.API.mlirRegionDestroy-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRegionDestroy")],-1)),t[2578]||(t[2578]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2579]||(t[2579]=l('mlirRegionDestroy(region)
Takes a region owned by the caller and destroys it.
',3))]),e("details",Ub,[e("summary",null,[t[2580]||(t[2580]=e("a",{id:"Reactant.MLIR.API.mlirRegionEqual-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirRegionEqual-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRegionEqual")],-1)),t[2581]||(t[2581]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2582]||(t[2582]=l('mlirRegionEqual(region, other)
Checks whether two region handles point to the same region. This does not perform deep comparison.
',3))]),e("details",Qb,[e("summary",null,[t[2583]||(t[2583]=e("a",{id:"Reactant.MLIR.API.mlirRegionGetFirstBlock-Tuple{Any}",href:"#Reactant.MLIR.API.mlirRegionGetFirstBlock-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRegionGetFirstBlock")],-1)),t[2584]||(t[2584]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2585]||(t[2585]=l('mlirRegionGetFirstBlock(region)
Gets the first block in the region.
',3))]),e("details",Wb,[e("summary",null,[t[2586]||(t[2586]=e("a",{id:"Reactant.MLIR.API.mlirRegionGetNextInOperation-Tuple{Any}",href:"#Reactant.MLIR.API.mlirRegionGetNextInOperation-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRegionGetNextInOperation")],-1)),t[2587]||(t[2587]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2588]||(t[2588]=l('mlirRegionGetNextInOperation(region)
Returns the region immediately following the given region in its parent operation.
',3))]),e("details",Hb,[e("summary",null,[t[2589]||(t[2589]=e("a",{id:"Reactant.MLIR.API.mlirRegionInsertOwnedBlock-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirRegionInsertOwnedBlock-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRegionInsertOwnedBlock")],-1)),t[2590]||(t[2590]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2591]||(t[2591]=l('mlirRegionInsertOwnedBlock(region, pos, block)
Takes a block owned by the caller and inserts it at pos
to the given region. This is an expensive operation that linearly scans the region, prefer insertAfter/Before instead.
mlirRegionInsertOwnedBlockAfter(region, reference, block)
Takes a block owned by the caller and inserts it after the (non-owned) reference block in the given region. The reference block must belong to the region. If the reference block is null, prepends the block to the region.
',3))]),e("details",Jb,[e("summary",null,[t[2595]||(t[2595]=e("a",{id:"Reactant.MLIR.API.mlirRegionInsertOwnedBlockBefore-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirRegionInsertOwnedBlockBefore-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRegionInsertOwnedBlockBefore")],-1)),t[2596]||(t[2596]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2597]||(t[2597]=l('mlirRegionInsertOwnedBlockBefore(region, reference, block)
Takes a block owned by the caller and inserts it before the (non-owned) reference block in the given region. The reference block must belong to the region. If the reference block is null, appends the block to the region.
',3))]),e("details",Kb,[e("summary",null,[t[2598]||(t[2598]=e("a",{id:"Reactant.MLIR.API.mlirRegionIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirRegionIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRegionIsNull")],-1)),t[2599]||(t[2599]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2600]||(t[2600]=l('mlirRegionIsNull(region)
Checks whether a region is null.
',3))]),e("details",$b,[e("summary",null,[t[2601]||(t[2601]=e("a",{id:"Reactant.MLIR.API.mlirRegionTakeBody-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirRegionTakeBody-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRegionTakeBody")],-1)),t[2602]||(t[2602]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2603]||(t[2603]=l('mlirRegionTakeBody(target, source)
Moves the entire content of the source region to the target region.
',3))]),e("details",Xb,[e("summary",null,[t[2604]||(t[2604]=e("a",{id:"Reactant.MLIR.API.mlirRegisterAllDialects-Tuple{Any}",href:"#Reactant.MLIR.API.mlirRegisterAllDialects-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRegisterAllDialects")],-1)),t[2605]||(t[2605]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2606]||(t[2606]=l('mlirRegisterAllDialects(registry)
Appends all upstream dialects and extensions to the dialect registry.
',3))]),e("details",Yb,[e("summary",null,[t[2607]||(t[2607]=e("a",{id:"Reactant.MLIR.API.mlirRegisterAllLLVMTranslations-Tuple{Any}",href:"#Reactant.MLIR.API.mlirRegisterAllLLVMTranslations-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRegisterAllLLVMTranslations")],-1)),t[2608]||(t[2608]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2609]||(t[2609]=l('mlirRegisterAllLLVMTranslations(context)
Register all translations to LLVM IR for dialects that can support it.
',3))]),e("details",_b,[e("summary",null,[t[2610]||(t[2610]=e("a",{id:"Reactant.MLIR.API.mlirRegisterAllPasses-Tuple{}",href:"#Reactant.MLIR.API.mlirRegisterAllPasses-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRegisterAllPasses")],-1)),t[2611]||(t[2611]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2612]||(t[2612]=l('mlirRegisterAllPasses()
Register all compiler passes of MLIR.
',3))]),e("details",tg,[e("summary",null,[t[2613]||(t[2613]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseCancelOpModification-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseCancelOpModification-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseCancelOpModification")],-1)),t[2614]||(t[2614]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2615]||(t[2615]=l('mlirRewriterBaseCancelOpModification(rewriter, op)
This method cancels a pending in-place modification. This can only be called on operations that were provided to a call to startOpModification
.
mlirRewriterBaseClearInsertionPoint(rewriter)
Reset the insertion point to no location. Creating an operation without a set insertion point is an error, but this can still be useful when the current insertion point a builder refers to is being removed.
',3))]),e("details",sg,[e("summary",null,[t[2619]||(t[2619]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseClone-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseClone-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseClone")],-1)),t[2620]||(t[2620]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2621]||(t[2621]=l('mlirRewriterBaseClone(rewriter, op)
Creates a deep copy of the specified operation.
',3))]),e("details",ag,[e("summary",null,[t[2622]||(t[2622]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseCloneRegionBefore-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseCloneRegionBefore-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseCloneRegionBefore")],-1)),t[2623]||(t[2623]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2624]||(t[2624]=l('mlirRewriterBaseCloneRegionBefore(rewriter, region, before)
Clone the blocks that belong to "region" before the given position in another region "parent".
',3))]),e("details",ig,[e("summary",null,[t[2625]||(t[2625]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseCloneWithoutRegions-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseCloneWithoutRegions-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseCloneWithoutRegions")],-1)),t[2626]||(t[2626]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2627]||(t[2627]=l('mlirRewriterBaseCloneWithoutRegions(rewriter, op)
Creates a deep copy of this operation but keep the operation regions empty.
',3))]),e("details",lg,[e("summary",null,[t[2628]||(t[2628]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseCreateBlockBefore-NTuple{5, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseCreateBlockBefore-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseCreateBlockBefore")],-1)),t[2629]||(t[2629]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2630]||(t[2630]=l('mlirRewriterBaseCreateBlockBefore(rewriter, insertBefore, nArgTypes, argTypes, locations)
Add new block with 'argTypes' arguments and set the insertion point to the end of it. The block is placed before 'insertBefore'. locs
contains the locations of the inserted arguments, and should match the size of argTypes
.
mlirRewriterBaseEraseBlock(rewriter, block)
Erases a block along with all operations inside it.
',3))]),e("details",pg,[e("summary",null,[t[2634]||(t[2634]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseEraseOp-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseEraseOp-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseEraseOp")],-1)),t[2635]||(t[2635]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2636]||(t[2636]=l('mlirRewriterBaseEraseOp(rewriter, op)
Erases an operation that is known to have no uses.
',3))]),e("details",rg,[e("summary",null,[t[2637]||(t[2637]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseFinalizeOpModification-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseFinalizeOpModification-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseFinalizeOpModification")],-1)),t[2638]||(t[2638]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2639]||(t[2639]=l('mlirRewriterBaseFinalizeOpModification(rewriter, op)
This method is used to signal the end of an in-place modification of the given operation. This can only be called on operations that were provided to a call to startOpModification
.
mlirRewriterBaseGetBlock(rewriter)
Returns the current block of the rewriter.
',3))]),e("details",dg,[e("summary",null,[t[2643]||(t[2643]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseGetContext-Tuple{Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseGetContext-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseGetContext")],-1)),t[2644]||(t[2644]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2645]||(t[2645]=l('mlirRewriterBaseGetContext(rewriter)
Get the MLIR context referenced by the rewriter.
',3))]),e("details",cg,[e("summary",null,[t[2646]||(t[2646]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseGetInsertionBlock-Tuple{Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseGetInsertionBlock-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseGetInsertionBlock")],-1)),t[2647]||(t[2647]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2648]||(t[2648]=l('mlirRewriterBaseGetInsertionBlock(rewriter)
Return the block the current insertion point belongs to. Note that the insertion point is not necessarily the end of the block.
',3))]),e("details",hg,[e("summary",null,[t[2649]||(t[2649]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseInlineBlockBefore-NTuple{5, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseInlineBlockBefore-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseInlineBlockBefore")],-1)),t[2650]||(t[2650]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2651]||(t[2651]=l('mlirRewriterBaseInlineBlockBefore(rewriter, source, op, nArgValues, argValues)
Inline the operations of block 'source' before the operation 'op'. The source block will be deleted and must have no uses. 'argValues' is used to replace the block arguments of 'source'
The source block must have no successors. Otherwise, the resulting IR would have unreachable operations.
',4))]),e("details",ug,[e("summary",null,[t[2652]||(t[2652]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseInlineRegionBefore-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseInlineRegionBefore-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseInlineRegionBefore")],-1)),t[2653]||(t[2653]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2654]||(t[2654]=l('mlirRewriterBaseInlineRegionBefore(rewriter, region, before)
Move the blocks that belong to "region" before the given position in another region "parent". The two regions must be different. The caller is responsible for creating or updating the operation transferring flow of control to the region and passing it the correct block arguments.
',3))]),e("details",bg,[e("summary",null,[t[2655]||(t[2655]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseInsert-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseInsert-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseInsert")],-1)),t[2656]||(t[2656]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2657]||(t[2657]=l('mlirRewriterBaseInsert(rewriter, op)
Insert the given operation at the current insertion point and return it.
',3))]),e("details",gg,[e("summary",null,[t[2658]||(t[2658]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseMergeBlocks-NTuple{5, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseMergeBlocks-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseMergeBlocks")],-1)),t[2659]||(t[2659]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2660]||(t[2660]=l('mlirRewriterBaseMergeBlocks(rewriter, source, dest, nArgValues, argValues)
Inline the operations of block 'source' into the end of block 'dest'. The source block will be deleted and must have no uses. 'argValues' is used to replace the block arguments of 'source'
The dest block must have no successors. Otherwise, the resulting IR would have unreachable operation.
',4))]),e("details",yg,[e("summary",null,[t[2661]||(t[2661]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseMoveBlockBefore-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseMoveBlockBefore-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseMoveBlockBefore")],-1)),t[2662]||(t[2662]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2663]||(t[2663]=l('mlirRewriterBaseMoveBlockBefore(rewriter, block, existingBlock)
Unlink this block and insert it right before existingBlock
.
mlirRewriterBaseMoveOpAfter(rewriter, op, existingOp)
Unlink this operation from its current block and insert it right after existingOp
which may be in the same or another block in the same function.
mlirRewriterBaseMoveOpBefore(rewriter, op, existingOp)
Unlink this operation from its current block and insert it right before existingOp
which may be in the same or another block in the same function.
mlirRewriterBaseReplaceAllOpUsesWithOperation(rewriter, from, to)
Find uses of from
and replace them with to
. Also notify the listener about every in-place op modification (for every use that was replaced) and that the from
operation is about to be replaced.
mlirRewriterBaseReplaceAllOpUsesWithValueRange(rewriter, from, nTo, to)
Find uses of from
and replace them with to
. Also notify the listener about every in-place op modification (for every use that was replaced) and that the from
operation is about to be replaced.
mlirRewriterBaseReplaceAllUsesExcept(rewriter, from, to, exceptedUser)
Find uses of from
and replace them with to
except if the user is exceptedUser
. Also notify the listener about every in-place op modification (for every use that was replaced).
mlirRewriterBaseReplaceAllUsesWith(rewriter, from, to)
Find uses of from
and replace them with to
. Also notify the listener about every in-place op modification (for every use that was replaced).
mlirRewriterBaseReplaceAllValueRangeUsesWith(rewriter, nValues, from, to)
Find uses of from
and replace them with to
. Also notify the listener about every in-place op modification (for every use that was replaced).
mlirRewriterBaseReplaceOpUsesWithinBlock(rewriter, op, nNewValues, newValues, block)
Find uses of from
within block
and replace them with to
. Also notify the listener about every in-place op modification (for every use that was replaced). The optional allUsesReplaced
flag is set to "true" if all uses were replaced.
mlirRewriterBaseReplaceOpWithOperation(rewriter, op, newOp)
Replace the results of the given (original) operation with the specified new op (replacement). The result types of the two ops must match. The original op is erased.
',3))]),e("details",Eg,[e("summary",null,[t[2691]||(t[2691]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseReplaceOpWithValues-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseReplaceOpWithValues-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseReplaceOpWithValues")],-1)),t[2692]||(t[2692]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2693]||(t[2693]=l('mlirRewriterBaseReplaceOpWithValues(rewriter, op, nValues, values)
Replace the results of the given (original) operation with the specified list of values (replacements). The result types of the given op and the replacements must match. The original op is erased.
',3))]),e("details",vg,[e("summary",null,[t[2694]||(t[2694]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointAfter-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointAfter-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointAfter")],-1)),t[2695]||(t[2695]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2696]||(t[2696]=l('mlirRewriterBaseSetInsertionPointAfter(rewriter, op)
Sets the insertion point to the node after the specified operation, which will cause subsequent insertions to go right after it.
',3))]),e("details",Tg,[e("summary",null,[t[2697]||(t[2697]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointAfterValue-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointAfterValue-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointAfterValue")],-1)),t[2698]||(t[2698]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2699]||(t[2699]=l('mlirRewriterBaseSetInsertionPointAfterValue(rewriter, value)
Sets the insertion point to the node after the specified value. If value has a defining operation, sets the insertion point to the node after such defining operation. This will cause subsequent insertions to go right after it. Otherwise, value is a BlockArgument. Sets the insertion point to the start of its block.
',3))]),e("details",Cg,[e("summary",null,[t[2700]||(t[2700]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointBefore-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointBefore-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointBefore")],-1)),t[2701]||(t[2701]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2702]||(t[2702]=l('mlirRewriterBaseSetInsertionPointBefore(rewriter, op)
Sets the insertion point to the specified operation, which will cause subsequent insertions to go right before it.
',3))]),e("details",xg,[e("summary",null,[t[2703]||(t[2703]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointToEnd-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointToEnd-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointToEnd")],-1)),t[2704]||(t[2704]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2705]||(t[2705]=l('mlirRewriterBaseSetInsertionPointToEnd(rewriter, block)
Sets the insertion point to the end of the specified block.
',3))]),e("details",Fg,[e("summary",null,[t[2706]||(t[2706]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointToStart-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointToStart-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointToStart")],-1)),t[2707]||(t[2707]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2708]||(t[2708]=l('mlirRewriterBaseSetInsertionPointToStart(rewriter, block)
Sets the insertion point to the start of the specified block.
',3))]),e("details",Pg,[e("summary",null,[t[2709]||(t[2709]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseStartOpModification-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseStartOpModification-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseStartOpModification")],-1)),t[2710]||(t[2710]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2711]||(t[2711]=l('mlirRewriterBaseStartOpModification(rewriter, op)
This method is used to notify the rewriter that an in-place operation modification is about to happen. A call to this function must be followed by a call to either finalizeOpModification
or cancelOpModification
. This is a minor efficiency win (it avoids creating a new operation and removing the old one) but also often allows simpler code in the client.
mlirSetGlobalDebugType(type)
Sets the current debug type, similarly to -debug-only=type
in the command-line tools. Note that global debug should be enabled for any output to be produced.
mlirSetGlobalDebugTypes(types, n)
Sets multiple current debug types, similarly to `-debug-only=type1,type2" in the command-line tools. Note that global debug should be enabled for any output to be produced.
',3))]),e("details",Bg,[e("summary",null,[t[2718]||(t[2718]=e("a",{id:"Reactant.MLIR.API.mlirShapedTypeGetDimSize-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirShapedTypeGetDimSize-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirShapedTypeGetDimSize")],-1)),t[2719]||(t[2719]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2720]||(t[2720]=l('mlirShapedTypeGetDimSize(type, dim)
Returns the dim-th dimension of the given ranked shaped type.
',3))]),e("details",Gg,[e("summary",null,[t[2721]||(t[2721]=e("a",{id:"Reactant.MLIR.API.mlirShapedTypeGetDynamicSize-Tuple{}",href:"#Reactant.MLIR.API.mlirShapedTypeGetDynamicSize-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirShapedTypeGetDynamicSize")],-1)),t[2722]||(t[2722]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2723]||(t[2723]=l('mlirShapedTypeGetDynamicSize()
Returns the value indicating a dynamic size in a shaped type. Prefer mlirShapedTypeIsDynamicSize
to direct comparisons with this value.
mlirShapedTypeGetDynamicStrideOrOffset()
Returns the value indicating a dynamic stride or offset in a shaped type. Prefer mlirShapedTypeGetDynamicStrideOrOffset
to direct comparisons with this value.
mlirShapedTypeGetElementType(type)
Returns the element type of the shaped type.
',3))]),e("details",Sg,[e("summary",null,[t[2730]||(t[2730]=e("a",{id:"Reactant.MLIR.API.mlirShapedTypeGetRank-Tuple{Any}",href:"#Reactant.MLIR.API.mlirShapedTypeGetRank-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirShapedTypeGetRank")],-1)),t[2731]||(t[2731]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2732]||(t[2732]=l('mlirShapedTypeGetRank(type)
Returns the rank of the given ranked shaped type.
',3))]),e("details",Ng,[e("summary",null,[t[2733]||(t[2733]=e("a",{id:"Reactant.MLIR.API.mlirShapedTypeHasRank-Tuple{Any}",href:"#Reactant.MLIR.API.mlirShapedTypeHasRank-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirShapedTypeHasRank")],-1)),t[2734]||(t[2734]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2735]||(t[2735]=l('mlirShapedTypeHasRank(type)
Checks whether the given shaped type is ranked.
',3))]),e("details",Vg,[e("summary",null,[t[2736]||(t[2736]=e("a",{id:"Reactant.MLIR.API.mlirShapedTypeHasStaticShape-Tuple{Any}",href:"#Reactant.MLIR.API.mlirShapedTypeHasStaticShape-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirShapedTypeHasStaticShape")],-1)),t[2737]||(t[2737]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2738]||(t[2738]=l('mlirShapedTypeHasStaticShape(type)
Checks whether the given shaped type has a static shape.
',3))]),e("details",qg,[e("summary",null,[t[2739]||(t[2739]=e("a",{id:"Reactant.MLIR.API.mlirShapedTypeIsDynamicDim-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirShapedTypeIsDynamicDim-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirShapedTypeIsDynamicDim")],-1)),t[2740]||(t[2740]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2741]||(t[2741]=l('mlirShapedTypeIsDynamicDim(type, dim)
Checks wither the dim-th dimension of the given shaped type is dynamic.
',3))]),e("details",Ug,[e("summary",null,[t[2742]||(t[2742]=e("a",{id:"Reactant.MLIR.API.mlirShapedTypeIsDynamicSize-Tuple{Any}",href:"#Reactant.MLIR.API.mlirShapedTypeIsDynamicSize-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirShapedTypeIsDynamicSize")],-1)),t[2743]||(t[2743]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2744]||(t[2744]=l('mlirShapedTypeIsDynamicSize(size)
Checks whether the given value is used as a placeholder for dynamic sizes in shaped types.
',3))]),e("details",Qg,[e("summary",null,[t[2745]||(t[2745]=e("a",{id:"Reactant.MLIR.API.mlirShapedTypeIsDynamicStrideOrOffset-Tuple{Any}",href:"#Reactant.MLIR.API.mlirShapedTypeIsDynamicStrideOrOffset-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirShapedTypeIsDynamicStrideOrOffset")],-1)),t[2746]||(t[2746]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2747]||(t[2747]=l('mlirShapedTypeIsDynamicStrideOrOffset(val)
Checks whether the given value is used as a placeholder for dynamic strides and offsets in shaped types.
',3))]),e("details",Wg,[e("summary",null,[t[2748]||(t[2748]=e("a",{id:"Reactant.MLIR.API.mlirSparseElementsAttrGetIndices-Tuple{Any}",href:"#Reactant.MLIR.API.mlirSparseElementsAttrGetIndices-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSparseElementsAttrGetIndices")],-1)),t[2749]||(t[2749]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2750]||(t[2750]=l('mlirSparseElementsAttrGetIndices(attr)
Returns the dense elements attribute containing 64-bit integer indices of non-null elements in the given sparse elements attribute.
',3))]),e("details",Hg,[e("summary",null,[t[2751]||(t[2751]=e("a",{id:"Reactant.MLIR.API.mlirSparseElementsAttrGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirSparseElementsAttrGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSparseElementsAttrGetTypeID")],-1)),t[2752]||(t[2752]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2753]||(t[2753]=l('mlirSparseElementsAttrGetTypeID()
Returns the typeID of a SparseElements attribute.
',3))]),e("details",Zg,[e("summary",null,[t[2754]||(t[2754]=e("a",{id:"Reactant.MLIR.API.mlirSparseElementsAttrGetValues-Tuple{Any}",href:"#Reactant.MLIR.API.mlirSparseElementsAttrGetValues-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSparseElementsAttrGetValues")],-1)),t[2755]||(t[2755]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2756]||(t[2756]=l('mlirSparseElementsAttrGetValues(attr)
Returns the dense elements attribute containing the non-null elements in the given sparse elements attribute.
',3))]),e("details",Jg,[e("summary",null,[t[2757]||(t[2757]=e("a",{id:"Reactant.MLIR.API.mlirSparseElementsAttribute-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirSparseElementsAttribute-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSparseElementsAttribute")],-1)),t[2758]||(t[2758]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2759]||(t[2759]=l('mlirSparseElementsAttribute(shapedType, denseIndices, denseValues)
Creates a sparse elements attribute of the given shape from a list of indices and a list of associated values. Both lists are expected to be dense elements attributes with the same number of elements. The list of indices is expected to contain 64-bit integers. The attribute is created in the same context as the type.
',3))]),e("details",Kg,[e("summary",null,[t[2760]||(t[2760]=e("a",{id:"Reactant.MLIR.API.mlirSparseTensorEncodingAttrGet-NTuple{9, Any}",href:"#Reactant.MLIR.API.mlirSparseTensorEncodingAttrGet-NTuple{9, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSparseTensorEncodingAttrGet")],-1)),t[2761]||(t[2761]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2762]||(t[2762]=l('mlirSparseTensorEncodingAttrGet(ctx, lvlRank, lvlTypes, dimToLvl, lvlTodim, posWidth, crdWidth, explicitVal, implicitVal)
Creates a sparse\\_tensor.encoding
attribute with the given parameters.
mlirSparseTensorEncodingAttrGetCrdWidth(attr)
Returns the coordinate bitwidth of the sparse\\_tensor.encoding
attribute.
mlirSparseTensorEncodingAttrGetDimToLvl(attr)
Returns the dimension-to-level mapping of the sparse\\_tensor.encoding
attribute.
mlirSparseTensorEncodingAttrGetExplicitVal(attr)
Returns the explicit value of the sparse\\_tensor.encoding
attribute.
mlirSparseTensorEncodingAttrGetImplicitVal(attr)
Returns the implicit value of the sparse\\_tensor.encoding
attribute.
mlirSparseTensorEncodingAttrGetLvlFmt(attr, lvl)
Returns a specified level-format of the sparse\\_tensor.encoding
attribute.
mlirSparseTensorEncodingAttrGetLvlToDim(attr)
Returns the level-to-dimension mapping of the sparse\\_tensor.encoding
attribute.
mlirSparseTensorEncodingAttrGetLvlType(attr, lvl)
Returns a specified level-type of the sparse\\_tensor.encoding
attribute.
mlirSparseTensorEncodingAttrGetPosWidth(attr)
Returns the position bitwidth of the sparse\\_tensor.encoding
attribute.
mlirSparseTensorEncodingGetLvlRank(attr)
Returns the level-rank of the sparse\\_tensor.encoding
attribute.
mlirStridedLayoutAttrGetTypeID()
Returns the typeID of a StridedLayout attribute.
',3))]),e("details",ny,[e("summary",null,[t[2793]||(t[2793]=e("a",{id:"Reactant.MLIR.API.mlirStringAttrGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirStringAttrGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirStringAttrGet")],-1)),t[2794]||(t[2794]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2795]||(t[2795]=l('mlirStringAttrGet(ctx, str)
Creates a string attribute in the given context containing the given string.
',3))]),e("details",py,[e("summary",null,[t[2796]||(t[2796]=e("a",{id:"Reactant.MLIR.API.mlirStringAttrGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirStringAttrGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirStringAttrGetTypeID")],-1)),t[2797]||(t[2797]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2798]||(t[2798]=l('mlirStringAttrGetTypeID()
Returns the typeID of a String attribute.
',3))]),e("details",ry,[e("summary",null,[t[2799]||(t[2799]=e("a",{id:"Reactant.MLIR.API.mlirStringAttrGetValue-Tuple{Any}",href:"#Reactant.MLIR.API.mlirStringAttrGetValue-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirStringAttrGetValue")],-1)),t[2800]||(t[2800]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2801]||(t[2801]=l('mlirStringAttrGetValue(attr)
Returns the attribute values as a string reference. The data remains live as long as the context in which the attribute lives.
',3))]),e("details",oy,[e("summary",null,[t[2802]||(t[2802]=e("a",{id:"Reactant.MLIR.API.mlirStringAttrTypedGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirStringAttrTypedGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirStringAttrTypedGet")],-1)),t[2803]||(t[2803]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2804]||(t[2804]=l('mlirStringAttrTypedGet(type, str)
Creates a string attribute in the given context containing the given string. Additionally, the attribute has the given type.
',3))]),e("details",dy,[e("summary",null,[t[2805]||(t[2805]=e("a",{id:"Reactant.MLIR.API.mlirStringRefCreate-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirStringRefCreate-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirStringRefCreate")],-1)),t[2806]||(t[2806]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2807]||(t[2807]=l('mlirStringRefCreate(str, length)
Constructs a string reference from the pointer and length. The pointer need not reference to a null-terminated string.
',3))]),e("details",cy,[e("summary",null,[t[2808]||(t[2808]=e("a",{id:"Reactant.MLIR.API.mlirStringRefCreateFromCString-Tuple{Any}",href:"#Reactant.MLIR.API.mlirStringRefCreateFromCString-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirStringRefCreateFromCString")],-1)),t[2809]||(t[2809]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2810]||(t[2810]=l('mlirStringRefCreateFromCString(str)
Constructs a string reference from a null-terminated C string. Prefer mlirStringRefCreate
if the length of the string is known.
mlirStringRefEqual(string, other)
Returns true if two string references are equal, false otherwise.
',3))]),e("details",uy,[e("summary",null,[t[2814]||(t[2814]=e("a",{id:"Reactant.MLIR.API.mlirSymbolRefAttrGet-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirSymbolRefAttrGet-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSymbolRefAttrGet")],-1)),t[2815]||(t[2815]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2816]||(t[2816]=l('mlirSymbolRefAttrGet(ctx, symbol, numReferences, references)
Creates a symbol reference attribute in the given context referencing a symbol identified by the given string inside a list of nested references. Each of the references in the list must not be nested.
',3))]),e("details",by,[e("summary",null,[t[2817]||(t[2817]=e("a",{id:"Reactant.MLIR.API.mlirSymbolRefAttrGetLeafReference-Tuple{Any}",href:"#Reactant.MLIR.API.mlirSymbolRefAttrGetLeafReference-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSymbolRefAttrGetLeafReference")],-1)),t[2818]||(t[2818]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2819]||(t[2819]=l('mlirSymbolRefAttrGetLeafReference(attr)
Returns the string reference to the leaf referenced symbol. The data remains live as long as the context in which the attribute lives.
',3))]),e("details",gy,[e("summary",null,[t[2820]||(t[2820]=e("a",{id:"Reactant.MLIR.API.mlirSymbolRefAttrGetNestedReference-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirSymbolRefAttrGetNestedReference-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSymbolRefAttrGetNestedReference")],-1)),t[2821]||(t[2821]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2822]||(t[2822]=l('mlirSymbolRefAttrGetNestedReference(attr, pos)
Returns pos-th reference nested in the given symbol reference attribute.
',3))]),e("details",yy,[e("summary",null,[t[2823]||(t[2823]=e("a",{id:"Reactant.MLIR.API.mlirSymbolRefAttrGetNumNestedReferences-Tuple{Any}",href:"#Reactant.MLIR.API.mlirSymbolRefAttrGetNumNestedReferences-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSymbolRefAttrGetNumNestedReferences")],-1)),t[2824]||(t[2824]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2825]||(t[2825]=l('mlirSymbolRefAttrGetNumNestedReferences(attr)
Returns the number of references nested in the given symbol reference attribute.
',3))]),e("details",my,[e("summary",null,[t[2826]||(t[2826]=e("a",{id:"Reactant.MLIR.API.mlirSymbolRefAttrGetRootReference-Tuple{Any}",href:"#Reactant.MLIR.API.mlirSymbolRefAttrGetRootReference-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSymbolRefAttrGetRootReference")],-1)),t[2827]||(t[2827]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2828]||(t[2828]=l('mlirSymbolRefAttrGetRootReference(attr)
Returns the string reference to the root referenced symbol. The data remains live as long as the context in which the attribute lives.
',3))]),e("details",ky,[e("summary",null,[t[2829]||(t[2829]=e("a",{id:"Reactant.MLIR.API.mlirSymbolRefAttrGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirSymbolRefAttrGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSymbolRefAttrGetTypeID")],-1)),t[2830]||(t[2830]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2831]||(t[2831]=l('mlirSymbolRefAttrGetTypeID()
Returns the typeID of an SymbolRef attribute.
',3))]),e("details",fy,[e("summary",null,[t[2832]||(t[2832]=e("a",{id:"Reactant.MLIR.API.mlirSymbolTableCreate-Tuple{Any}",href:"#Reactant.MLIR.API.mlirSymbolTableCreate-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSymbolTableCreate")],-1)),t[2833]||(t[2833]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2834]||(t[2834]=l('mlirSymbolTableCreate(operation)
Creates a symbol table for the given operation. If the operation does not have the SymbolTable trait, returns a null symbol table.
',3))]),e("details",Ry,[e("summary",null,[t[2835]||(t[2835]=e("a",{id:"Reactant.MLIR.API.mlirSymbolTableDestroy-Tuple{Any}",href:"#Reactant.MLIR.API.mlirSymbolTableDestroy-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSymbolTableDestroy")],-1)),t[2836]||(t[2836]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2837]||(t[2837]=l('mlirSymbolTableDestroy(symbolTable)
Destroys the symbol table created with mlirSymbolTableCreate
. This does not affect the operations in the table.
mlirSymbolTableErase(symbolTable, operation)
Removes the given operation from the symbol table and erases it.
',3))]),e("details",jy,[e("summary",null,[t[2841]||(t[2841]=e("a",{id:"Reactant.MLIR.API.mlirSymbolTableGetSymbolAttributeName-Tuple{}",href:"#Reactant.MLIR.API.mlirSymbolTableGetSymbolAttributeName-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSymbolTableGetSymbolAttributeName")],-1)),t[2842]||(t[2842]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2843]||(t[2843]=l('mlirSymbolTableGetSymbolAttributeName()
Returns the name of the attribute used to store symbol names compatible with symbol tables.
',3))]),e("details",My,[e("summary",null,[t[2844]||(t[2844]=e("a",{id:"Reactant.MLIR.API.mlirSymbolTableGetVisibilityAttributeName-Tuple{}",href:"#Reactant.MLIR.API.mlirSymbolTableGetVisibilityAttributeName-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSymbolTableGetVisibilityAttributeName")],-1)),t[2845]||(t[2845]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2846]||(t[2846]=l('mlirSymbolTableGetVisibilityAttributeName()
Returns the name of the attribute used to store symbol visibility.
',3))]),e("details",Ay,[e("summary",null,[t[2847]||(t[2847]=e("a",{id:"Reactant.MLIR.API.mlirSymbolTableInsert-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirSymbolTableInsert-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSymbolTableInsert")],-1)),t[2848]||(t[2848]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2849]||(t[2849]=l('mlirSymbolTableInsert(symbolTable, operation)
Inserts the given operation into the given symbol table. The operation must have the symbol trait. If the symbol table already has a symbol with the same name, renames the symbol being inserted to ensure name uniqueness. Note that this does not move the operation itself into the block of the symbol table operation, this should be done separately. Returns the name of the symbol after insertion.
',3))]),e("details",Ly,[e("summary",null,[t[2850]||(t[2850]=e("a",{id:"Reactant.MLIR.API.mlirSymbolTableIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirSymbolTableIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSymbolTableIsNull")],-1)),t[2851]||(t[2851]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2852]||(t[2852]=l('mlirSymbolTableIsNull(symbolTable)
Returns true if the symbol table is null.
',3))]),e("details",Ey,[e("summary",null,[t[2853]||(t[2853]=e("a",{id:"Reactant.MLIR.API.mlirSymbolTableLookup-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirSymbolTableLookup-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSymbolTableLookup")],-1)),t[2854]||(t[2854]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2855]||(t[2855]=l('mlirSymbolTableLookup(symbolTable, name)
Looks up a symbol with the given name in the given symbol table and returns the operation that corresponds to the symbol. If the symbol cannot be found, returns a null operation.
',3))]),e("details",vy,[e("summary",null,[t[2856]||(t[2856]=e("a",{id:"Reactant.MLIR.API.mlirSymbolTableReplaceAllSymbolUses-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirSymbolTableReplaceAllSymbolUses-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSymbolTableReplaceAllSymbolUses")],-1)),t[2857]||(t[2857]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2858]||(t[2858]=l('mlirSymbolTableReplaceAllSymbolUses(oldSymbol, newSymbol, from)
Attempt to replace all uses that are nested within the given operation of the given symbol 'oldSymbol' with the provided 'newSymbol'. This does not traverse into nested symbol tables. Will fail atomically if there are any unknown operations that may be potential symbol tables.
',3))]),e("details",Ty,[e("summary",null,[t[2859]||(t[2859]=e("a",{id:"Reactant.MLIR.API.mlirSymbolTableWalkSymbolTables-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirSymbolTableWalkSymbolTables-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSymbolTableWalkSymbolTables")],-1)),t[2860]||(t[2860]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2861]||(t[2861]=l('mlirSymbolTableWalkSymbolTables(from, allSymUsesVisible, callback, userData)
Walks all symbol table operations nested within, and including, op
. For each symbol table operation, the provided callback is invoked with the op and a boolean signifying if the symbols within that symbol table can be treated as if all uses within the IR are visible to the caller. allSymUsesVisible
identifies whether all of the symbol uses of symbols within op
are visible.
mlirTF32TypeGet(ctx)
Creates a TF32 type in the given context. The type is owned by the context.
',3))]),e("details",xy,[e("summary",null,[t[2865]||(t[2865]=e("a",{id:"Reactant.MLIR.API.mlirTransformApplyNamedSequence-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirTransformApplyNamedSequence-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTransformApplyNamedSequence")],-1)),t[2866]||(t[2866]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2867]||(t[2867]=l('mlirTransformApplyNamedSequence(payload, transformRoot, transformModule, transformOptions)
Applies the transformation script starting at the given transform root operation to the given payload operation. The module containing the transform root as well as the transform options should be provided. The transform operation must implement TransformOpInterface and the module must be a ModuleOp. Returns the status of the application.
',3))]),e("details",Fy,[e("summary",null,[t[2868]||(t[2868]=e("a",{id:"Reactant.MLIR.API.mlirTransformOptionsCreate-Tuple{}",href:"#Reactant.MLIR.API.mlirTransformOptionsCreate-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTransformOptionsCreate")],-1)),t[2869]||(t[2869]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2870]||(t[2870]=l('mlirTransformOptionsCreate()
Creates a default-initialized transform options object.
',3))]),e("details",Py,[e("summary",null,[t[2871]||(t[2871]=e("a",{id:"Reactant.MLIR.API.mlirTransformOptionsDestroy-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTransformOptionsDestroy-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTransformOptionsDestroy")],-1)),t[2872]||(t[2872]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2873]||(t[2873]=l('mlirTransformOptionsDestroy(transformOptions)
Destroys a transform options object previously created by mlirTransformOptionsCreate
.
mlirTransformOptionsEnableExpensiveChecks(transformOptions, enable)
Enables or disables expensive checks in transform options.
',3))]),e("details",Oy,[e("summary",null,[t[2877]||(t[2877]=e("a",{id:"Reactant.MLIR.API.mlirTransformOptionsEnforceSingleTopLevelTransformOp-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirTransformOptionsEnforceSingleTopLevelTransformOp-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTransformOptionsEnforceSingleTopLevelTransformOp")],-1)),t[2878]||(t[2878]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2879]||(t[2879]=l('mlirTransformOptionsEnforceSingleTopLevelTransformOp(transformOptions, enable)
Enables or disables the enforcement of the top-level transform op being single in transform options.
',3))]),e("details",By,[e("summary",null,[t[2880]||(t[2880]=e("a",{id:"Reactant.MLIR.API.mlirTransformOptionsGetEnforceSingleTopLevelTransformOp-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTransformOptionsGetEnforceSingleTopLevelTransformOp-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTransformOptionsGetEnforceSingleTopLevelTransformOp")],-1)),t[2881]||(t[2881]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2882]||(t[2882]=l('mlirTransformOptionsGetEnforceSingleTopLevelTransformOp(transformOptions)
Returns true if the enforcement of the top-level transform op being single is enabled in transform options.
',3))]),e("details",Gy,[e("summary",null,[t[2883]||(t[2883]=e("a",{id:"Reactant.MLIR.API.mlirTransformOptionsGetExpensiveChecksEnabled-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTransformOptionsGetExpensiveChecksEnabled-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTransformOptionsGetExpensiveChecksEnabled")],-1)),t[2884]||(t[2884]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2885]||(t[2885]=l('mlirTransformOptionsGetExpensiveChecksEnabled(transformOptions)
Returns true if expensive checks are enabled in transform options.
',3))]),e("details",zy,[e("summary",null,[t[2886]||(t[2886]=e("a",{id:"Reactant.MLIR.API.mlirTranslateModuleToLLVMIR-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirTranslateModuleToLLVMIR-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTranslateModuleToLLVMIR")],-1)),t[2887]||(t[2887]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2888]||(t[2888]=l('mlirTranslateModuleToLLVMIR(_module, context)
Translate operation that satisfies LLVM dialect module requirements into an LLVM IR module living in the given context. This translates operations from any dilalect that has a registered implementation of LLVMTranslationDialectInterface.
Returns
the generated LLVM IR Module from the translated MLIR module, it is owned by the caller.
',5))]),e("details",wy,[e("summary",null,[t[2889]||(t[2889]=e("a",{id:"Reactant.MLIR.API.mlirTupleTypeGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirTupleTypeGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTupleTypeGet")],-1)),t[2890]||(t[2890]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2891]||(t[2891]=l('mlirTupleTypeGet(ctx, numElements, elements)
Creates a tuple type that consists of the given list of elemental types. The type is owned by the context.
',3))]),e("details",Sy,[e("summary",null,[t[2892]||(t[2892]=e("a",{id:"Reactant.MLIR.API.mlirTupleTypeGetNumTypes-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTupleTypeGetNumTypes-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTupleTypeGetNumTypes")],-1)),t[2893]||(t[2893]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2894]||(t[2894]=l('mlirTupleTypeGetNumTypes(type)
Returns the number of types contained in a tuple.
',3))]),e("details",Ny,[e("summary",null,[t[2895]||(t[2895]=e("a",{id:"Reactant.MLIR.API.mlirTupleTypeGetType-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirTupleTypeGetType-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTupleTypeGetType")],-1)),t[2896]||(t[2896]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2897]||(t[2897]=l('mlirTupleTypeGetType(type, pos)
Returns the pos-th type in the tuple type.
',3))]),e("details",Vy,[e("summary",null,[t[2898]||(t[2898]=e("a",{id:"Reactant.MLIR.API.mlirTupleTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirTupleTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTupleTypeGetTypeID")],-1)),t[2899]||(t[2899]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2900]||(t[2900]=l('mlirTupleTypeGetTypeID()
Returns the typeID of an Tuple type.
',3))]),e("details",qy,[e("summary",null,[t[2901]||(t[2901]=e("a",{id:"Reactant.MLIR.API.mlirTypeAttrGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeAttrGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeAttrGet")],-1)),t[2902]||(t[2902]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2903]||(t[2903]=l('mlirTypeAttrGet(type)
Creates a type attribute wrapping the given type in the same context as the type.
',3))]),e("details",Uy,[e("summary",null,[t[2904]||(t[2904]=e("a",{id:"Reactant.MLIR.API.mlirTypeAttrGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirTypeAttrGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeAttrGetTypeID")],-1)),t[2905]||(t[2905]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2906]||(t[2906]=l('mlirTypeAttrGetTypeID()
Returns the typeID of a Type attribute.
',3))]),e("details",Qy,[e("summary",null,[t[2907]||(t[2907]=e("a",{id:"Reactant.MLIR.API.mlirTypeAttrGetValue-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeAttrGetValue-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeAttrGetValue")],-1)),t[2908]||(t[2908]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2909]||(t[2909]=l('mlirTypeAttrGetValue(attr)
Returns the type stored in the given type attribute.
',3))]),e("details",Wy,[e("summary",null,[t[2910]||(t[2910]=e("a",{id:"Reactant.MLIR.API.mlirTypeDump-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeDump-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeDump")],-1)),t[2911]||(t[2911]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2912]||(t[2912]=l('mlirTypeDump(type)
Prints the type to the standard error stream.
',3))]),e("details",Hy,[e("summary",null,[t[2913]||(t[2913]=e("a",{id:"Reactant.MLIR.API.mlirTypeEqual-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirTypeEqual-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeEqual")],-1)),t[2914]||(t[2914]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2915]||(t[2915]=l('mlirTypeEqual(t1, t2)
Checks if two types are equal.
',3))]),e("details",Zy,[e("summary",null,[t[2916]||(t[2916]=e("a",{id:"Reactant.MLIR.API.mlirTypeGetContext-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeGetContext-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeGetContext")],-1)),t[2917]||(t[2917]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2918]||(t[2918]=l('mlirTypeGetContext(type)
Gets the context that a type was created with.
',3))]),e("details",Jy,[e("summary",null,[t[2919]||(t[2919]=e("a",{id:"Reactant.MLIR.API.mlirTypeGetDialect-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeGetDialect-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeGetDialect")],-1)),t[2920]||(t[2920]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2921]||(t[2921]=l('mlirTypeGetDialect(type)
Gets the dialect a type belongs to.
',3))]),e("details",Ky,[e("summary",null,[t[2922]||(t[2922]=e("a",{id:"Reactant.MLIR.API.mlirTypeGetTypeID-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeGetTypeID-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeGetTypeID")],-1)),t[2923]||(t[2923]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2924]||(t[2924]=l('mlirTypeGetTypeID(type)
Gets the type ID of the type.
',3))]),e("details",$y,[e("summary",null,[t[2925]||(t[2925]=e("a",{id:"Reactant.MLIR.API.mlirTypeIDAllocatorAllocateTypeID-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIDAllocatorAllocateTypeID-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIDAllocatorAllocateTypeID")],-1)),t[2926]||(t[2926]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2927]||(t[2927]=l('mlirTypeIDAllocatorAllocateTypeID(allocator)
Allocates a type id that is valid for the lifetime of the allocator
',3))]),e("details",Xy,[e("summary",null,[t[2928]||(t[2928]=e("a",{id:"Reactant.MLIR.API.mlirTypeIDAllocatorCreate-Tuple{}",href:"#Reactant.MLIR.API.mlirTypeIDAllocatorCreate-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIDAllocatorCreate")],-1)),t[2929]||(t[2929]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2930]||(t[2930]=l('mlirTypeIDAllocatorCreate()
Creates a type id allocator for dynamic type id creation
',3))]),e("details",Yy,[e("summary",null,[t[2931]||(t[2931]=e("a",{id:"Reactant.MLIR.API.mlirTypeIDAllocatorDestroy-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIDAllocatorDestroy-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIDAllocatorDestroy")],-1)),t[2932]||(t[2932]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2933]||(t[2933]=l('mlirTypeIDAllocatorDestroy(allocator)
Deallocates the allocator and all allocated type ids
',3))]),e("details",_y,[e("summary",null,[t[2934]||(t[2934]=e("a",{id:"Reactant.MLIR.API.mlirTypeIDCreate-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIDCreate-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIDCreate")],-1)),t[2935]||(t[2935]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2936]||(t[2936]=l('mlirTypeIDCreate(ptr)
ptr
must be 8 byte aligned and unique to a type valid for the duration of the returned type id's usage
mlirTypeIDEqual(typeID1, typeID2)
Checks if two type ids are equal.
',3))]),e("details",em,[e("summary",null,[t[2940]||(t[2940]=e("a",{id:"Reactant.MLIR.API.mlirTypeIDHashValue-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIDHashValue-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIDHashValue")],-1)),t[2941]||(t[2941]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2942]||(t[2942]=l('mlirTypeIDHashValue(typeID)
Returns the hash value of the type id.
',3))]),e("details",sm,[e("summary",null,[t[2943]||(t[2943]=e("a",{id:"Reactant.MLIR.API.mlirTypeIDIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIDIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIDIsNull")],-1)),t[2944]||(t[2944]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2945]||(t[2945]=l('mlirTypeIDIsNull(typeID)
Checks whether a type id is null.
',3))]),e("details",am,[e("summary",null,[t[2946]||(t[2946]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAAnyQuantizedType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAAnyQuantizedType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAAnyQuantizedType")],-1)),t[2947]||(t[2947]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2948]||(t[2948]=l('mlirTypeIsAAnyQuantizedType(type)
Returns true
if the given type is an AnyQuantizedType.
mlirTypeIsABF16(type)
Checks whether the given type is a bf16 type.
',3))]),e("details",lm,[e("summary",null,[t[2952]||(t[2952]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsACalibratedQuantizedType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsACalibratedQuantizedType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsACalibratedQuantizedType")],-1)),t[2953]||(t[2953]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2954]||(t[2954]=l('mlirTypeIsACalibratedQuantizedType(type)
Returns true
if the given type is a CalibratedQuantizedType.
mlirTypeIsAComplex(type)
Checks whether the given type is a Complex type.
',3))]),e("details",pm,[e("summary",null,[t[2958]||(t[2958]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAF16-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAF16-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAF16")],-1)),t[2959]||(t[2959]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2960]||(t[2960]=l('mlirTypeIsAF16(type)
Checks whether the given type is an f16 type.
',3))]),e("details",rm,[e("summary",null,[t[2961]||(t[2961]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAF32-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAF32-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAF32")],-1)),t[2962]||(t[2962]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2963]||(t[2963]=l('mlirTypeIsAF32(type)
Checks whether the given type is an f32 type.
',3))]),e("details",om,[e("summary",null,[t[2964]||(t[2964]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAF64-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAF64-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAF64")],-1)),t[2965]||(t[2965]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2966]||(t[2966]=l('mlirTypeIsAF64(type)
Checks whether the given type is an f64 type.
',3))]),e("details",dm,[e("summary",null,[t[2967]||(t[2967]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAFloat-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAFloat-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAFloat")],-1)),t[2968]||(t[2968]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2969]||(t[2969]=l('mlirTypeIsAFloat(type)
Checks whether the given type is a floating-point type.
',3))]),e("details",cm,[e("summary",null,[t[2970]||(t[2970]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAFloat4E2M1FN-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAFloat4E2M1FN-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAFloat4E2M1FN")],-1)),t[2971]||(t[2971]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2972]||(t[2972]=l('mlirTypeIsAFloat4E2M1FN(type)
Checks whether the given type is an f4E2M1FN type.
',3))]),e("details",hm,[e("summary",null,[t[2973]||(t[2973]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAFloat6E2M3FN-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAFloat6E2M3FN-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAFloat6E2M3FN")],-1)),t[2974]||(t[2974]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2975]||(t[2975]=l('mlirTypeIsAFloat6E2M3FN(type)
Checks whether the given type is an f6E2M3FN type.
',3))]),e("details",um,[e("summary",null,[t[2976]||(t[2976]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAFloat6E3M2FN-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAFloat6E3M2FN-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAFloat6E3M2FN")],-1)),t[2977]||(t[2977]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2978]||(t[2978]=l('mlirTypeIsAFloat6E3M2FN(type)
Checks whether the given type is an f6E3M2FN type.
',3))]),e("details",bm,[e("summary",null,[t[2979]||(t[2979]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAFloat8E3M4-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAFloat8E3M4-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAFloat8E3M4")],-1)),t[2980]||(t[2980]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2981]||(t[2981]=l('mlirTypeIsAFloat8E3M4(type)
Checks whether the given type is an f8E3M4 type.
',3))]),e("details",gm,[e("summary",null,[t[2982]||(t[2982]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAFloat8E4M3-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAFloat8E4M3-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAFloat8E4M3")],-1)),t[2983]||(t[2983]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2984]||(t[2984]=l('mlirTypeIsAFloat8E4M3(type)
Checks whether the given type is an f8E4M3 type.
',3))]),e("details",ym,[e("summary",null,[t[2985]||(t[2985]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAFloat8E4M3B11FNUZ-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAFloat8E4M3B11FNUZ-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAFloat8E4M3B11FNUZ")],-1)),t[2986]||(t[2986]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2987]||(t[2987]=l('mlirTypeIsAFloat8E4M3B11FNUZ(type)
Checks whether the given type is an f8E4M3B11FNUZ type.
',3))]),e("details",mm,[e("summary",null,[t[2988]||(t[2988]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAFloat8E4M3FN-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAFloat8E4M3FN-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAFloat8E4M3FN")],-1)),t[2989]||(t[2989]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2990]||(t[2990]=l('mlirTypeIsAFloat8E4M3FN(type)
Checks whether the given type is an f8E4M3FN type.
',3))]),e("details",km,[e("summary",null,[t[2991]||(t[2991]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAFloat8E4M3FNUZ-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAFloat8E4M3FNUZ-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAFloat8E4M3FNUZ")],-1)),t[2992]||(t[2992]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2993]||(t[2993]=l('mlirTypeIsAFloat8E4M3FNUZ(type)
Checks whether the given type is an f8E4M3FNUZ type.
',3))]),e("details",fm,[e("summary",null,[t[2994]||(t[2994]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAFloat8E5M2-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAFloat8E5M2-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAFloat8E5M2")],-1)),t[2995]||(t[2995]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2996]||(t[2996]=l('mlirTypeIsAFloat8E5M2(type)
Checks whether the given type is an f8E5M2 type.
',3))]),e("details",Rm,[e("summary",null,[t[2997]||(t[2997]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAFloat8E5M2FNUZ-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAFloat8E5M2FNUZ-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAFloat8E5M2FNUZ")],-1)),t[2998]||(t[2998]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2999]||(t[2999]=l('mlirTypeIsAFloat8E5M2FNUZ(type)
Checks whether the given type is an f8E5M2FNUZ type.
',3))]),e("details",Im,[e("summary",null,[t[3e3]||(t[3e3]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAFloat8E8M0FNU-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAFloat8E8M0FNU-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAFloat8E8M0FNU")],-1)),t[3001]||(t[3001]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3002]||(t[3002]=l('mlirTypeIsAFloat8E8M0FNU(type)
Checks whether the given type is an f8E8M0FNU type.
',3))]),e("details",jm,[e("summary",null,[t[3003]||(t[3003]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAFunction-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAFunction-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAFunction")],-1)),t[3004]||(t[3004]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3005]||(t[3005]=l('mlirTypeIsAFunction(type)
Checks whether the given type is a function type.
',3))]),e("details",Mm,[e("summary",null,[t[3006]||(t[3006]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAIndex-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAIndex-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAIndex")],-1)),t[3007]||(t[3007]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3008]||(t[3008]=l('mlirTypeIsAIndex(type)
Checks whether the given type is an index type.
',3))]),e("details",Am,[e("summary",null,[t[3009]||(t[3009]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAInteger-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAInteger-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAInteger")],-1)),t[3010]||(t[3010]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3011]||(t[3011]=l('mlirTypeIsAInteger(type)
Checks whether the given type is an integer type.
',3))]),e("details",Lm,[e("summary",null,[t[3012]||(t[3012]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsALLVMPointerType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsALLVMPointerType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsALLVMPointerType")],-1)),t[3013]||(t[3013]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3014]||(t[3014]=l('mlirTypeIsALLVMPointerType(type)
Returns true
if the type is an LLVM dialect pointer type.
mlirTypeIsALLVMStructType(type)
Returns true
if the type is an LLVM dialect struct type.
mlirTypeIsAMemRef(type)
Checks whether the given type is a MemRef type.
',3))]),e("details",Tm,[e("summary",null,[t[3021]||(t[3021]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsANone-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsANone-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsANone")],-1)),t[3022]||(t[3022]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3023]||(t[3023]=l('mlirTypeIsANone(type)
Checks whether the given type is a None type.
',3))]),e("details",Cm,[e("summary",null,[t[3024]||(t[3024]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAOpaque-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAOpaque-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAOpaque")],-1)),t[3025]||(t[3025]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3026]||(t[3026]=l('mlirTypeIsAOpaque(type)
Checks whether the given type is an opaque type.
',3))]),e("details",xm,[e("summary",null,[t[3027]||(t[3027]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAQuantizedType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAQuantizedType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAQuantizedType")],-1)),t[3028]||(t[3028]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3029]||(t[3029]=l('mlirTypeIsAQuantizedType(type)
Returns true
if the given type is a quantization dialect type.
mlirTypeIsARankedTensor(type)
Checks whether the given type is a ranked tensor type.
',3))]),e("details",Pm,[e("summary",null,[t[3033]||(t[3033]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAShaped-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAShaped-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAShaped")],-1)),t[3034]||(t[3034]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3035]||(t[3035]=l('mlirTypeIsAShaped(type)
Checks whether the given type is a Shaped type.
',3))]),e("details",Dm,[e("summary",null,[t[3036]||(t[3036]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsATF32-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsATF32-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsATF32")],-1)),t[3037]||(t[3037]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3038]||(t[3038]=l('mlirTypeIsATF32(type)
Checks whether the given type is an TF32 type.
',3))]),e("details",Om,[e("summary",null,[t[3039]||(t[3039]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsATensor-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsATensor-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsATensor")],-1)),t[3040]||(t[3040]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3041]||(t[3041]=l('mlirTypeIsATensor(type)
Checks whether the given type is a Tensor type.
',3))]),e("details",Bm,[e("summary",null,[t[3042]||(t[3042]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsATuple-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsATuple-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsATuple")],-1)),t[3043]||(t[3043]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3044]||(t[3044]=l('mlirTypeIsATuple(type)
Checks whether the given type is a tuple type.
',3))]),e("details",Gm,[e("summary",null,[t[3045]||(t[3045]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAUniformQuantizedPerAxisType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAUniformQuantizedPerAxisType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAUniformQuantizedPerAxisType")],-1)),t[3046]||(t[3046]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3047]||(t[3047]=l('mlirTypeIsAUniformQuantizedPerAxisType(type)
Returns true
if the given type is a UniformQuantizedPerAxisType.
mlirTypeIsAUniformQuantizedType(type)
Returns true
if the given type is a UniformQuantizedType.
mlirTypeIsAUnrankedMemRef(type)
Checks whether the given type is an UnrankedMemRef type.
',3))]),e("details",Sm,[e("summary",null,[t[3054]||(t[3054]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAUnrankedTensor-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAUnrankedTensor-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAUnrankedTensor")],-1)),t[3055]||(t[3055]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3056]||(t[3056]=l('mlirTypeIsAUnrankedTensor(type)
Checks whether the given type is an unranked tensor type.
',3))]),e("details",Nm,[e("summary",null,[t[3057]||(t[3057]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAVector-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAVector-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAVector")],-1)),t[3058]||(t[3058]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3059]||(t[3059]=l('mlirTypeIsAVector(type)
Checks whether the given type is a Vector type.
',3))]),e("details",Vm,[e("summary",null,[t[3060]||(t[3060]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsNull")],-1)),t[3061]||(t[3061]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3062]||(t[3062]=l('mlirTypeIsNull(type)
Checks whether a type is null.
',3))]),e("details",qm,[e("summary",null,[t[3063]||(t[3063]=e("a",{id:"Reactant.MLIR.API.mlirTypeParseGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirTypeParseGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeParseGet")],-1)),t[3064]||(t[3064]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3065]||(t[3065]=l('mlirTypeParseGet(context, type)
Parses a type. The type is owned by the context.
',3))]),e("details",Um,[e("summary",null,[t[3066]||(t[3066]=e("a",{id:"Reactant.MLIR.API.mlirTypePrint-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirTypePrint-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypePrint")],-1)),t[3067]||(t[3067]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3068]||(t[3068]=l('mlirTypePrint(type, callback, userData)
Prints a location by sending chunks of the string representation and forwarding userData to
callback`. Note that the callback may be called several times with consecutive chunks of the string.
mlirUniformQuantizedPerAxisTypeGet(flags, storageType, expressedType, nDims, scales, zeroPoints, quantizedDimension, storageTypeMin, storageTypeMax)
Creates an instance of UniformQuantizedPerAxisType with the given parameters in the same context as storageType
and returns it. scales
and zeroPoints
point to nDims
number of elements. The instance is owned by the context.
mlirUniformQuantizedPerAxisTypeGetNumDims(type)
Returns the number of axes in the given quantized per-axis type.
',3))]),e("details",Hm,[e("summary",null,[t[3075]||(t[3075]=e("a",{id:"Reactant.MLIR.API.mlirUniformQuantizedPerAxisTypeGetQuantizedDimension-Tuple{Any}",href:"#Reactant.MLIR.API.mlirUniformQuantizedPerAxisTypeGetQuantizedDimension-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirUniformQuantizedPerAxisTypeGetQuantizedDimension")],-1)),t[3076]||(t[3076]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3077]||(t[3077]=l('mlirUniformQuantizedPerAxisTypeGetQuantizedDimension(type)
Returns the index of the quantized dimension in the given quantized per-axis type.
',3))]),e("details",Zm,[e("summary",null,[t[3078]||(t[3078]=e("a",{id:"Reactant.MLIR.API.mlirUniformQuantizedPerAxisTypeGetScale-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirUniformQuantizedPerAxisTypeGetScale-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirUniformQuantizedPerAxisTypeGetScale")],-1)),t[3079]||(t[3079]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3080]||(t[3080]=l('mlirUniformQuantizedPerAxisTypeGetScale(type, pos)
Returns pos
-th scale of the given quantized per-axis type.
mlirUniformQuantizedPerAxisTypeGetZeroPoint(type, pos)
Returns pos
-th zero point of the given quantized per-axis type.
mlirUniformQuantizedPerAxisTypeIsFixedPoint(type)
Returns true
if the given uniform quantized per-axis type is fixed-point.
mlirUniformQuantizedTypeGet(flags, storageType, expressedType, scale, zeroPoint, storageTypeMin, storageTypeMax)
Creates an instance of UniformQuantizedType with the given parameters in the same context as storageType
and returns it. The instance is owned by the context.
mlirUniformQuantizedTypeGetScale(type)
Returns the scale of the given uniform quantized type.
',3))]),e("details",Ym,[e("summary",null,[t[3093]||(t[3093]=e("a",{id:"Reactant.MLIR.API.mlirUniformQuantizedTypeGetZeroPoint-Tuple{Any}",href:"#Reactant.MLIR.API.mlirUniformQuantizedTypeGetZeroPoint-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirUniformQuantizedTypeGetZeroPoint")],-1)),t[3094]||(t[3094]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3095]||(t[3095]=l('mlirUniformQuantizedTypeGetZeroPoint(type)
Returns the zero point of the given uniform quantized type.
',3))]),e("details",_m,[e("summary",null,[t[3096]||(t[3096]=e("a",{id:"Reactant.MLIR.API.mlirUniformQuantizedTypeIsFixedPoint-Tuple{Any}",href:"#Reactant.MLIR.API.mlirUniformQuantizedTypeIsFixedPoint-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirUniformQuantizedTypeIsFixedPoint")],-1)),t[3097]||(t[3097]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3098]||(t[3098]=l('mlirUniformQuantizedTypeIsFixedPoint(type)
Returns true
if the given uniform quantized type is fixed-point.
mlirUnitAttrGet(ctx)
Creates a unit attribute in the given context.
',3))]),e("details",ek,[e("summary",null,[t[3102]||(t[3102]=e("a",{id:"Reactant.MLIR.API.mlirUnitAttrGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirUnitAttrGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirUnitAttrGetTypeID")],-1)),t[3103]||(t[3103]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3104]||(t[3104]=l('mlirUnitAttrGetTypeID()
Returns the typeID of a Unit attribute.
',3))]),e("details",sk,[e("summary",null,[t[3105]||(t[3105]=e("a",{id:"Reactant.MLIR.API.mlirUnmanagedDenseResourceElementsAttrGet-NTuple{8, Any}",href:"#Reactant.MLIR.API.mlirUnmanagedDenseResourceElementsAttrGet-NTuple{8, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirUnmanagedDenseResourceElementsAttrGet")],-1)),t[3106]||(t[3106]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3107]||(t[3107]=l('mlirUnmanagedDenseResourceElementsAttrGet(shapedType, name, data, dataLength, dataAlignment, dataIsMutable, deleter, userData)
Unlike the typed accessors below, constructs the attribute with a raw data buffer and no type/alignment checking. Use a more strongly typed accessor if possible. If dataIsMutable is false, then an immutable AsmResourceBlob will be created and that passed data contents will be treated as const. If the deleter is non NULL, then it will be called when the data buffer can no longer be accessed (passing userData to it).
',3))]),e("details",ak,[e("summary",null,[t[3108]||(t[3108]=e("a",{id:"Reactant.MLIR.API.mlirUnrankedMemRefTypeGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirUnrankedMemRefTypeGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirUnrankedMemRefTypeGet")],-1)),t[3109]||(t[3109]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3110]||(t[3110]=l('mlirUnrankedMemRefTypeGet(elementType, memorySpace)
Creates an Unranked MemRef type with the given element type and in the given memory space. The type is owned by the context of element type.
',3))]),e("details",ik,[e("summary",null,[t[3111]||(t[3111]=e("a",{id:"Reactant.MLIR.API.mlirUnrankedMemRefTypeGetChecked-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirUnrankedMemRefTypeGetChecked-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirUnrankedMemRefTypeGetChecked")],-1)),t[3112]||(t[3112]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3113]||(t[3113]=l('mlirUnrankedMemRefTypeGetChecked(loc, elementType, memorySpace)
Same as "mlirUnrankedMemRefTypeGet
" but returns a nullptr wrapping MlirType
on illegal arguments, emitting appropriate diagnostics.
mlirUnrankedMemRefTypeGetTypeID()
Returns the typeID of an UnrankedMemRef type.
',3))]),e("details",nk,[e("summary",null,[t[3117]||(t[3117]=e("a",{id:"Reactant.MLIR.API.mlirUnrankedMemrefGetMemorySpace-Tuple{Any}",href:"#Reactant.MLIR.API.mlirUnrankedMemrefGetMemorySpace-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirUnrankedMemrefGetMemorySpace")],-1)),t[3118]||(t[3118]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3119]||(t[3119]=l('mlirUnrankedMemrefGetMemorySpace(type)
Returns the memory spcae of the given Unranked MemRef type.
',3))]),e("details",pk,[e("summary",null,[t[3120]||(t[3120]=e("a",{id:"Reactant.MLIR.API.mlirUnrankedTensorTypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirUnrankedTensorTypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirUnrankedTensorTypeGet")],-1)),t[3121]||(t[3121]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3122]||(t[3122]=l('mlirUnrankedTensorTypeGet(elementType)
Creates an unranked tensor type with the given element type in the same context as the element type. The type is owned by the context.
',3))]),e("details",rk,[e("summary",null,[t[3123]||(t[3123]=e("a",{id:"Reactant.MLIR.API.mlirUnrankedTensorTypeGetChecked-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirUnrankedTensorTypeGetChecked-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirUnrankedTensorTypeGetChecked")],-1)),t[3124]||(t[3124]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3125]||(t[3125]=l('mlirUnrankedTensorTypeGetChecked(loc, elementType)
Same as "mlirUnrankedTensorTypeGet
" but returns a nullptr wrapping MlirType
on illegal arguments, emitting appropriate diagnostics.
mlirUnrankedTensorTypeGetTypeID()
Returns the typeID of an UnrankedTensor type.
',3))]),e("details",dk,[e("summary",null,[t[3129]||(t[3129]=e("a",{id:"Reactant.MLIR.API.mlirValueDump-Tuple{Any}",href:"#Reactant.MLIR.API.mlirValueDump-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirValueDump")],-1)),t[3130]||(t[3130]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3131]||(t[3131]=l('mlirValueDump(value)
Prints the value to the standard error stream.
',3))]),e("details",ck,[e("summary",null,[t[3132]||(t[3132]=e("a",{id:"Reactant.MLIR.API.mlirValueEqual-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirValueEqual-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirValueEqual")],-1)),t[3133]||(t[3133]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3134]||(t[3134]=l('mlirValueEqual(value1, value2)
Returns 1 if two values are equal, 0 otherwise.
',3))]),e("details",hk,[e("summary",null,[t[3135]||(t[3135]=e("a",{id:"Reactant.MLIR.API.mlirValueGetFirstUse-Tuple{Any}",href:"#Reactant.MLIR.API.mlirValueGetFirstUse-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirValueGetFirstUse")],-1)),t[3136]||(t[3136]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3137]||(t[3137]=l('mlirValueGetFirstUse(value)
Returns an op operand representing the first use of the value, or a null op operand if there are no uses.
',3))]),e("details",uk,[e("summary",null,[t[3138]||(t[3138]=e("a",{id:"Reactant.MLIR.API.mlirValueGetType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirValueGetType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirValueGetType")],-1)),t[3139]||(t[3139]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3140]||(t[3140]=l('mlirValueGetType(value)
Returns the type of the value.
',3))]),e("details",bk,[e("summary",null,[t[3141]||(t[3141]=e("a",{id:"Reactant.MLIR.API.mlirValueIsABlockArgument-Tuple{Any}",href:"#Reactant.MLIR.API.mlirValueIsABlockArgument-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirValueIsABlockArgument")],-1)),t[3142]||(t[3142]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3143]||(t[3143]=l('mlirValueIsABlockArgument(value)
Returns 1 if the value is a block argument, 0 otherwise.
',3))]),e("details",gk,[e("summary",null,[t[3144]||(t[3144]=e("a",{id:"Reactant.MLIR.API.mlirValueIsAOpResult-Tuple{Any}",href:"#Reactant.MLIR.API.mlirValueIsAOpResult-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirValueIsAOpResult")],-1)),t[3145]||(t[3145]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3146]||(t[3146]=l('mlirValueIsAOpResult(value)
Returns 1 if the value is an operation result, 0 otherwise.
',3))]),e("details",yk,[e("summary",null,[t[3147]||(t[3147]=e("a",{id:"Reactant.MLIR.API.mlirValueIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirValueIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirValueIsNull")],-1)),t[3148]||(t[3148]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3149]||(t[3149]=l('mlirValueIsNull(value)
Returns whether the value is null.
',3))]),e("details",mk,[e("summary",null,[t[3150]||(t[3150]=e("a",{id:"Reactant.MLIR.API.mlirValuePrint-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirValuePrint-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirValuePrint")],-1)),t[3151]||(t[3151]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3152]||(t[3152]=l('mlirValuePrint(value, callback, userData)
Prints a value by sending chunks of the string representation and forwarding userData to
callback`. Note that the callback may be called several times with consecutive chunks of the string.
mlirValuePrintAsOperand(value, state, callback, userData)
Prints a value as an operand (i.e., the ValueID).
',3))]),e("details",fk,[e("summary",null,[t[3156]||(t[3156]=e("a",{id:"Reactant.MLIR.API.mlirValueReplaceAllUsesOfWith-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirValueReplaceAllUsesOfWith-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirValueReplaceAllUsesOfWith")],-1)),t[3157]||(t[3157]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3158]||(t[3158]=l('mlirValueReplaceAllUsesOfWith(of, with)
Replace all uses of 'of' value with the 'with' value, updating anything in the IR that uses 'of' to use the other value instead. When this returns there are zero uses of 'of'.
',3))]),e("details",Rk,[e("summary",null,[t[3159]||(t[3159]=e("a",{id:"Reactant.MLIR.API.mlirValueSetType-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirValueSetType-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirValueSetType")],-1)),t[3160]||(t[3160]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3161]||(t[3161]=l('mlirValueSetType(value, type)
Set the type of the value.
',3))]),e("details",Ik,[e("summary",null,[t[3162]||(t[3162]=e("a",{id:"Reactant.MLIR.API.mlirVectorTypeGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirVectorTypeGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirVectorTypeGet")],-1)),t[3163]||(t[3163]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3164]||(t[3164]=l('mlirVectorTypeGet(rank, shape, elementType)
Creates a vector type of the shape identified by its rank and dimensions, with the given element type in the same context as the element type. The type is owned by the context.
',3))]),e("details",jk,[e("summary",null,[t[3165]||(t[3165]=e("a",{id:"Reactant.MLIR.API.mlirVectorTypeGetChecked-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirVectorTypeGetChecked-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirVectorTypeGetChecked")],-1)),t[3166]||(t[3166]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3167]||(t[3167]=l('mlirVectorTypeGetChecked(loc, rank, shape, elementType)
Same as "mlirVectorTypeGet
" but returns a nullptr wrapping MlirType
on illegal arguments, emitting appropriate diagnostics.
mlirVectorTypeGetScalable(rank, shape, scalable, elementType)
Creates a scalable vector type with the shape identified by its rank and dimensions. A subset of dimensions may be marked as scalable via the corresponding flag list, which is expected to have as many entries as the rank of the vector. The vector is created in the same context as the element type.
',3))]),e("details",Ak,[e("summary",null,[t[3171]||(t[3171]=e("a",{id:"Reactant.MLIR.API.mlirVectorTypeGetScalableChecked-NTuple{5, Any}",href:"#Reactant.MLIR.API.mlirVectorTypeGetScalableChecked-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirVectorTypeGetScalableChecked")],-1)),t[3172]||(t[3172]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3173]||(t[3173]=l('mlirVectorTypeGetScalableChecked(loc, rank, shape, scalable, elementType)
Same as "mlirVectorTypeGetScalable
" but returns a nullptr wrapping MlirType
on illegal arguments, emitting appropriate diagnostics.
mlirVectorTypeGetTypeID()
Returns the typeID of an Vector type.
',3))]),e("details",Ek,[e("summary",null,[t[3177]||(t[3177]=e("a",{id:"Reactant.MLIR.API.mlirVectorTypeIsDimScalable-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirVectorTypeIsDimScalable-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirVectorTypeIsDimScalable")],-1)),t[3178]||(t[3178]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3179]||(t[3179]=l('mlirVectorTypeIsDimScalable(type, dim)
Checks whether the "dim"-th dimension of the given vector is scalable.
',3))]),e("details",vk,[e("summary",null,[t[3180]||(t[3180]=e("a",{id:"Reactant.MLIR.API.mlirVectorTypeIsScalable-Tuple{Any}",href:"#Reactant.MLIR.API.mlirVectorTypeIsScalable-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirVectorTypeIsScalable")],-1)),t[3181]||(t[3181]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3182]||(t[3182]=l('mlirVectorTypeIsScalable(type)
Checks whether the given vector type is scalable, i.e., has at least one scalable dimension.
',3))]),t[3185]||(t[3185]=e("h1",{id:"Other-Functions",tabindex:"-1"},[s("Other Functions "),e("a",{class:"header-anchor",href:"#Other-Functions","aria-label":'Permalink to "Other Functions {#Other-Functions}"'},"")],-1))])}const Gk=n(d,[["render",Tk]]);export{Bk as __pageData,Gk as default}; diff --git a/previews/PR363/assets/api_mlirc.md.DTBPo4z4.lean.js b/previews/PR363/assets/api_mlirc.md.DTBPo4z4.lean.js new file mode 100644 index 00000000..c9cbb574 --- /dev/null +++ b/previews/PR363/assets/api_mlirc.md.DTBPo4z4.lean.js @@ -0,0 +1,9 @@ +import{_ as n,c as p,j as e,a as s,G as i,a2 as l,B as r,o}from"./chunks/framework.2yyKLD8d.js";const Bk=JSON.parse('{"title":"Higher level API","description":"","frontmatter":{},"headers":[],"relativePath":"api/mlirc.md","filePath":"api/mlirc.md","lastUpdated":null}'),d={name:"api/mlirc.md"},c={class:"jldocstring custom-block"},h={class:"jldocstring custom-block"},u={class:"jldocstring custom-block"},b={class:"jldocstring custom-block"},g={class:"jldocstring custom-block"},y={class:"jldocstring custom-block"},m={class:"jldocstring custom-block"},k={class:"jldocstring custom-block"},f={class:"jldocstring custom-block"},R={class:"jldocstring custom-block"},I={class:"jldocstring custom-block"},j={class:"jldocstring custom-block"},M={class:"jldocstring custom-block"},A={class:"jldocstring custom-block"},L={class:"jldocstring custom-block"},E={class:"jldocstring custom-block"},v={class:"jldocstring custom-block"},T={class:"jldocstring custom-block"},C={class:"jldocstring custom-block"},x={class:"jldocstring custom-block"},F={class:"jldocstring custom-block"},P={class:"jldocstring custom-block"},D={class:"jldocstring custom-block"},O={class:"jldocstring custom-block"},B={class:"jldocstring custom-block"},G={class:"jldocstring custom-block"},z={class:"jldocstring custom-block"},w={class:"jldocstring custom-block"},S={class:"jldocstring custom-block"},N={class:"jldocstring custom-block"},V={class:"jldocstring custom-block"},q={class:"jldocstring custom-block"},U={class:"jldocstring custom-block"},Q={class:"jldocstring custom-block"},W={class:"jldocstring custom-block"},H={class:"jldocstring custom-block"},Z={class:"jldocstring custom-block"},J={class:"jldocstring custom-block"},K={class:"jldocstring custom-block"},$={class:"jldocstring custom-block"},X={class:"jldocstring custom-block"},Y={class:"jldocstring custom-block"},_={class:"jldocstring custom-block"},tt={class:"jldocstring custom-block"},et={class:"jldocstring custom-block"},st={class:"jldocstring custom-block"},at={class:"jldocstring custom-block"},it={class:"jldocstring custom-block"},lt={class:"jldocstring custom-block"},nt={class:"jldocstring custom-block"},pt={class:"jldocstring custom-block"},rt={class:"jldocstring custom-block"},ot={class:"jldocstring custom-block"},dt={class:"jldocstring custom-block"},ct={class:"jldocstring custom-block"},ht={class:"jldocstring custom-block"},ut={class:"jldocstring custom-block"},bt={class:"jldocstring custom-block"},gt={class:"jldocstring custom-block"},yt={class:"jldocstring custom-block"},mt={class:"jldocstring custom-block"},kt={class:"jldocstring custom-block"},ft={class:"jldocstring custom-block"},Rt={class:"jldocstring custom-block"},It={class:"jldocstring custom-block"},jt={class:"jldocstring custom-block"},Mt={class:"jldocstring custom-block"},At={class:"jldocstring custom-block"},Lt={class:"jldocstring custom-block"},Et={class:"jldocstring custom-block"},vt={class:"jldocstring custom-block"},Tt={class:"jldocstring custom-block"},Ct={class:"jldocstring custom-block"},xt={class:"jldocstring custom-block"},Ft={class:"jldocstring custom-block"},Pt={class:"jldocstring custom-block"},Dt={class:"jldocstring custom-block"},Ot={class:"jldocstring custom-block"},Bt={class:"jldocstring custom-block"},Gt={class:"jldocstring custom-block"},zt={class:"jldocstring custom-block"},wt={class:"jldocstring custom-block"},St={class:"jldocstring custom-block"},Nt={class:"jldocstring custom-block"},Vt={class:"jldocstring custom-block"},qt={class:"jldocstring custom-block"},Ut={class:"jldocstring custom-block"},Qt={class:"jldocstring custom-block"},Wt={class:"jldocstring custom-block"},Ht={class:"jldocstring custom-block"},Zt={class:"jldocstring custom-block"},Jt={class:"jldocstring custom-block"},Kt={class:"jldocstring custom-block"},$t={class:"jldocstring custom-block"},Xt={class:"jldocstring custom-block"},Yt={class:"jldocstring custom-block"},_t={class:"jldocstring custom-block"},te={class:"jldocstring custom-block"},ee={class:"jldocstring custom-block"},se={class:"jldocstring custom-block"},ae={class:"jldocstring custom-block"},ie={class:"jldocstring custom-block"},le={class:"jldocstring custom-block"},ne={class:"jldocstring custom-block"},pe={class:"jldocstring custom-block"},re={class:"jldocstring custom-block"},oe={class:"jldocstring custom-block"},de={class:"jldocstring custom-block"},ce={class:"jldocstring custom-block"},he={class:"jldocstring custom-block"},ue={class:"jldocstring custom-block"},be={class:"jldocstring custom-block"},ge={class:"jldocstring custom-block"},ye={class:"jldocstring custom-block"},me={class:"jldocstring custom-block"},ke={class:"jldocstring custom-block"},fe={class:"jldocstring custom-block"},Re={class:"jldocstring custom-block"},Ie={class:"jldocstring custom-block"},je={class:"jldocstring custom-block"},Me={class:"jldocstring custom-block"},Ae={class:"jldocstring custom-block"},Le={class:"jldocstring custom-block"},Ee={class:"jldocstring custom-block"},ve={class:"jldocstring custom-block"},Te={class:"jldocstring custom-block"},Ce={class:"jldocstring custom-block"},xe={class:"jldocstring custom-block"},Fe={class:"jldocstring custom-block"},Pe={class:"jldocstring custom-block"},De={class:"jldocstring custom-block"},Oe={class:"jldocstring custom-block"},Be={class:"jldocstring custom-block"},Ge={class:"jldocstring custom-block"},ze={class:"jldocstring custom-block"},we={class:"jldocstring custom-block"},Se={class:"jldocstring custom-block"},Ne={class:"jldocstring custom-block"},Ve={class:"jldocstring custom-block"},qe={class:"jldocstring custom-block"},Ue={class:"jldocstring custom-block"},Qe={class:"jldocstring custom-block"},We={class:"jldocstring custom-block"},He={class:"jldocstring custom-block"},Ze={class:"jldocstring custom-block"},Je={class:"jldocstring custom-block"},Ke={class:"jldocstring custom-block"},$e={class:"jldocstring custom-block"},Xe={class:"jldocstring custom-block"},Ye={class:"jldocstring custom-block"},_e={class:"jldocstring custom-block"},ts={class:"jldocstring custom-block"},es={class:"jldocstring custom-block"},ss={class:"jldocstring custom-block"},as={class:"jldocstring custom-block"},is={class:"jldocstring custom-block"},ls={class:"jldocstring custom-block"},ns={class:"jldocstring custom-block"},ps={class:"jldocstring custom-block"},rs={class:"jldocstring custom-block"},os={class:"jldocstring custom-block"},ds={class:"jldocstring custom-block"},cs={class:"jldocstring custom-block"},hs={class:"jldocstring custom-block"},us={class:"jldocstring custom-block"},bs={class:"jldocstring custom-block"},gs={class:"jldocstring custom-block"},ys={class:"jldocstring custom-block"},ms={class:"jldocstring custom-block"},ks={class:"jldocstring custom-block"},fs={class:"jldocstring custom-block"},Rs={class:"jldocstring custom-block"},Is={class:"jldocstring custom-block"},js={class:"jldocstring custom-block"},Ms={class:"jldocstring custom-block"},As={class:"jldocstring custom-block"},Ls={class:"jldocstring custom-block"},Es={class:"jldocstring custom-block"},vs={class:"jldocstring custom-block"},Ts={class:"jldocstring custom-block"},Cs={class:"jldocstring custom-block"},xs={class:"jldocstring custom-block"},Fs={class:"jldocstring custom-block"},Ps={class:"jldocstring custom-block"},Ds={class:"jldocstring custom-block"},Os={class:"jldocstring custom-block"},Bs={class:"jldocstring custom-block"},Gs={class:"jldocstring custom-block"},zs={class:"jldocstring custom-block"},ws={class:"jldocstring custom-block"},Ss={class:"jldocstring custom-block"},Ns={class:"jldocstring custom-block"},Vs={class:"jldocstring custom-block"},qs={class:"jldocstring custom-block"},Us={class:"jldocstring custom-block"},Qs={class:"jldocstring custom-block"},Ws={class:"jldocstring custom-block"},Hs={class:"jldocstring custom-block"},Zs={class:"jldocstring custom-block"},Js={class:"jldocstring custom-block"},Ks={class:"jldocstring custom-block"},$s={class:"jldocstring custom-block"},Xs={class:"jldocstring custom-block"},Ys={class:"jldocstring custom-block"},_s={class:"jldocstring custom-block"},ta={class:"jldocstring custom-block"},ea={class:"jldocstring custom-block"},sa={class:"jldocstring custom-block"},aa={class:"jldocstring custom-block"},ia={class:"jldocstring custom-block"},la={class:"jldocstring custom-block"},na={class:"jldocstring custom-block"},pa={class:"jldocstring custom-block"},ra={class:"jldocstring custom-block"},oa={class:"jldocstring custom-block"},da={class:"jldocstring custom-block"},ca={class:"jldocstring custom-block"},ha={class:"jldocstring custom-block"},ua={class:"jldocstring custom-block"},ba={class:"jldocstring custom-block"},ga={class:"jldocstring custom-block"},ya={class:"jldocstring custom-block"},ma={class:"jldocstring custom-block"},ka={class:"jldocstring custom-block"},fa={class:"jldocstring custom-block"},Ra={class:"jldocstring custom-block"},Ia={class:"jldocstring custom-block"},ja={class:"jldocstring custom-block"},Ma={class:"jldocstring custom-block"},Aa={class:"jldocstring custom-block"},La={class:"jldocstring custom-block"},Ea={class:"jldocstring custom-block"},va={class:"jldocstring custom-block"},Ta={class:"jldocstring custom-block"},Ca={class:"jldocstring custom-block"},xa={class:"jldocstring custom-block"},Fa={class:"jldocstring custom-block"},Pa={class:"jldocstring custom-block"},Da={class:"jldocstring custom-block"},Oa={class:"jldocstring custom-block"},Ba={class:"jldocstring custom-block"},Ga={class:"jldocstring custom-block"},za={class:"jldocstring custom-block"},wa={class:"jldocstring custom-block"},Sa={class:"jldocstring custom-block"},Na={class:"jldocstring custom-block"},Va={class:"jldocstring custom-block"},qa={class:"jldocstring custom-block"},Ua={class:"jldocstring custom-block"},Qa={class:"jldocstring custom-block"},Wa={class:"jldocstring custom-block"},Ha={class:"jldocstring custom-block"},Za={class:"jldocstring custom-block"},Ja={class:"jldocstring custom-block"},Ka={class:"jldocstring custom-block"},$a={class:"jldocstring custom-block"},Xa={class:"jldocstring custom-block"},Ya={class:"jldocstring custom-block"},_a={class:"jldocstring custom-block"},ti={class:"jldocstring custom-block"},ei={class:"jldocstring custom-block"},si={class:"jldocstring custom-block"},ai={class:"jldocstring custom-block"},ii={class:"jldocstring custom-block"},li={class:"jldocstring custom-block"},ni={class:"jldocstring custom-block"},pi={class:"jldocstring custom-block"},ri={class:"jldocstring custom-block"},oi={class:"jldocstring custom-block"},di={class:"jldocstring custom-block"},ci={class:"jldocstring custom-block"},hi={class:"jldocstring custom-block"},ui={class:"jldocstring custom-block"},bi={class:"jldocstring custom-block"},gi={class:"jldocstring custom-block"},yi={class:"jldocstring custom-block"},mi={class:"jldocstring custom-block"},ki={class:"jldocstring custom-block"},fi={class:"jldocstring custom-block"},Ri={class:"jldocstring custom-block"},Ii={class:"jldocstring custom-block"},ji={class:"jldocstring custom-block"},Mi={class:"jldocstring custom-block"},Ai={class:"jldocstring custom-block"},Li={class:"jldocstring custom-block"},Ei={class:"jldocstring custom-block"},vi={class:"jldocstring custom-block"},Ti={class:"jldocstring custom-block"},Ci={class:"jldocstring custom-block"},xi={class:"jldocstring custom-block"},Fi={class:"jldocstring custom-block"},Pi={class:"jldocstring custom-block"},Di={class:"jldocstring custom-block"},Oi={class:"jldocstring custom-block"},Bi={class:"jldocstring custom-block"},Gi={class:"jldocstring custom-block"},zi={class:"jldocstring custom-block"},wi={class:"jldocstring custom-block"},Si={class:"jldocstring custom-block"},Ni={class:"jldocstring custom-block"},Vi={class:"jldocstring custom-block"},qi={class:"jldocstring custom-block"},Ui={class:"jldocstring custom-block"},Qi={class:"jldocstring custom-block"},Wi={class:"jldocstring custom-block"},Hi={class:"jldocstring custom-block"},Zi={class:"jldocstring custom-block"},Ji={class:"jldocstring custom-block"},Ki={class:"jldocstring custom-block"},$i={class:"jldocstring custom-block"},Xi={class:"jldocstring custom-block"},Yi={class:"jldocstring custom-block"},_i={class:"jldocstring custom-block"},tl={class:"jldocstring custom-block"},el={class:"jldocstring custom-block"},sl={class:"jldocstring custom-block"},al={class:"jldocstring custom-block"},il={class:"jldocstring custom-block"},ll={class:"jldocstring custom-block"},nl={class:"jldocstring custom-block"},pl={class:"jldocstring custom-block"},rl={class:"jldocstring custom-block"},ol={class:"jldocstring custom-block"},dl={class:"jldocstring custom-block"},cl={class:"jldocstring custom-block"},hl={class:"jldocstring custom-block"},ul={class:"jldocstring custom-block"},bl={class:"jldocstring custom-block"},gl={class:"jldocstring custom-block"},yl={class:"jldocstring custom-block"},ml={class:"jldocstring custom-block"},kl={class:"jldocstring custom-block"},fl={class:"jldocstring custom-block"},Rl={class:"jldocstring custom-block"},Il={class:"jldocstring custom-block"},jl={class:"jldocstring custom-block"},Ml={class:"jldocstring custom-block"},Al={class:"jldocstring custom-block"},Ll={class:"jldocstring custom-block"},El={class:"jldocstring custom-block"},vl={class:"jldocstring custom-block"},Tl={class:"jldocstring custom-block"},Cl={class:"jldocstring custom-block"},xl={class:"jldocstring custom-block"},Fl={class:"jldocstring custom-block"},Pl={class:"jldocstring custom-block"},Dl={class:"jldocstring custom-block"},Ol={class:"jldocstring custom-block"},Bl={class:"jldocstring custom-block"},Gl={class:"jldocstring custom-block"},zl={class:"jldocstring custom-block"},wl={class:"jldocstring custom-block"},Sl={class:"jldocstring custom-block"},Nl={class:"jldocstring custom-block"},Vl={class:"jldocstring custom-block"},ql={class:"jldocstring custom-block"},Ul={class:"jldocstring custom-block"},Ql={class:"jldocstring custom-block"},Wl={class:"jldocstring custom-block"},Hl={class:"jldocstring custom-block"},Zl={class:"jldocstring custom-block"},Jl={class:"jldocstring custom-block"},Kl={class:"jldocstring custom-block"},$l={class:"jldocstring custom-block"},Xl={class:"jldocstring custom-block"},Yl={class:"jldocstring custom-block"},_l={class:"jldocstring custom-block"},tn={class:"jldocstring custom-block"},en={class:"jldocstring custom-block"},sn={class:"jldocstring custom-block"},an={class:"jldocstring custom-block"},ln={class:"jldocstring custom-block"},nn={class:"jldocstring custom-block"},pn={class:"jldocstring custom-block"},rn={class:"jldocstring custom-block"},on={class:"jldocstring custom-block"},dn={class:"jldocstring custom-block"},cn={class:"jldocstring custom-block"},hn={class:"jldocstring custom-block"},un={class:"jldocstring custom-block"},bn={class:"jldocstring custom-block"},gn={class:"jldocstring custom-block"},yn={class:"jldocstring custom-block"},mn={class:"jldocstring custom-block"},kn={class:"jldocstring custom-block"},fn={class:"jldocstring custom-block"},Rn={class:"jldocstring custom-block"},In={class:"jldocstring custom-block"},jn={class:"jldocstring custom-block"},Mn={class:"jldocstring custom-block"},An={class:"jldocstring custom-block"},Ln={class:"jldocstring custom-block"},En={class:"jldocstring custom-block"},vn={class:"jldocstring custom-block"},Tn={class:"jldocstring custom-block"},Cn={class:"jldocstring custom-block"},xn={class:"jldocstring custom-block"},Fn={class:"jldocstring custom-block"},Pn={class:"jldocstring custom-block"},Dn={class:"jldocstring custom-block"},On={class:"jldocstring custom-block"},Bn={class:"jldocstring custom-block"},Gn={class:"jldocstring custom-block"},zn={class:"jldocstring custom-block"},wn={class:"jldocstring custom-block"},Sn={class:"jldocstring custom-block"},Nn={class:"jldocstring custom-block"},Vn={class:"jldocstring custom-block"},qn={class:"jldocstring custom-block"},Un={class:"jldocstring custom-block"},Qn={class:"jldocstring custom-block"},Wn={class:"jldocstring custom-block"},Hn={class:"jldocstring custom-block"},Zn={class:"jldocstring custom-block"},Jn={class:"jldocstring custom-block"},Kn={class:"jldocstring custom-block"},$n={class:"jldocstring custom-block"},Xn={class:"jldocstring custom-block"},Yn={class:"jldocstring custom-block"},_n={class:"jldocstring custom-block"},tp={class:"jldocstring custom-block"},ep={class:"jldocstring custom-block"},sp={class:"jldocstring custom-block"},ap={class:"jldocstring custom-block"},ip={class:"jldocstring custom-block"},lp={class:"jldocstring custom-block"},np={class:"jldocstring custom-block"},pp={class:"jldocstring custom-block"},rp={class:"jldocstring custom-block"},op={class:"jldocstring custom-block"},dp={class:"jldocstring custom-block"},cp={class:"jldocstring custom-block"},hp={class:"jldocstring custom-block"},up={class:"jldocstring custom-block"},bp={class:"jldocstring custom-block"},gp={class:"jldocstring custom-block"},yp={class:"jldocstring custom-block"},mp={class:"jldocstring custom-block"},kp={class:"jldocstring custom-block"},fp={class:"jldocstring custom-block"},Rp={class:"jldocstring custom-block"},Ip={class:"jldocstring custom-block"},jp={class:"jldocstring custom-block"},Mp={class:"jldocstring custom-block"},Ap={class:"jldocstring custom-block"},Lp={class:"jldocstring custom-block"},Ep={class:"jldocstring custom-block"},vp={class:"jldocstring custom-block"},Tp={class:"jldocstring custom-block"},Cp={class:"jldocstring custom-block"},xp={class:"jldocstring custom-block"},Fp={class:"jldocstring custom-block"},Pp={class:"jldocstring custom-block"},Dp={class:"jldocstring custom-block"},Op={class:"jldocstring custom-block"},Bp={class:"jldocstring custom-block"},Gp={class:"jldocstring custom-block"},zp={class:"jldocstring custom-block"},wp={class:"jldocstring custom-block"},Sp={class:"jldocstring custom-block"},Np={class:"jldocstring custom-block"},Vp={class:"jldocstring custom-block"},qp={class:"jldocstring custom-block"},Up={class:"jldocstring custom-block"},Qp={class:"jldocstring custom-block"},Wp={class:"jldocstring custom-block"},Hp={class:"jldocstring custom-block"},Zp={class:"jldocstring custom-block"},Jp={class:"jldocstring custom-block"},Kp={class:"jldocstring custom-block"},$p={class:"jldocstring custom-block"},Xp={class:"jldocstring custom-block"},Yp={class:"jldocstring custom-block"},_p={class:"jldocstring custom-block"},tr={class:"jldocstring custom-block"},er={class:"jldocstring custom-block"},sr={class:"jldocstring custom-block"},ar={class:"jldocstring custom-block"},ir={class:"jldocstring custom-block"},lr={class:"jldocstring custom-block"},nr={class:"jldocstring custom-block"},pr={class:"jldocstring custom-block"},rr={class:"jldocstring custom-block"},or={class:"jldocstring custom-block"},dr={class:"jldocstring custom-block"},cr={class:"jldocstring custom-block"},hr={class:"jldocstring custom-block"},ur={class:"jldocstring custom-block"},br={class:"jldocstring custom-block"},gr={class:"jldocstring custom-block"},yr={class:"jldocstring custom-block"},mr={class:"jldocstring custom-block"},kr={class:"jldocstring custom-block"},fr={class:"jldocstring custom-block"},Rr={class:"jldocstring custom-block"},Ir={class:"jldocstring custom-block"},jr={class:"jldocstring custom-block"},Mr={class:"jldocstring custom-block"},Ar={class:"jldocstring custom-block"},Lr={class:"jldocstring custom-block"},Er={class:"jldocstring custom-block"},vr={class:"jldocstring custom-block"},Tr={class:"jldocstring custom-block"},Cr={class:"jldocstring custom-block"},xr={class:"jldocstring custom-block"},Fr={class:"jldocstring custom-block"},Pr={class:"jldocstring custom-block"},Dr={class:"jldocstring custom-block"},Or={class:"jldocstring custom-block"},Br={class:"jldocstring custom-block"},Gr={class:"jldocstring custom-block"},zr={class:"jldocstring custom-block"},wr={class:"jldocstring custom-block"},Sr={class:"jldocstring custom-block"},Nr={class:"jldocstring custom-block"},Vr={class:"jldocstring custom-block"},qr={class:"jldocstring custom-block"},Ur={class:"jldocstring custom-block"},Qr={class:"jldocstring custom-block"},Wr={class:"jldocstring custom-block"},Hr={class:"jldocstring custom-block"},Zr={class:"jldocstring custom-block"},Jr={class:"jldocstring custom-block"},Kr={class:"jldocstring custom-block"},$r={class:"jldocstring custom-block"},Xr={class:"jldocstring custom-block"},Yr={class:"jldocstring custom-block"},_r={class:"jldocstring custom-block"},to={class:"jldocstring custom-block"},eo={class:"jldocstring custom-block"},so={class:"jldocstring custom-block"},ao={class:"jldocstring custom-block"},io={class:"jldocstring custom-block"},lo={class:"jldocstring custom-block"},no={class:"jldocstring custom-block"},po={class:"jldocstring custom-block"},ro={class:"jldocstring custom-block"},oo={class:"jldocstring custom-block"},co={class:"jldocstring custom-block"},ho={class:"jldocstring custom-block"},uo={class:"jldocstring custom-block"},bo={class:"jldocstring custom-block"},go={class:"jldocstring custom-block"},yo={class:"jldocstring custom-block"},mo={class:"jldocstring custom-block"},ko={class:"jldocstring custom-block"},fo={class:"jldocstring custom-block"},Ro={class:"jldocstring custom-block"},Io={class:"jldocstring custom-block"},jo={class:"jldocstring custom-block"},Mo={class:"jldocstring custom-block"},Ao={class:"jldocstring custom-block"},Lo={class:"jldocstring custom-block"},Eo={class:"jldocstring custom-block"},vo={class:"jldocstring custom-block"},To={class:"jldocstring custom-block"},Co={class:"jldocstring custom-block"},xo={class:"jldocstring custom-block"},Fo={class:"jldocstring custom-block"},Po={class:"jldocstring custom-block"},Do={class:"jldocstring custom-block"},Oo={class:"jldocstring custom-block"},Bo={class:"jldocstring custom-block"},Go={class:"jldocstring custom-block"},zo={class:"jldocstring custom-block"},wo={class:"jldocstring custom-block"},So={class:"jldocstring custom-block"},No={class:"jldocstring custom-block"},Vo={class:"jldocstring custom-block"},qo={class:"jldocstring custom-block"},Uo={class:"jldocstring custom-block"},Qo={class:"jldocstring custom-block"},Wo={class:"jldocstring custom-block"},Ho={class:"jldocstring custom-block"},Zo={class:"jldocstring custom-block"},Jo={class:"jldocstring custom-block"},Ko={class:"jldocstring custom-block"},$o={class:"jldocstring custom-block"},Xo={class:"jldocstring custom-block"},Yo={class:"jldocstring custom-block"},_o={class:"jldocstring custom-block"},td={class:"jldocstring custom-block"},ed={class:"jldocstring custom-block"},sd={class:"jldocstring custom-block"},ad={class:"jldocstring custom-block"},id={class:"jldocstring custom-block"},ld={class:"jldocstring custom-block"},nd={class:"jldocstring custom-block"},pd={class:"jldocstring custom-block"},rd={class:"jldocstring custom-block"},od={class:"jldocstring custom-block"},dd={class:"jldocstring custom-block"},cd={class:"jldocstring custom-block"},hd={class:"jldocstring custom-block"},ud={class:"jldocstring custom-block"},bd={class:"jldocstring custom-block"},gd={class:"jldocstring custom-block"},yd={class:"jldocstring custom-block"},md={class:"jldocstring custom-block"},kd={class:"jldocstring custom-block"},fd={class:"jldocstring custom-block"},Rd={class:"jldocstring custom-block"},Id={class:"jldocstring custom-block"},jd={class:"jldocstring custom-block"},Md={class:"jldocstring custom-block"},Ad={class:"jldocstring custom-block"},Ld={class:"jldocstring custom-block"},Ed={class:"jldocstring custom-block"},vd={class:"jldocstring custom-block"},Td={class:"jldocstring custom-block"},Cd={class:"jldocstring custom-block"},xd={class:"jldocstring custom-block"},Fd={class:"jldocstring custom-block"},Pd={class:"jldocstring custom-block"},Dd={class:"jldocstring custom-block"},Od={class:"jldocstring custom-block"},Bd={class:"jldocstring custom-block"},Gd={class:"jldocstring custom-block"},zd={class:"jldocstring custom-block"},wd={class:"jldocstring custom-block"},Sd={class:"jldocstring custom-block"},Nd={class:"jldocstring custom-block"},Vd={class:"jldocstring custom-block"},qd={class:"jldocstring custom-block"},Ud={class:"jldocstring custom-block"},Qd={class:"jldocstring custom-block"},Wd={class:"jldocstring custom-block"},Hd={class:"jldocstring custom-block"},Zd={class:"jldocstring custom-block"},Jd={class:"jldocstring custom-block"},Kd={class:"jldocstring custom-block"},$d={class:"jldocstring custom-block"},Xd={class:"jldocstring custom-block"},Yd={class:"jldocstring custom-block"},_d={class:"jldocstring custom-block"},tc={class:"jldocstring custom-block"},ec={class:"jldocstring custom-block"},sc={class:"jldocstring custom-block"},ac={class:"jldocstring custom-block"},ic={class:"jldocstring custom-block"},lc={class:"jldocstring custom-block"},nc={class:"jldocstring custom-block"},pc={class:"jldocstring custom-block"},rc={class:"jldocstring custom-block"},oc={class:"jldocstring custom-block"},dc={class:"jldocstring custom-block"},cc={class:"jldocstring custom-block"},hc={class:"jldocstring custom-block"},uc={class:"jldocstring custom-block"},bc={class:"jldocstring custom-block"},gc={class:"jldocstring custom-block"},yc={class:"jldocstring custom-block"},mc={class:"jldocstring custom-block"},kc={class:"jldocstring custom-block"},fc={class:"jldocstring custom-block"},Rc={class:"jldocstring custom-block"},Ic={class:"jldocstring custom-block"},jc={class:"jldocstring custom-block"},Mc={class:"jldocstring custom-block"},Ac={class:"jldocstring custom-block"},Lc={class:"jldocstring custom-block"},Ec={class:"jldocstring custom-block"},vc={class:"jldocstring custom-block"},Tc={class:"jldocstring custom-block"},Cc={class:"jldocstring custom-block"},xc={class:"jldocstring custom-block"},Fc={class:"jldocstring custom-block"},Pc={class:"jldocstring custom-block"},Dc={class:"jldocstring custom-block"},Oc={class:"jldocstring custom-block"},Bc={class:"jldocstring custom-block"},Gc={class:"jldocstring custom-block"},zc={class:"jldocstring custom-block"},wc={class:"jldocstring custom-block"},Sc={class:"jldocstring custom-block"},Nc={class:"jldocstring custom-block"},Vc={class:"jldocstring custom-block"},qc={class:"jldocstring custom-block"},Uc={class:"jldocstring custom-block"},Qc={class:"jldocstring custom-block"},Wc={class:"jldocstring custom-block"},Hc={class:"jldocstring custom-block"},Zc={class:"jldocstring custom-block"},Jc={class:"jldocstring custom-block"},Kc={class:"jldocstring custom-block"},$c={class:"jldocstring custom-block"},Xc={class:"jldocstring custom-block"},Yc={class:"jldocstring custom-block"},_c={class:"jldocstring custom-block"},th={class:"jldocstring custom-block"},eh={class:"jldocstring custom-block"},sh={class:"jldocstring custom-block"},ah={class:"jldocstring custom-block"},ih={class:"jldocstring custom-block"},lh={class:"jldocstring custom-block"},nh={class:"jldocstring custom-block"},ph={class:"jldocstring custom-block"},rh={class:"jldocstring custom-block"},oh={class:"jldocstring custom-block"},dh={class:"jldocstring custom-block"},ch={class:"jldocstring custom-block"},hh={class:"jldocstring custom-block"},uh={class:"jldocstring custom-block"},bh={class:"jldocstring custom-block"},gh={class:"jldocstring custom-block"},yh={class:"jldocstring custom-block"},mh={class:"jldocstring custom-block"},kh={class:"jldocstring custom-block"},fh={class:"jldocstring custom-block"},Rh={class:"jldocstring custom-block"},Ih={class:"jldocstring custom-block"},jh={class:"jldocstring custom-block"},Mh={class:"jldocstring custom-block"},Ah={class:"jldocstring custom-block"},Lh={class:"jldocstring custom-block"},Eh={class:"jldocstring custom-block"},vh={class:"jldocstring custom-block"},Th={class:"jldocstring custom-block"},Ch={class:"jldocstring custom-block"},xh={class:"jldocstring custom-block"},Fh={class:"jldocstring custom-block"},Ph={class:"jldocstring custom-block"},Dh={class:"jldocstring custom-block"},Oh={class:"jldocstring custom-block"},Bh={class:"jldocstring custom-block"},Gh={class:"jldocstring custom-block"},zh={class:"jldocstring custom-block"},wh={class:"jldocstring custom-block"},Sh={class:"jldocstring custom-block"},Nh={class:"jldocstring custom-block"},Vh={class:"jldocstring custom-block"},qh={class:"jldocstring custom-block"},Uh={class:"jldocstring custom-block"},Qh={class:"jldocstring custom-block"},Wh={class:"jldocstring custom-block"},Hh={class:"jldocstring custom-block"},Zh={class:"jldocstring custom-block"},Jh={class:"jldocstring custom-block"},Kh={class:"jldocstring custom-block"},$h={class:"jldocstring custom-block"},Xh={class:"jldocstring custom-block"},Yh={class:"jldocstring custom-block"},_h={class:"jldocstring custom-block"},tu={class:"jldocstring custom-block"},eu={class:"jldocstring custom-block"},su={class:"jldocstring custom-block"},au={class:"jldocstring custom-block"},iu={class:"jldocstring custom-block"},lu={class:"jldocstring custom-block"},nu={class:"jldocstring custom-block"},pu={class:"jldocstring custom-block"},ru={class:"jldocstring custom-block"},ou={class:"jldocstring custom-block"},du={class:"jldocstring custom-block"},cu={class:"jldocstring custom-block"},hu={class:"jldocstring custom-block"},uu={class:"jldocstring custom-block"},bu={class:"jldocstring custom-block"},gu={class:"jldocstring custom-block"},yu={class:"jldocstring custom-block"},mu={class:"jldocstring custom-block"},ku={class:"jldocstring custom-block"},fu={class:"jldocstring custom-block"},Ru={class:"jldocstring custom-block"},Iu={class:"jldocstring custom-block"},ju={class:"jldocstring custom-block"},Mu={class:"jldocstring custom-block"},Au={class:"jldocstring custom-block"},Lu={class:"jldocstring custom-block"},Eu={class:"jldocstring custom-block"},vu={class:"jldocstring custom-block"},Tu={class:"jldocstring custom-block"},Cu={class:"jldocstring custom-block"},xu={class:"jldocstring custom-block"},Fu={class:"jldocstring custom-block"},Pu={class:"jldocstring custom-block"},Du={class:"jldocstring custom-block"},Ou={class:"jldocstring custom-block"},Bu={class:"jldocstring custom-block"},Gu={class:"jldocstring custom-block"},zu={class:"jldocstring custom-block"},wu={class:"jldocstring custom-block"},Su={class:"jldocstring custom-block"},Nu={class:"jldocstring custom-block"},Vu={class:"jldocstring custom-block"},qu={class:"jldocstring custom-block"},Uu={class:"jldocstring custom-block"},Qu={class:"jldocstring custom-block"},Wu={class:"jldocstring custom-block"},Hu={class:"jldocstring custom-block"},Zu={class:"jldocstring custom-block"},Ju={class:"jldocstring custom-block"},Ku={class:"jldocstring custom-block"},$u={class:"jldocstring custom-block"},Xu={class:"jldocstring custom-block"},Yu={class:"jldocstring custom-block"},_u={class:"jldocstring custom-block"},tb={class:"jldocstring custom-block"},eb={class:"jldocstring custom-block"},sb={class:"jldocstring custom-block"},ab={class:"jldocstring custom-block"},ib={class:"jldocstring custom-block"},lb={class:"jldocstring custom-block"},nb={class:"jldocstring custom-block"},pb={class:"jldocstring custom-block"},rb={class:"jldocstring custom-block"},ob={class:"jldocstring custom-block"},db={class:"jldocstring custom-block"},cb={class:"jldocstring custom-block"},hb={class:"jldocstring custom-block"},ub={class:"jldocstring custom-block"},bb={class:"jldocstring custom-block"},gb={class:"jldocstring custom-block"},yb={class:"jldocstring custom-block"},mb={class:"jldocstring custom-block"},kb={class:"jldocstring custom-block"},fb={class:"jldocstring custom-block"},Rb={class:"jldocstring custom-block"},Ib={class:"jldocstring custom-block"},jb={class:"jldocstring custom-block"},Mb={class:"jldocstring custom-block"},Ab={class:"jldocstring custom-block"},Lb={class:"jldocstring custom-block"},Eb={class:"jldocstring custom-block"},vb={class:"jldocstring custom-block"},Tb={class:"jldocstring custom-block"},Cb={class:"jldocstring custom-block"},xb={class:"jldocstring custom-block"},Fb={class:"jldocstring custom-block"},Pb={class:"jldocstring custom-block"},Db={class:"jldocstring custom-block"},Ob={class:"jldocstring custom-block"},Bb={class:"jldocstring custom-block"},Gb={class:"jldocstring custom-block"},zb={class:"jldocstring custom-block"},wb={class:"jldocstring custom-block"},Sb={class:"jldocstring custom-block"},Nb={class:"jldocstring custom-block"},Vb={class:"jldocstring custom-block"},qb={class:"jldocstring custom-block"},Ub={class:"jldocstring custom-block"},Qb={class:"jldocstring custom-block"},Wb={class:"jldocstring custom-block"},Hb={class:"jldocstring custom-block"},Zb={class:"jldocstring custom-block"},Jb={class:"jldocstring custom-block"},Kb={class:"jldocstring custom-block"},$b={class:"jldocstring custom-block"},Xb={class:"jldocstring custom-block"},Yb={class:"jldocstring custom-block"},_b={class:"jldocstring custom-block"},tg={class:"jldocstring custom-block"},eg={class:"jldocstring custom-block"},sg={class:"jldocstring custom-block"},ag={class:"jldocstring custom-block"},ig={class:"jldocstring custom-block"},lg={class:"jldocstring custom-block"},ng={class:"jldocstring custom-block"},pg={class:"jldocstring custom-block"},rg={class:"jldocstring custom-block"},og={class:"jldocstring custom-block"},dg={class:"jldocstring custom-block"},cg={class:"jldocstring custom-block"},hg={class:"jldocstring custom-block"},ug={class:"jldocstring custom-block"},bg={class:"jldocstring custom-block"},gg={class:"jldocstring custom-block"},yg={class:"jldocstring custom-block"},mg={class:"jldocstring custom-block"},kg={class:"jldocstring custom-block"},fg={class:"jldocstring custom-block"},Rg={class:"jldocstring custom-block"},Ig={class:"jldocstring custom-block"},jg={class:"jldocstring custom-block"},Mg={class:"jldocstring custom-block"},Ag={class:"jldocstring custom-block"},Lg={class:"jldocstring custom-block"},Eg={class:"jldocstring custom-block"},vg={class:"jldocstring custom-block"},Tg={class:"jldocstring custom-block"},Cg={class:"jldocstring custom-block"},xg={class:"jldocstring custom-block"},Fg={class:"jldocstring custom-block"},Pg={class:"jldocstring custom-block"},Dg={class:"jldocstring custom-block"},Og={class:"jldocstring custom-block"},Bg={class:"jldocstring custom-block"},Gg={class:"jldocstring custom-block"},zg={class:"jldocstring custom-block"},wg={class:"jldocstring custom-block"},Sg={class:"jldocstring custom-block"},Ng={class:"jldocstring custom-block"},Vg={class:"jldocstring custom-block"},qg={class:"jldocstring custom-block"},Ug={class:"jldocstring custom-block"},Qg={class:"jldocstring custom-block"},Wg={class:"jldocstring custom-block"},Hg={class:"jldocstring custom-block"},Zg={class:"jldocstring custom-block"},Jg={class:"jldocstring custom-block"},Kg={class:"jldocstring custom-block"},$g={class:"jldocstring custom-block"},Xg={class:"jldocstring custom-block"},Yg={class:"jldocstring custom-block"},_g={class:"jldocstring custom-block"},ty={class:"jldocstring custom-block"},ey={class:"jldocstring custom-block"},sy={class:"jldocstring custom-block"},ay={class:"jldocstring custom-block"},iy={class:"jldocstring custom-block"},ly={class:"jldocstring custom-block"},ny={class:"jldocstring custom-block"},py={class:"jldocstring custom-block"},ry={class:"jldocstring custom-block"},oy={class:"jldocstring custom-block"},dy={class:"jldocstring custom-block"},cy={class:"jldocstring custom-block"},hy={class:"jldocstring custom-block"},uy={class:"jldocstring custom-block"},by={class:"jldocstring custom-block"},gy={class:"jldocstring custom-block"},yy={class:"jldocstring custom-block"},my={class:"jldocstring custom-block"},ky={class:"jldocstring custom-block"},fy={class:"jldocstring custom-block"},Ry={class:"jldocstring custom-block"},Iy={class:"jldocstring custom-block"},jy={class:"jldocstring custom-block"},My={class:"jldocstring custom-block"},Ay={class:"jldocstring custom-block"},Ly={class:"jldocstring custom-block"},Ey={class:"jldocstring custom-block"},vy={class:"jldocstring custom-block"},Ty={class:"jldocstring custom-block"},Cy={class:"jldocstring custom-block"},xy={class:"jldocstring custom-block"},Fy={class:"jldocstring custom-block"},Py={class:"jldocstring custom-block"},Dy={class:"jldocstring custom-block"},Oy={class:"jldocstring custom-block"},By={class:"jldocstring custom-block"},Gy={class:"jldocstring custom-block"},zy={class:"jldocstring custom-block"},wy={class:"jldocstring custom-block"},Sy={class:"jldocstring custom-block"},Ny={class:"jldocstring custom-block"},Vy={class:"jldocstring custom-block"},qy={class:"jldocstring custom-block"},Uy={class:"jldocstring custom-block"},Qy={class:"jldocstring custom-block"},Wy={class:"jldocstring custom-block"},Hy={class:"jldocstring custom-block"},Zy={class:"jldocstring custom-block"},Jy={class:"jldocstring custom-block"},Ky={class:"jldocstring custom-block"},$y={class:"jldocstring custom-block"},Xy={class:"jldocstring custom-block"},Yy={class:"jldocstring custom-block"},_y={class:"jldocstring custom-block"},tm={class:"jldocstring custom-block"},em={class:"jldocstring custom-block"},sm={class:"jldocstring custom-block"},am={class:"jldocstring custom-block"},im={class:"jldocstring custom-block"},lm={class:"jldocstring custom-block"},nm={class:"jldocstring custom-block"},pm={class:"jldocstring custom-block"},rm={class:"jldocstring custom-block"},om={class:"jldocstring custom-block"},dm={class:"jldocstring custom-block"},cm={class:"jldocstring custom-block"},hm={class:"jldocstring custom-block"},um={class:"jldocstring custom-block"},bm={class:"jldocstring custom-block"},gm={class:"jldocstring custom-block"},ym={class:"jldocstring custom-block"},mm={class:"jldocstring custom-block"},km={class:"jldocstring custom-block"},fm={class:"jldocstring custom-block"},Rm={class:"jldocstring custom-block"},Im={class:"jldocstring custom-block"},jm={class:"jldocstring custom-block"},Mm={class:"jldocstring custom-block"},Am={class:"jldocstring custom-block"},Lm={class:"jldocstring custom-block"},Em={class:"jldocstring custom-block"},vm={class:"jldocstring custom-block"},Tm={class:"jldocstring custom-block"},Cm={class:"jldocstring custom-block"},xm={class:"jldocstring custom-block"},Fm={class:"jldocstring custom-block"},Pm={class:"jldocstring custom-block"},Dm={class:"jldocstring custom-block"},Om={class:"jldocstring custom-block"},Bm={class:"jldocstring custom-block"},Gm={class:"jldocstring custom-block"},zm={class:"jldocstring custom-block"},wm={class:"jldocstring custom-block"},Sm={class:"jldocstring custom-block"},Nm={class:"jldocstring custom-block"},Vm={class:"jldocstring custom-block"},qm={class:"jldocstring custom-block"},Um={class:"jldocstring custom-block"},Qm={class:"jldocstring custom-block"},Wm={class:"jldocstring custom-block"},Hm={class:"jldocstring custom-block"},Zm={class:"jldocstring custom-block"},Jm={class:"jldocstring custom-block"},Km={class:"jldocstring custom-block"},$m={class:"jldocstring custom-block"},Xm={class:"jldocstring custom-block"},Ym={class:"jldocstring custom-block"},_m={class:"jldocstring custom-block"},tk={class:"jldocstring custom-block"},ek={class:"jldocstring custom-block"},sk={class:"jldocstring custom-block"},ak={class:"jldocstring custom-block"},ik={class:"jldocstring custom-block"},lk={class:"jldocstring custom-block"},nk={class:"jldocstring custom-block"},pk={class:"jldocstring custom-block"},rk={class:"jldocstring custom-block"},ok={class:"jldocstring custom-block"},dk={class:"jldocstring custom-block"},ck={class:"jldocstring custom-block"},hk={class:"jldocstring custom-block"},uk={class:"jldocstring custom-block"},bk={class:"jldocstring custom-block"},gk={class:"jldocstring custom-block"},yk={class:"jldocstring custom-block"},mk={class:"jldocstring custom-block"},kk={class:"jldocstring custom-block"},fk={class:"jldocstring custom-block"},Rk={class:"jldocstring custom-block"},Ik={class:"jldocstring custom-block"},jk={class:"jldocstring custom-block"},Mk={class:"jldocstring custom-block"},Ak={class:"jldocstring custom-block"},Lk={class:"jldocstring custom-block"},Ek={class:"jldocstring custom-block"},vk={class:"jldocstring custom-block"};function Tk(Ck,t,xk,Fk,Pk,Dk){const a=r("Badge");return o(),p("div",null,[t[3183]||(t[3183]=e("h1",{id:"Higher-level-API",tabindex:"-1"},[s("Higher level API "),e("a",{class:"header-anchor",href:"#Higher-level-API","aria-label":'Permalink to "Higher level API {#Higher-level-API}"'},"")],-1)),e("details",c,[e("summary",null,[t[0]||(t[0]=e("a",{id:"Core.Bool-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Core.Bool-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Core.Bool")],-1)),t[1]||(t[1]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2]||(t[2]=l('Bool(attr)
Returns the value stored in the given bool attribute.
',3))]),e("details",h,[e("summary",null,[t[3]||(t[3]=e("a",{id:"Core.Float64-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Core.Float64-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Core.Float64")],-1)),t[4]||(t[4]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[5]||(t[5]=l('Float64(attr)
Returns the value stored in the given floating point attribute, interpreting the value as double.
',3))]),e("details",u,[e("summary",null,[t[6]||(t[6]=e("a",{id:"Core.Int64-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Core.Int64-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Core.Int64")],-1)),t[7]||(t[7]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[8]||(t[8]=l('Int64(attr)
Returns the value stored in the given integer attribute, assuming the value is of signed type and fits into a signed 64-bit integer.
',3))]),e("details",b,[e("summary",null,[t[9]||(t[9]=e("a",{id:"Core.String-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Core.String-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Core.String")],-1)),t[10]||(t[10]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[11]||(t[11]=l('String(attr)
Returns the attribute values as a string reference. The data remains live as long as the context in which the attribute lives.
',3))]),e("details",g,[e("summary",null,[t[12]||(t[12]=e("a",{id:"Core.String-Tuple{Reactant.MLIR.IR.Identifier}",href:"#Core.String-Tuple{Reactant.MLIR.IR.Identifier}"},[e("span",{class:"jlbinding"},"Core.String")],-1)),t[13]||(t[13]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[14]||(t[14]=l('String(ident)
Gets the string value of the identifier.
',3))]),e("details",y,[e("summary",null,[t[15]||(t[15]=e("a",{id:"Core.UInt64-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Core.UInt64-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Core.UInt64")],-1)),t[16]||(t[16]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[17]||(t[17]=l('UInt64(attr)
Returns the value stored in the given integer attribute, assuming the value is of unsigned type and fits into an unsigned 64-bit integer.
',3))]),e("details",m,[e("summary",null,[t[18]||(t[18]=e("a",{id:"Reactant.MLIR.IR.AffineMap-Tuple{Any, Any, Vector{Reactant.MLIR.IR.AffineExpr}}",href:"#Reactant.MLIR.IR.AffineMap-Tuple{Any, Any, Vector{Reactant.MLIR.IR.AffineExpr}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.AffineMap")],-1)),t[19]||(t[19]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[20]||(t[20]=l('AffineMap(ndims, nsymbols, affineExprs; context=context())
Creates an affine map with results defined by the given list of affine expressions. The map resulting map also has the requested number of input dimensions and symbols, regardless of them being used in the results.
',3))]),e("details",k,[e("summary",null,[t[21]||(t[21]=e("a",{id:"Reactant.MLIR.IR.AffineMap-Tuple{Any, Any}",href:"#Reactant.MLIR.IR.AffineMap-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.AffineMap")],-1)),t[22]||(t[22]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[23]||(t[23]=l('AffineMap(ndims, nsymbols; context=context())
Creates a zero result affine map of the given dimensions and symbols in the context. The affine map is owned by the context.
',3))]),e("details",f,[e("summary",null,[t[24]||(t[24]=e("a",{id:"Reactant.MLIR.IR.AffineMap-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.AffineMap-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.AffineMap")],-1)),t[25]||(t[25]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[26]||(t[26]=l('AffineMap(attr)
Returns the affine map wrapped in the given affine map attribute.
',3))]),e("details",R,[e("summary",null,[t[27]||(t[27]=e("a",{id:"Reactant.MLIR.IR.AffineMap-Tuple{}",href:"#Reactant.MLIR.IR.AffineMap-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.AffineMap")],-1)),t[28]||(t[28]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[29]||(t[29]=l('AffineMap(; context=context())
Creates a zero result affine map with no dimensions or symbols in the context. The affine map is owned by the context.
',3))]),e("details",I,[e("summary",null,[t[30]||(t[30]=e("a",{id:"Reactant.MLIR.IR.Attribute-Tuple{AbstractString}",href:"#Reactant.MLIR.IR.Attribute-Tuple{AbstractString}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Attribute")],-1)),t[31]||(t[31]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[32]||(t[32]=l('Attribute(str; context=context())
Creates a string attribute in the given context containing the given string.
',3))]),e("details",j,[e("summary",null,[t[33]||(t[33]=e("a",{id:"Reactant.MLIR.IR.Attribute-Tuple{Bool}",href:"#Reactant.MLIR.IR.Attribute-Tuple{Bool}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Attribute")],-1)),t[34]||(t[34]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[35]||(t[35]=l('Attribute(value; context=context())
Creates a bool attribute in the given context with the given value.
',3))]),e("details",M,[e("summary",null,[t[36]||(t[36]=e("a",{id:"Reactant.MLIR.IR.Attribute-Tuple{Dict}",href:"#Reactant.MLIR.IR.Attribute-Tuple{Dict}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Attribute")],-1)),t[37]||(t[37]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[38]||(t[38]=l('Attribute(elements; context=context())
Creates a dictionary attribute containing the given list of elements in the provided context.
',3))]),e("details",A,[e("summary",null,[t[39]||(t[39]=e("a",{id:"Reactant.MLIR.IR.Attribute-Tuple{Reactant.MLIR.IR.AffineMap}",href:"#Reactant.MLIR.IR.Attribute-Tuple{Reactant.MLIR.IR.AffineMap}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Attribute")],-1)),t[40]||(t[40]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[41]||(t[41]=l('Attribute(affineMap)
Creates an affine map attribute wrapping the given map. The attribute belongs to the same context as the affine map.
',3))]),e("details",L,[e("summary",null,[t[42]||(t[42]=e("a",{id:"Reactant.MLIR.IR.Attribute-Tuple{Reactant.MLIR.IR.Type, AbstractString}",href:"#Reactant.MLIR.IR.Attribute-Tuple{Reactant.MLIR.IR.Type, AbstractString}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Attribute")],-1)),t[43]||(t[43]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[44]||(t[44]=l('Attribute(type, str)
Creates a string attribute in the given context containing the given string. Additionally, the attribute has the given type.
',3))]),e("details",E,[e("summary",null,[t[45]||(t[45]=e("a",{id:"Reactant.MLIR.IR.Attribute-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.Attribute-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Attribute")],-1)),t[46]||(t[46]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[47]||(t[47]=l('Attribute(type)
Creates a type attribute wrapping the given type in the same context as the type.
',3))]),e("details",v,[e("summary",null,[t[48]||(t[48]=e("a",{id:"Reactant.MLIR.IR.Attribute-Tuple{T} where T<:AbstractFloat",href:"#Reactant.MLIR.IR.Attribute-Tuple{T} where T<:AbstractFloat"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Attribute")],-1)),t[49]||(t[49]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[50]||(t[50]=l('Attribute(float; context=context(), location=Location(), check=false)
Creates a floating point attribute in the given context with the given double value and double-precision FP semantics. If check=true
, emits appropriate diagnostics on illegal arguments.
Attribute(complex; context=context(), location=Location(), check=false)
Creates a complex attribute in the given context with the given complex value and double-precision FP semantics.
',3))]),e("details",C,[e("summary",null,[t[54]||(t[54]=e("a",{id:"Reactant.MLIR.IR.Attribute-Tuple{Vector{Reactant.MLIR.IR.Attribute}}",href:"#Reactant.MLIR.IR.Attribute-Tuple{Vector{Reactant.MLIR.IR.Attribute}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Attribute")],-1)),t[55]||(t[55]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[56]||(t[56]=l('Attribute(elements; context=context())
Creates an array element containing the given list of elements in the given context.
',3))]),e("details",x,[e("summary",null,[t[57]||(t[57]=e("a",{id:"Reactant.MLIR.IR.Attribute-Tuple{}",href:"#Reactant.MLIR.IR.Attribute-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Attribute")],-1)),t[58]||(t[58]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[59]||(t[59]=l('Attribute()
Returns an empty attribute.
',3))]),e("details",F,[e("summary",null,[t[60]||(t[60]=e("a",{id:"Reactant.MLIR.IR.Attribute-Union{Tuple{T}, Tuple{T, Any}} where T<:Integer",href:"#Reactant.MLIR.IR.Attribute-Union{Tuple{T}, Tuple{T, Any}} where T<:Integer"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Attribute")],-1)),t[61]||(t[61]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[62]||(t[62]=l('Attribute(int)
Creates an integer attribute of the given type with the given integer value.
',3))]),e("details",P,[e("summary",null,[t[63]||(t[63]=e("a",{id:"Reactant.MLIR.IR.Block-Tuple{Vector{Reactant.MLIR.IR.Type}, Vector{Reactant.MLIR.IR.Location}}",href:"#Reactant.MLIR.IR.Block-Tuple{Vector{Reactant.MLIR.IR.Type}, Vector{Reactant.MLIR.IR.Location}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Block")],-1)),t[64]||(t[64]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[65]||(t[65]=l('Block(args, locs)
Creates a new empty block with the given argument types and transfers ownership to the caller.
',3))]),e("details",D,[e("summary",null,[t[66]||(t[66]=e("a",{id:"Reactant.MLIR.IR.BlockIterator",href:"#Reactant.MLIR.IR.BlockIterator"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.BlockIterator")],-1)),t[67]||(t[67]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[68]||(t[68]=l('BlockIterator(region::Region)
Iterates over all blocks in the given region.
',3))]),e("details",O,[e("summary",null,[t[69]||(t[69]=e("a",{id:"Reactant.MLIR.IR.Context-Tuple{}",href:"#Reactant.MLIR.IR.Context-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Context")],-1)),t[70]||(t[70]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[71]||(t[71]=l('Context()
Creates an MLIR context and transfers its ownership to the caller.
',3))]),e("details",B,[e("summary",null,[t[72]||(t[72]=e("a",{id:"Reactant.MLIR.IR.ExecutionEngine",href:"#Reactant.MLIR.IR.ExecutionEngine"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.ExecutionEngine")],-1)),t[73]||(t[73]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[74]||(t[74]=l('ExecutionEngine(op, optLevel, sharedlibs = [])
Creates an ExecutionEngine for the provided ModuleOp. The ModuleOp is expected to be "translatable" to LLVM IR (only contains operations in dialects that implement the LLVMTranslationDialectInterface
). The module ownership stays with the client and can be destroyed as soon as the call returns. optLevel
is the optimization level to be used for transformation and code generation. LLVM passes at optLevel
are run before code generation. The number and array of paths corresponding to shared libraries that will be loaded are specified via numPaths
and sharedLibPaths
respectively. TODO: figure out other options.
Identifier(context, str)
Gets an identifier with the given string value.
',3))]),e("details",z,[e("summary",null,[t[78]||(t[78]=e("a",{id:"Reactant.MLIR.IR.IntegerSet-NTuple{4, Any}",href:"#Reactant.MLIR.IR.IntegerSet-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.IntegerSet")],-1)),t[79]||(t[79]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[80]||(t[80]=l('IntegerSet(ndims, nsymbols, constraints, eqflags; context=context())
Gets or creates a new integer set in the given context. The set is defined by a list of affine constraints, with the given number of input dimensions and symbols, which are treated as either equalities (eqflags is 1) or inequalities (eqflags is 0). Both constraints
and eqflags
need to be arrays of the same length.
Integerset(ndims, nsymbols; context=context())
Gets or creates a new canonically empty integer set with the give number of dimensions and symbols in the given context.
',3))]),e("details",S,[e("summary",null,[t[84]||(t[84]=e("a",{id:"Reactant.MLIR.IR.LogicalResult",href:"#Reactant.MLIR.IR.LogicalResult"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.LogicalResult")],-1)),t[85]||(t[85]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[86]||(t[86]=l('LogicalResult
A logical result value, essentially a boolean with named states. LLVM convention for using boolean values to designate success or failure of an operation is a moving target, so MLIR opted for an explicit class. Instances of LogicalResult
must only be inspected using the associated functions.
Module(location=Location())
Creates a new, empty module and transfers ownership to the caller.
',3))]),e("details",V,[e("summary",null,[t[90]||(t[90]=e("a",{id:"Reactant.MLIR.IR.NamedAttribute-Tuple{Any, Any}",href:"#Reactant.MLIR.IR.NamedAttribute-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.NamedAttribute")],-1)),t[91]||(t[91]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[92]||(t[92]=l('NamedAttribute(name, attr)
Associates an attribute with the name. Takes ownership of neither.
',3))]),e("details",q,[e("summary",null,[t[93]||(t[93]=e("a",{id:"Reactant.MLIR.IR.OpPassManager-Tuple{Reactant.MLIR.IR.OpPassManager, Any}",href:"#Reactant.MLIR.IR.OpPassManager-Tuple{Reactant.MLIR.IR.OpPassManager, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.OpPassManager")],-1)),t[94]||(t[94]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[95]||(t[95]=l('OpPassManager(opPassManager, operationName)
Nest an OpPassManager
under the provided OpPassManager
, the nested passmanager will only run on operations matching the provided name. The returned OpPassManager
will be destroyed when the parent is destroyed.
OpPassManager(passManager, operationName)
Nest an OpPassManager
under the top-level PassManager, the nested passmanager will only run on operations matching the provided name. The returned OpPassManager
will be destroyed when the parent is destroyed. To further nest more OpPassManager
under the newly returned one, see mlirOpPassManagerNest
below.
OpPassManager(passManager)
Cast a top-level PassManager
to a generic OpPassManager
.
Operation(module)
Views the module as a generic operation.
',3))]),e("details",H,[e("summary",null,[t[105]||(t[105]=e("a",{id:"Reactant.MLIR.IR.OperationIterator",href:"#Reactant.MLIR.IR.OperationIterator"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.OperationIterator")],-1)),t[106]||(t[106]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[107]||(t[107]=l('OperationIterator(block::Block)
Iterates over all operations for the given block.
',3))]),e("details",Z,[e("summary",null,[t[108]||(t[108]=e("a",{id:"Reactant.MLIR.IR.PassManager-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.PassManager-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.PassManager")],-1)),t[109]||(t[109]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[110]||(t[110]=l('PassManager(anchorOp; context=context())
Create a new top-level PassManager anchored on anchorOp
.
PassManager(; context=context())
Create a new top-level PassManager.
',3))]),e("details",K,[e("summary",null,[t[114]||(t[114]=e("a",{id:"Reactant.MLIR.IR.Region-Tuple{}",href:"#Reactant.MLIR.IR.Region-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Region")],-1)),t[115]||(t[115]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[116]||(t[116]=l('Region()
Creates a new empty region and transfers ownership to the caller.
',3))]),e("details",$,[e("summary",null,[t[117]||(t[117]=e("a",{id:"Reactant.MLIR.IR.RegionIterator",href:"#Reactant.MLIR.IR.RegionIterator"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.RegionIterator")],-1)),t[118]||(t[118]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[119]||(t[119]=l('RegionIterator(::Operation)
Iterates over all sub-regions for the given operation.
',3))]),e("details",X,[e("summary",null,[t[120]||(t[120]=e("a",{id:"Reactant.MLIR.IR.SymbolTable-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.SymbolTable-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.SymbolTable")],-1)),t[121]||(t[121]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[122]||(t[122]=l('mlirSymbolTableCreate(operation)
Creates a symbol table for the given operation. If the operation does not have the SymbolTable trait, returns a null symbol table.
',3))]),e("details",Y,[e("summary",null,[t[123]||(t[123]=e("a",{id:"Reactant.MLIR.IR.Type-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.Type-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Type")],-1)),t[124]||(t[124]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[125]||(t[125]=l('Type(attr)
Returns the type stored in the given type attribute.
',3))]),e("details",_,[e("summary",null,[t[126]||(t[126]=e("a",{id:"Reactant.MLIR.IR.Type-Tuple{Type{<:Integer}}",href:"#Reactant.MLIR.IR.Type-Tuple{Type{<:Integer}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Type")],-1)),t[127]||(t[127]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[128]||(t[128]=l('Type(T::Core.Type{<:Integer}; context=context()
Creates a signless integer type of the given bitwidth in the context. The type is owned by the context.
',3))]),e("details",tt,[e("summary",null,[t[129]||(t[129]=e("a",{id:"Reactant.MLIR.IR.Type-Tuple{Type{<:Signed}}",href:"#Reactant.MLIR.IR.Type-Tuple{Type{<:Signed}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Type")],-1)),t[130]||(t[130]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[131]||(t[131]=l('Type(T::Core.Type{<:Signed}; context=context()
Creates a signed integer type of the given bitwidth in the context. The type is owned by the context.
',3))]),e("details",et,[e("summary",null,[t[132]||(t[132]=e("a",{id:"Reactant.MLIR.IR.Type-Tuple{Type{<:Unsigned}}",href:"#Reactant.MLIR.IR.Type-Tuple{Type{<:Unsigned}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Type")],-1)),t[133]||(t[133]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[134]||(t[134]=l('Type(T::Core.Type{<:Unsigned}; context=context()
Creates an unsigned integer type of the given bitwidth in the context. The type is owned by the context.
',3))]),e("details",st,[e("summary",null,[t[135]||(t[135]=e("a",{id:"Reactant.MLIR.IR.Type-Tuple{Type{Bool}}",href:"#Reactant.MLIR.IR.Type-Tuple{Type{Bool}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Type")],-1)),t[136]||(t[136]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[137]||(t[137]=l('Type(T::Core.Type{Bool}; context=context()
Creates a 1-bit signless integer type in the context. The type is owned by the context.
',3))]),e("details",at,[e("summary",null,[t[138]||(t[138]=e("a",{id:"Reactant.MLIR.IR.Type-Tuple{Type{Float16}}",href:"#Reactant.MLIR.IR.Type-Tuple{Type{Float16}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Type")],-1)),t[139]||(t[139]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[140]||(t[140]=l('Type(::Core.Type{Float16}; context=context())
Creates an f16 type in the given context. The type is owned by the context.
',3))]),e("details",it,[e("summary",null,[t[141]||(t[141]=e("a",{id:"Reactant.MLIR.IR.Type-Tuple{Type{Float32}}",href:"#Reactant.MLIR.IR.Type-Tuple{Type{Float32}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Type")],-1)),t[142]||(t[142]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[143]||(t[143]=l('Type(Core.Type{Float32}; context=context())
Creates an f32 type in the given context. The type is owned by the context.
',3))]),e("details",lt,[e("summary",null,[t[144]||(t[144]=e("a",{id:"Reactant.MLIR.IR.Type-Tuple{Type{Float64}}",href:"#Reactant.MLIR.IR.Type-Tuple{Type{Float64}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Type")],-1)),t[145]||(t[145]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[146]||(t[146]=l('Type(Core.Type{Float64}; context=context())
Creates a f64 type in the given context. The type is owned by the context.
',3))]),e("details",nt,[e("summary",null,[t[147]||(t[147]=e("a",{id:"Reactant.MLIR.IR.Type-Tuple{Type{Nothing}}",href:"#Reactant.MLIR.IR.Type-Tuple{Type{Nothing}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Type")],-1)),t[148]||(t[148]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[149]||(t[149]=l('Type(::Core.Type{Nothing}; context=context())
Creates a None type in the given context. The type is owned by the context.
',3))]),e("details",pt,[e("summary",null,[t[150]||(t[150]=e("a",{id:"Reactant.MLIR.IR.Type-Tuple{Vector{Reactant.MLIR.IR.Type}}",href:"#Reactant.MLIR.IR.Type-Tuple{Vector{Reactant.MLIR.IR.Type}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Type")],-1)),t[151]||(t[151]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[152]||(t[152]=l(`Type(elements; context=context())
+Type(::Core.Type{<:Tuple{T...}}; context=context())
Creates a tuple type that consists of the given list of elemental types. The type is owned by the context.
`,3))]),e("details",rt,[e("summary",null,[t[153]||(t[153]=e("a",{id:"Reactant.MLIR.IR.Type-Union{Tuple{Type{Complex{T}}}, Tuple{T}} where T",href:"#Reactant.MLIR.IR.Type-Union{Tuple{Type{Complex{T}}}, Tuple{T}} where T"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Type")],-1)),t[154]||(t[154]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[155]||(t[155]=l('Type(Complex{T}) where {T}
Creates a complex type with the given element type in the same context as the element type. The type is owned by the context.
',3))]),e("details",ot,[e("summary",null,[t[156]||(t[156]=e("a",{id:"Base.:*-Tuple{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineExpr}",href:"#Base.:*-Tuple{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Base.:*")],-1)),t[157]||(t[157]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[158]||(t[158]=l('*(lhs, rhs)
Creates an affine mul expression with 'lhs' and 'rhs'.
',3))]),e("details",dt,[e("summary",null,[t[159]||(t[159]=e("a",{id:"Base.:+-Tuple{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineExpr}",href:"#Base.:+-Tuple{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Base.:+")],-1)),t[160]||(t[160]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[161]||(t[161]=l('+(lhs, rhs)
Creates an affine add expression with 'lhs' and 'rhs'.
',3))]),e("details",ct,[e("summary",null,[t[162]||(t[162]=e("a",{id:"Base.:==-Tuple{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineExpr}",href:"#Base.:==-Tuple{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Base.:==")],-1)),t[163]||(t[163]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[164]||(t[164]=l('==(a, b)
Returns true
if the two affine expressions are equal.
==(a, b)
Checks if two affine maps are equal.
',3))]),e("details",ut,[e("summary",null,[t[168]||(t[168]=e("a",{id:"Base.:==-Tuple{Reactant.MLIR.IR.Attribute, Reactant.MLIR.IR.Attribute}",href:"#Base.:==-Tuple{Reactant.MLIR.IR.Attribute, Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Base.:==")],-1)),t[169]||(t[169]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[170]||(t[170]=l('==(a1, a2)
Checks if two attributes are equal.
',3))]),e("details",bt,[e("summary",null,[t[171]||(t[171]=e("a",{id:"Base.:==-Tuple{Reactant.MLIR.IR.Block, Reactant.MLIR.IR.Block}",href:"#Base.:==-Tuple{Reactant.MLIR.IR.Block, Reactant.MLIR.IR.Block}"},[e("span",{class:"jlbinding"},"Base.:==")],-1)),t[172]||(t[172]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[173]||(t[173]=l('==(block, other)
Checks whether two blocks handles point to the same block. This does not perform deep comparison.
',3))]),e("details",gt,[e("summary",null,[t[174]||(t[174]=e("a",{id:"Base.:==-Tuple{Reactant.MLIR.IR.Identifier, Reactant.MLIR.IR.Identifier}",href:"#Base.:==-Tuple{Reactant.MLIR.IR.Identifier, Reactant.MLIR.IR.Identifier}"},[e("span",{class:"jlbinding"},"Base.:==")],-1)),t[175]||(t[175]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[176]||(t[176]=l('==(ident, other)
Checks whether two identifiers are the same.
',3))]),e("details",yt,[e("summary",null,[t[177]||(t[177]=e("a",{id:"Base.:==-Tuple{Reactant.MLIR.IR.IntegerSet, Reactant.MLIR.IR.IntegerSet}",href:"#Base.:==-Tuple{Reactant.MLIR.IR.IntegerSet, Reactant.MLIR.IR.IntegerSet}"},[e("span",{class:"jlbinding"},"Base.:==")],-1)),t[178]||(t[178]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[179]||(t[179]=l('==(s1, s2)
Checks if two integer set objects are equal. This is a "shallow" comparison of two objects. Only the sets with some small number of constraints are uniqued and compare equal here. Set objects that represent the same integer set with different constraints may be considered non-equal by this check. Set difference followed by an (expensive) emptiness check should be used to check equivalence of the underlying integer sets.
',3))]),e("details",mt,[e("summary",null,[t[180]||(t[180]=e("a",{id:"Base.:==-Tuple{Reactant.MLIR.IR.Region, Reactant.MLIR.IR.Region}",href:"#Base.:==-Tuple{Reactant.MLIR.IR.Region, Reactant.MLIR.IR.Region}"},[e("span",{class:"jlbinding"},"Base.:==")],-1)),t[181]||(t[181]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[182]||(t[182]=l('==(region, other)
Checks whether two region handles point to the same region. This does not perform deep comparison.
',3))]),e("details",kt,[e("summary",null,[t[183]||(t[183]=e("a",{id:"Base.:==-Tuple{Reactant.MLIR.IR.Type, Reactant.MLIR.IR.Type}",href:"#Base.:==-Tuple{Reactant.MLIR.IR.Type, Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Base.:==")],-1)),t[184]||(t[184]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[185]||(t[185]=l('==(t1, t2)
Checks if two types are equal.
',3))]),e("details",ft,[e("summary",null,[t[186]||(t[186]=e("a",{id:"Base.:==-Tuple{Reactant.MLIR.IR.TypeID, Reactant.MLIR.IR.TypeID}",href:"#Base.:==-Tuple{Reactant.MLIR.IR.TypeID, Reactant.MLIR.IR.TypeID}"},[e("span",{class:"jlbinding"},"Base.:==")],-1)),t[187]||(t[187]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[188]||(t[188]=l('==(typeID1, typeID2)
Checks if two type ids are equal.
',3))]),e("details",Rt,[e("summary",null,[t[189]||(t[189]=e("a",{id:"Base.:==-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}",href:"#Base.:==-Tuple{Reactant.MLIR.IR.Value, Reactant.MLIR.IR.Value}"},[e("span",{class:"jlbinding"},"Base.:==")],-1)),t[190]||(t[190]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[191]||(t[191]=l('==(value1, value2)
Returns 1 if two values are equal, 0 otherwise.
',3))]),e("details",It,[e("summary",null,[t[192]||(t[192]=e("a",{id:"Base.cld-Tuple{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineExpr}",href:"#Base.cld-Tuple{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Base.cld")],-1)),t[193]||(t[193]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[194]||(t[194]=l('cld(lhs, rhs)
Creates an affine ceildiv expression with 'lhs' and 'rhs'.
',3))]),e("details",jt,[e("summary",null,[t[195]||(t[195]=e("a",{id:"Base.copy-Tuple{Reactant.MLIR.IR.Operation}",href:"#Base.copy-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Base.copy")],-1)),t[196]||(t[196]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[197]||(t[197]=l('copy(op)
Creates a deep copy of an operation. The operation is not inserted and ownership is transferred to the caller.
',3))]),e("details",Mt,[e("summary",null,[t[198]||(t[198]=e("a",{id:"Base.div-Tuple{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineExpr}",href:"#Base.div-Tuple{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Base.div")],-1)),t[199]||(t[199]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[200]||(t[200]=l(`div(lhs, rhs)
+÷(lhs, rhs)
+fld(lhs, rhs)
Creates an affine floordiv expression with 'lhs' and 'rhs'.
`,3))]),e("details",At,[e("summary",null,[t[201]||(t[201]=e("a",{id:"Base.fill-Tuple{Reactant.MLIR.IR.Attribute, Reactant.MLIR.IR.Type}",href:"#Base.fill-Tuple{Reactant.MLIR.IR.Attribute, Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Base.fill")],-1)),t[202]||(t[202]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[203]||(t[203]=l('fill(attr, shapedType)
Creates a dense elements attribute with the given Shaped type containing a single replicated element (splat).
',3))]),e("details",Lt,[e("summary",null,[t[204]||(t[204]=e("a",{id:"Base.gcd-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Base.gcd-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Base.gcd")],-1)),t[205]||(t[205]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[206]||(t[206]=l('gcd(affineExpr)
Returns the greatest known integral divisor of this affine expression. The result is always positive.
',3))]),e("details",Et,[e("summary",null,[t[207]||(t[207]=e("a",{id:"Base.hash-Tuple{Reactant.MLIR.IR.TypeID}",href:"#Base.hash-Tuple{Reactant.MLIR.IR.TypeID}"},[e("span",{class:"jlbinding"},"Base.hash")],-1)),t[208]||(t[208]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[209]||(t[209]=l('hash(typeID)
Returns the hash value of the type id.
',3))]),e("details",vt,[e("summary",null,[t[210]||(t[210]=e("a",{id:"Base.insert!-Tuple{Reactant.MLIR.IR.Block, Any, Reactant.MLIR.IR.Operation}",href:"#Base.insert!-Tuple{Reactant.MLIR.IR.Block, Any, Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Base.insert!")],-1)),t[211]||(t[211]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[212]||(t[212]=l('insert!(block, index, operation)
Takes an operation owned by the caller and inserts it as index
to the block. This is an expensive operation that scans the block linearly, prefer insertBefore/After instead.
insert!(region, index, block)
Takes a block owned by the caller and inserts it at index
to the given region. This is an expensive operation that linearly scans the region, prefer insertAfter/Before instead.
isempty(affineMap)
Checks whether the given affine map is an empty affine map.
',3))]),e("details",xt,[e("summary",null,[t[219]||(t[219]=e("a",{id:"Base.isperm-Tuple{Reactant.MLIR.IR.AffineMap}",href:"#Base.isperm-Tuple{Reactant.MLIR.IR.AffineMap}"},[e("span",{class:"jlbinding"},"Base.isperm")],-1)),t[220]||(t[220]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[221]||(t[221]=l('isperm(affineMap)
Checks whether the given affine map represents a symbol-less permutation map.
',3))]),e("details",Ft,[e("summary",null,[t[222]||(t[222]=e("a",{id:"Base.mod-Tuple{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineExpr}",href:"#Base.mod-Tuple{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Base.mod")],-1)),t[223]||(t[223]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[224]||(t[224]=l('mod(lhs, rhs)
Creates an affine mod expression with 'lhs' and 'rhs'.
',3))]),e("details",Pt,[e("summary",null,[t[225]||(t[225]=e("a",{id:"Base.ndims-Tuple{Reactant.MLIR.IR.AffineMap}",href:"#Base.ndims-Tuple{Reactant.MLIR.IR.AffineMap}"},[e("span",{class:"jlbinding"},"Base.ndims")],-1)),t[226]||(t[226]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[227]||(t[227]=l('ndims(affineMap)
Returns the number of dimensions of the given affine map.
',3))]),e("details",Dt,[e("summary",null,[t[228]||(t[228]=e("a",{id:"Base.ndims-Tuple{Reactant.MLIR.IR.IntegerSet}",href:"#Base.ndims-Tuple{Reactant.MLIR.IR.IntegerSet}"},[e("span",{class:"jlbinding"},"Base.ndims")],-1)),t[229]||(t[229]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[230]||(t[230]=l('ndims(set)
Returns the number of dimensions in the given set.
',3))]),e("details",Ot,[e("summary",null,[t[231]||(t[231]=e("a",{id:"Base.ndims-Tuple{Reactant.MLIR.IR.Type}",href:"#Base.ndims-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Base.ndims")],-1)),t[232]||(t[232]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[233]||(t[233]=l('ndims(type)
Returns the rank of the given ranked shaped type.
',3))]),e("details",Bt,[e("summary",null,[t[234]||(t[234]=e("a",{id:"Base.parse-Tuple{Reactant.MLIR.IR.OpPassManager, String}",href:"#Base.parse-Tuple{Reactant.MLIR.IR.OpPassManager, String}"},[e("span",{class:"jlbinding"},"Base.parse")],-1)),t[235]||(t[235]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[236]||(t[236]=l('parse(passManager, pipeline)
Parse a textual MLIR pass pipeline and add it to the provided OpPassManager
.
parse(::Core.Type{Attribute}, str; context=context())
Parses an attribute. The attribute is owned by the context.
',3))]),e("details",zt,[e("summary",null,[t[240]||(t[240]=e("a",{id:"Base.parse-Tuple{Type{Reactant.MLIR.IR.Module}, Any}",href:"#Base.parse-Tuple{Type{Reactant.MLIR.IR.Module}, Any}"},[e("span",{class:"jlbinding"},"Base.parse")],-1)),t[241]||(t[241]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[242]||(t[242]=l('parse(::Type{Module}, module; context=context())
Parses a module from the string and transfers ownership to the caller.
',3))]),e("details",wt,[e("summary",null,[t[243]||(t[243]=e("a",{id:"Base.parse-Tuple{Type{Reactant.MLIR.IR.Type}, Any}",href:"#Base.parse-Tuple{Type{Reactant.MLIR.IR.Type}, Any}"},[e("span",{class:"jlbinding"},"Base.parse")],-1)),t[244]||(t[244]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[245]||(t[245]=l('parse(type; context=context())
Parses a type. The type is owned by the context.
',3))]),e("details",St,[e("summary",null,[t[246]||(t[246]=e("a",{id:"Base.push!-Tuple{Reactant.MLIR.IR.Block, Reactant.MLIR.IR.Operation}",href:"#Base.push!-Tuple{Reactant.MLIR.IR.Block, Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Base.push!")],-1)),t[247]||(t[247]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[248]||(t[248]=l('push!(block, operation)
Takes an operation owned by the caller and appends it to the block.
',3))]),e("details",Nt,[e("summary",null,[t[249]||(t[249]=e("a",{id:"Base.push!-Tuple{Reactant.MLIR.IR.Region, Reactant.MLIR.IR.Block}",href:"#Base.push!-Tuple{Reactant.MLIR.IR.Region, Reactant.MLIR.IR.Block}"},[e("span",{class:"jlbinding"},"Base.push!")],-1)),t[250]||(t[250]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[251]||(t[251]=l('push!(region, block)
Takes a block owned by the caller and appends it to the given region.
',3))]),e("details",Vt,[e("summary",null,[t[252]||(t[252]=e("a",{id:"Base.push!-Tuple{Reactant.MLIR.IR.SymbolTable, Reactant.MLIR.IR.Operation}",href:"#Base.push!-Tuple{Reactant.MLIR.IR.SymbolTable, Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Base.push!")],-1)),t[253]||(t[253]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[254]||(t[254]=l('push!(symboltable, operation)
Inserts the given operation into the given symbol table. The operation must have the symbol trait. If the symbol table already has a symbol with the same name, renames the symbol being inserted to ensure name uniqueness. Note that this does not move the operation itself into the block of the symbol table operation, this should be done separately. Returns the name of the symbol after insertion.
',3))]),e("details",qt,[e("summary",null,[t[255]||(t[255]=e("a",{id:"Base.replace-Tuple{Reactant.MLIR.IR.AffineMap, Pair{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineExpr}, Any, Any}",href:"#Base.replace-Tuple{Reactant.MLIR.IR.AffineMap, Pair{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineExpr}, Any, Any}"},[e("span",{class:"jlbinding"},"Base.replace")],-1)),t[256]||(t[256]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[257]||(t[257]=l('mlirAffineMapReplace(affineMap, expression => replacement, numResultDims, numResultSyms)
Apply AffineExpr::replace(map)
to each of the results and return a new new AffineMap with the new results and the specified number of dims and symbols.
mlirIntegerSetReplaceGet(set, dimReplacements, symbolReplacements, numResultDims, numResultSymbols)
Gets or creates a new integer set in which the values and dimensions of the given set are replaced with the given affine expressions. dimReplacements
and symbolReplacements
are expected to point to at least as many consecutive expressions as the given set has dimensions and symbols, respectively. The new set will have numResultDims
and numResultSymbols
dimensions and symbols, respectively.
Base.reshape(attr, shapedType)
Creates a dense elements attribute that has the same data as the given dense elements attribute and a different shaped type. The new type must have the same total number of elements.
',3))]),e("details",Wt,[e("summary",null,[t[264]||(t[264]=e("a",{id:"Base.size-Tuple{Reactant.MLIR.IR.Type, Int64}",href:"#Base.size-Tuple{Reactant.MLIR.IR.Type, Int64}"},[e("span",{class:"jlbinding"},"Base.size")],-1)),t[265]||(t[265]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[266]||(t[266]=l('size(type, i)
Returns the i
-th dimension of the given ranked shaped type.
write(fileName, jit)
Dump as an object in fileName
.
AffineDimensionExpr(position; context=context)
Creates an affine dimension expression with 'position' in the context.
',3))]),e("details",Jt,[e("summary",null,[t[273]||(t[273]=e("a",{id:"Reactant.MLIR.IR.BFloat16Type-Tuple{}",href:"#Reactant.MLIR.IR.BFloat16Type-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.BFloat16Type")],-1)),t[274]||(t[274]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[275]||(t[275]=e("p",null,"BFloat16Type(; context=context())",-1)),t[276]||(t[276]=e("p",null,"Creates a bf16 type in the given context. The type is owned by the context.",-1)),t[277]||(t[277]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/IR/Type.jl#L157-L161",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",Kt,[e("summary",null,[t[278]||(t[278]=e("a",{id:"Reactant.MLIR.IR.ConstantAffineMap-Tuple{Any}",href:"#Reactant.MLIR.IR.ConstantAffineMap-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.ConstantAffineMap")],-1)),t[279]||(t[279]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[280]||(t[280]=l('ConstantAffineMap(val; context=context())
Creates a single constant result affine map in the context. The affine map is owned by the context.
',3))]),e("details",$t,[e("summary",null,[t[281]||(t[281]=e("a",{id:"Reactant.MLIR.IR.ConstantExpr-Tuple{Any}",href:"#Reactant.MLIR.IR.ConstantExpr-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.ConstantExpr")],-1)),t[282]||(t[282]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[283]||(t[283]=l('ConstantExpr(constant::Int; context=context())
Creates an affine constant expression with 'constant' in the context.
',3))]),e("details",Xt,[e("summary",null,[t[284]||(t[284]=e("a",{id:"Reactant.MLIR.IR.DenseElementsAttribute-Tuple{AbstractArray{Bool}}",href:"#Reactant.MLIR.IR.DenseElementsAttribute-Tuple{AbstractArray{Bool}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.DenseElementsAttribute")],-1)),t[285]||(t[285]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[286]||(t[286]=l('DenseElementsAttribute(array::AbstractArray)
Creates a dense elements attribute with the given shaped type from elements of a specific type. Expects the element type of the shaped type to match the data element type.
',3))]),e("details",Yt,[e("summary",null,[t[287]||(t[287]=e("a",{id:"Reactant.MLIR.IR.DenseElementsAttribute-Tuple{AbstractArray{String}}",href:"#Reactant.MLIR.IR.DenseElementsAttribute-Tuple{AbstractArray{String}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.DenseElementsAttribute")],-1)),t[288]||(t[288]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[289]||(t[289]=l('DenseElementsAttribute(array::AbstractArray{String})
Creates a dense elements attribute with the given shaped type from string elements.
',3))]),e("details",_t,[e("summary",null,[t[290]||(t[290]=e("a",{id:"Reactant.MLIR.IR.DenseElementsAttribute-Tuple{Reactant.MLIR.IR.Type, AbstractArray}",href:"#Reactant.MLIR.IR.DenseElementsAttribute-Tuple{Reactant.MLIR.IR.Type, AbstractArray}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.DenseElementsAttribute")],-1)),t[291]||(t[291]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[292]||(t[292]=l('DenseElementsAttribute(shapedType, elements)
Creates a dense elements attribute with the given Shaped type and elements in the same context as the type.
',3))]),e("details",te,[e("summary",null,[t[293]||(t[293]=e("a",{id:"Reactant.MLIR.IR.FlatSymbolRefAttribute-Tuple{String}",href:"#Reactant.MLIR.IR.FlatSymbolRefAttribute-Tuple{String}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.FlatSymbolRefAttribute")],-1)),t[294]||(t[294]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[295]||(t[295]=l('FlatSymbolRefAttribute(ctx, symbol)
Creates a flat symbol reference attribute in the given context referencing a symbol identified by the given string.
',3))]),e("details",ee,[e("summary",null,[t[296]||(t[296]=e("a",{id:"Reactant.MLIR.IR.Float8E4M3FN-Tuple{}",href:"#Reactant.MLIR.IR.Float8E4M3FN-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Float8E4M3FN")],-1)),t[297]||(t[297]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[298]||(t[298]=l('Float8E4M3FN(; context=context())
Creates an f8E4M3FN type in the given context. The type is owned by the context.
',3))]),e("details",se,[e("summary",null,[t[299]||(t[299]=e("a",{id:"Reactant.MLIR.IR.Float8E5M2-Tuple{}",href:"#Reactant.MLIR.IR.Float8E5M2-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.Float8E5M2")],-1)),t[300]||(t[300]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[301]||(t[301]=l('Float8E5M2(; context=context())
Creates an f8E5M2 type in the given context. The type is owned by the context.
',3))]),e("details",ae,[e("summary",null,[t[302]||(t[302]=e("a",{id:"Reactant.MLIR.IR.FunctionType-Tuple{Any, Any}",href:"#Reactant.MLIR.IR.FunctionType-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.FunctionType")],-1)),t[303]||(t[303]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[304]||(t[304]=l('FunctionType(inputs, results; context=context())
Creates a function type, mapping a list of input types to result types.
',3))]),e("details",ie,[e("summary",null,[t[305]||(t[305]=e("a",{id:"Reactant.MLIR.IR.IdentityAffineMap-Tuple{Any}",href:"#Reactant.MLIR.IR.IdentityAffineMap-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.IdentityAffineMap")],-1)),t[306]||(t[306]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[307]||(t[307]=l('IdentityAffineMap(ndims; context=context())
Creates an affine map with 'ndims' identity in the context. The affine map is owned by the context.
',3))]),e("details",le,[e("summary",null,[t[308]||(t[308]=e("a",{id:"Reactant.MLIR.IR.IndexType-Tuple{}",href:"#Reactant.MLIR.IR.IndexType-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.IndexType")],-1)),t[309]||(t[309]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[310]||(t[310]=l('IndexType(; context=context())
Creates an index type in the given context. The type is owned by the context.
',3))]),e("details",ne,[e("summary",null,[t[311]||(t[311]=e("a",{id:"Reactant.MLIR.IR.MemRefType-Tuple{Reactant.MLIR.IR.Type, Any, Any, Any}",href:"#Reactant.MLIR.IR.MemRefType-Tuple{Reactant.MLIR.IR.Type, Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.MemRefType")],-1)),t[312]||(t[312]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[313]||(t[313]=l('MemRefType(elementType, rank, shape, layout, memorySpace; location=Location(), check=false)
Creates a MemRef type with the given rank and shape, a potentially empty list of affine layout maps, the given memory space and element type, in the same context as element type. The type is owned by the context. If check=true
, emits appropriate diagnostics on illegal arguments.
MemRefType(elementType, rank, shape, memorySpace; location=Location(), check=false)
Creates a MemRef type with the given rank, shape, memory space and element type in the same context as the element type. The type has no affine maps, i.e. represents a default row-major contiguous memref. The type is owned by the context. If check=true
, emits appropriate diagnostics on illegal arguments.
MemRefType(elementType, memorySpace)
Creates an Unranked MemRef type with the given element type and in the given memory space. The type is owned by the context of element type. If check=true
, emits appropriate diagnostics on illegal arguments.
MinorIdentityAffineMap(ndims, nresults; context=context())
Creates an identity affine map on the most minor dimensions in the context. The affine map is owned by the context. The function asserts that the number of dimensions is greater or equal to the number of results.
',3))]),e("details",de,[e("summary",null,[t[323]||(t[323]=e("a",{id:"Reactant.MLIR.IR.OpaqueAttribute-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.IR.OpaqueAttribute-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.OpaqueAttribute")],-1)),t[324]||(t[324]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[325]||(t[325]=l('OpaqueAttribute(dialectNamespace, dataLength, data, type; context=context())
Creates an opaque attribute in the given context associated with the dialect identified by its namespace. The attribute contains opaque byte data of the specified length (data need not be null-terminated).
',3))]),e("details",ce,[e("summary",null,[t[326]||(t[326]=e("a",{id:"Reactant.MLIR.IR.OpaqueType-Tuple{Any, Any}",href:"#Reactant.MLIR.IR.OpaqueType-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.OpaqueType")],-1)),t[327]||(t[327]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[328]||(t[328]=l('OpaqueType(dialectNamespace, typeData; context=context())
Creates an opaque type in the given context associated with the dialect identified by its namespace. The type contains opaque byte data of the specified length (data need not be null-terminated).
',3))]),e("details",he,[e("summary",null,[t[329]||(t[329]=e("a",{id:"Reactant.MLIR.IR.PermutationAffineMap-Tuple{Any}",href:"#Reactant.MLIR.IR.PermutationAffineMap-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.PermutationAffineMap")],-1)),t[330]||(t[330]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[331]||(t[331]=l('PermutationAffineMap(permutation; context=context())
Creates an affine map with a permutation expression and its size in the context. The permutation expression is a non-empty vector of integers. The elements of the permutation vector must be continuous from 0 and cannot be repeated (i.e. [1,2,0]
is a valid permutation. [2,0]
or [1,1,2]
is an invalid invalid permutation). The affine map is owned by the context.
SymbolExpr(position; context=context())
Creates an affine symbol expression with 'position' in the context.
',3))]),e("details",be,[e("summary",null,[t[335]||(t[335]=e("a",{id:"Reactant.MLIR.IR.SymbolRefAttribute-Tuple{String, Vector{Reactant.MLIR.IR.Attribute}}",href:"#Reactant.MLIR.IR.SymbolRefAttribute-Tuple{String, Vector{Reactant.MLIR.IR.Attribute}}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.SymbolRefAttribute")],-1)),t[336]||(t[336]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[337]||(t[337]=l('SymbolRefAttribute(symbol, references; context=context())
Creates a symbol reference attribute in the given context referencing a symbol identified by the given string inside a list of nested references. Each of the references in the list must not be nested.
',3))]),e("details",ge,[e("summary",null,[t[338]||(t[338]=e("a",{id:"Reactant.MLIR.IR.TensorType",href:"#Reactant.MLIR.IR.TensorType"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.TensorType")],-1)),t[339]||(t[339]=s()),i(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),t[340]||(t[340]=l('TensorType(shape, elementType, encoding=Attribute(); location=Location(), check=false)
Creates a tensor type of a fixed rank with the given shape, element type, and optional encoding in the same context as the element type. The type is owned by the context. Tensor types without any specific encoding field should assign mlirAttributeGetNull
to this parameter. If check=true
, emits appropriate diagnostics on illegal arguments.
TensorType(elementType)
Creates an unranked tensor type with the given element type in the same context as the element type. The type is owned by the context. If check=true
, emits appropriate diagnostics on illegal arguments.
UnitAttribute(; context=context())
Creates a unit attribute in the given context.
',3))]),e("details",ke,[e("summary",null,[t[347]||(t[347]=e("a",{id:"Reactant.MLIR.IR.VectorType-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.IR.VectorType-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.VectorType")],-1)),t[348]||(t[348]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[349]||(t[349]=l('VectorType(rank, shape, elementType; location=Location(), check=false)
Creates a vector type of the shape identified by its rank and dimensions, with the given element type in the same context as the element type. The type is owned by the context. If check=true
, emits appropriate diagnostics on illegal arguments.
add_owned_pass!(opPassManager, pass)
Add a pass and transfer ownership to the provided OpPassManager
. If the pass is not a generic operation pass or matching the type of the provided OpPassManager
, a new OpPassManager
is implicitly nested under the provided OpPassManager
.
add_owned_pass!(passManager, pass)
Add a pass and transfer ownership to the provided top-level PassManager
. If the pass is not a generic operation pass or a ModulePass
, a new OpPassManager
is implicitly nested under the provided PassManager.
add_pipeline!(passManager, pipelineElements, callback, userData)
Parse a sequence of textual MLIR pass pipeline elements and add them to the provided OpPassManager. If parsing fails an error message is reported using the provided callback.
',3))]),e("details",je,[e("summary",null,[t[359]||(t[359]=e("a",{id:"Reactant.MLIR.IR.affinemap-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.affinemap-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.affinemap")],-1)),t[360]||(t[360]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[361]||(t[361]=l('affinemap(type)
Returns the affine map of the given MemRef type.
',3))]),e("details",Me,[e("summary",null,[t[362]||(t[362]=e("a",{id:"Reactant.MLIR.IR.argument-Tuple{Reactant.MLIR.IR.Block, Any}",href:"#Reactant.MLIR.IR.argument-Tuple{Reactant.MLIR.IR.Block, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.argument")],-1)),t[363]||(t[363]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[364]||(t[364]=l('argument(block, i)
Returns i
-th argument of the block.
attr!(op, name, attr)
Sets an attribute by name, replacing the existing if it exists or adding a new one otherwise.
',3))]),e("details",Le,[e("summary",null,[t[368]||(t[368]=e("a",{id:"Reactant.MLIR.IR.attr-Tuple{Reactant.MLIR.IR.Operation, AbstractString}",href:"#Reactant.MLIR.IR.attr-Tuple{Reactant.MLIR.IR.Operation, AbstractString}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.attr")],-1)),t[369]||(t[369]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[370]||(t[370]=l('attr(op, name)
Returns an attribute attached to the operation given its name.
',3))]),e("details",Ee,[e("summary",null,[t[371]||(t[371]=e("a",{id:"Reactant.MLIR.IR.attr-Tuple{Reactant.MLIR.IR.Operation, Any}",href:"#Reactant.MLIR.IR.attr-Tuple{Reactant.MLIR.IR.Operation, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.attr")],-1)),t[372]||(t[372]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[373]||(t[373]=l('attr(op, i)
Return i
-th attribute of the operation.
bitwidth(type)
Returns the bitwidth of an integer type.
',3))]),e("details",Te,[e("summary",null,[t[377]||(t[377]=e("a",{id:"Reactant.MLIR.IR.block-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.block-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.block")],-1)),t[378]||(t[378]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[379]||(t[379]=l('block(op)
Gets the block that owns this operation, returning null if the operation is not owned.
',3))]),e("details",Ce,[e("summary",null,[t[380]||(t[380]=e("a",{id:"Reactant.MLIR.IR.block_arg_num-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.IR.block_arg_num-Tuple{Reactant.MLIR.IR.Value}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.block_arg_num")],-1)),t[381]||(t[381]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[382]||(t[382]=l('block_arg_num(value)
Returns the position of the value in the argument list of its block.
',3))]),e("details",xe,[e("summary",null,[t[383]||(t[383]=e("a",{id:"Reactant.MLIR.IR.block_owner-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.IR.block_owner-Tuple{Reactant.MLIR.IR.Value}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.block_owner")],-1)),t[384]||(t[384]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[385]||(t[385]=l('block_owner(value)
Returns the block in which this value is defined as an argument. Asserts if the value is not a block argument.
',3))]),e("details",Fe,[e("summary",null,[t[386]||(t[386]=e("a",{id:"Reactant.MLIR.IR.body-Tuple{Any}",href:"#Reactant.MLIR.IR.body-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.body")],-1)),t[387]||(t[387]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[388]||(t[388]=l('body(module)
Gets the body of the module, i.e. the only block it contains.
',3))]),e("details",Pe,[e("summary",null,[t[389]||(t[389]=e("a",{id:"Reactant.MLIR.IR.compose-Tuple{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineMap}",href:"#Reactant.MLIR.IR.compose-Tuple{Reactant.MLIR.IR.AffineExpr, Reactant.MLIR.IR.AffineMap}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.compose")],-1)),t[390]||(t[390]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[391]||(t[391]=l('compose(affineExpr, affineMap)
Composes the given map with the given expression.
',3))]),e("details",De,[e("summary",null,[t[392]||(t[392]=e("a",{id:"Reactant.MLIR.IR.constraint-Tuple{Reactant.MLIR.IR.IntegerSet, Any}",href:"#Reactant.MLIR.IR.constraint-Tuple{Reactant.MLIR.IR.IntegerSet, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.constraint")],-1)),t[393]||(t[393]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[394]||(t[394]=l('mlirIntegerSetGetConstraint(set, i)
Returns i
-th constraint of the set.
context(affineExpr)
Gets the context that owns the affine expression.
',3))]),e("details",Be,[e("summary",null,[t[398]||(t[398]=e("a",{id:"Reactant.MLIR.IR.context-Tuple{Reactant.MLIR.IR.AffineMap}",href:"#Reactant.MLIR.IR.context-Tuple{Reactant.MLIR.IR.AffineMap}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.context")],-1)),t[399]||(t[399]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[400]||(t[400]=l('context(affineMap)
Gets the context that the given affine map was created with.
',3))]),e("details",Ge,[e("summary",null,[t[401]||(t[401]=e("a",{id:"Reactant.MLIR.IR.context-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.context-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.context")],-1)),t[402]||(t[402]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[403]||(t[403]=l('context(attribute)
Gets the context that an attribute was created with.
',3))]),e("details",ze,[e("summary",null,[t[404]||(t[404]=e("a",{id:"Reactant.MLIR.IR.context-Tuple{Reactant.MLIR.IR.Identifier}",href:"#Reactant.MLIR.IR.context-Tuple{Reactant.MLIR.IR.Identifier}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.context")],-1)),t[405]||(t[405]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[406]||(t[406]=l('context(ident)
Returns the context associated with this identifier
',3))]),e("details",we,[e("summary",null,[t[407]||(t[407]=e("a",{id:"Reactant.MLIR.IR.context-Tuple{Reactant.MLIR.IR.IntegerSet}",href:"#Reactant.MLIR.IR.context-Tuple{Reactant.MLIR.IR.IntegerSet}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.context")],-1)),t[408]||(t[408]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[409]||(t[409]=l('context(set)
Gets the context in which the given integer set lives.
',3))]),e("details",Se,[e("summary",null,[t[410]||(t[410]=e("a",{id:"Reactant.MLIR.IR.context-Tuple{Reactant.MLIR.IR.Module}",href:"#Reactant.MLIR.IR.context-Tuple{Reactant.MLIR.IR.Module}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.context")],-1)),t[411]||(t[411]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[412]||(t[412]=l('context(module)
Gets the context that a module was created with.
',3))]),e("details",Ne,[e("summary",null,[t[413]||(t[413]=e("a",{id:"Reactant.MLIR.IR.context-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.context-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.context")],-1)),t[414]||(t[414]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[415]||(t[415]=l('context(op)
Gets the context this operation is associated with.
',3))]),e("details",Ve,[e("summary",null,[t[416]||(t[416]=e("a",{id:"Reactant.MLIR.IR.context-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.context-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.context")],-1)),t[417]||(t[417]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[418]||(t[418]=l('context(type)
Gets the context that a type was created with.
',3))]),e("details",qe,[e("summary",null,[t[419]||(t[419]=e("a",{id:"Reactant.MLIR.IR.data-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.data-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.data")],-1)),t[420]||(t[420]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[421]||(t[421]=l('data(attr)
Returns the raw data as a string reference. The data remains live as long as the context in which the attribute lives.
',3))]),e("details",Ue,[e("summary",null,[t[422]||(t[422]=e("a",{id:"Reactant.MLIR.IR.data-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.data-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.data")],-1)),t[423]||(t[423]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[424]||(t[424]=l('mlirOpaqueTypeGetData(type)
Returns the raw data as a string reference. The data remains live as long as the context in which the type lives.
',3))]),e("details",Qe,[e("summary",null,[t[425]||(t[425]=e("a",{id:"Reactant.MLIR.IR.delete!-Tuple{Reactant.MLIR.IR.SymbolTable, Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.delete!-Tuple{Reactant.MLIR.IR.SymbolTable, Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.delete!")],-1)),t[426]||(t[426]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[427]||(t[427]=l('delete!(symboltable, operation)
Removes the given operation from the symbol table and erases it.
',3))]),e("details",We,[e("summary",null,[t[428]||(t[428]=e("a",{id:"Reactant.MLIR.IR.dynsize-Tuple{}",href:"#Reactant.MLIR.IR.dynsize-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.dynsize")],-1)),t[429]||(t[429]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[430]||(t[430]=l('dynsize()
Returns the value indicating a dynamic size in a shaped type. Prefer isdynsize
to direct comparisons with this value.
mlirShapedTypeGetDynamicStrideOrOffset()
Returns the value indicating a dynamic stride or offset in a shaped type. Prefer isdynstrideoroffset
to direct comparisons with this value.
enable_ir_printing!(passManager)
Enable mlir-print-ir-after-all.
',3))]),e("details",Je,[e("summary",null,[t[437]||(t[437]=e("a",{id:"Reactant.MLIR.IR.enable_verifier!",href:"#Reactant.MLIR.IR.enable_verifier!"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.enable_verifier!")],-1)),t[438]||(t[438]=s()),i(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),t[439]||(t[439]=l('enable_verifier!(passManager, enable)
Enable / disable verify-each.
',3))]),e("details",Ke,[e("summary",null,[t[440]||(t[440]=e("a",{id:"Reactant.MLIR.IR.encoding-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.encoding-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.encoding")],-1)),t[441]||(t[441]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[442]||(t[442]=l('encoding(type)
Gets the 'encoding' attribute from the ranked tensor type, returning a nothing
if none.
failure()
Creates a logical result representing a failure.
',3))]),e("details",Xe,[e("summary",null,[t[446]||(t[446]=e("a",{id:"Reactant.MLIR.IR.first_block-Tuple{Reactant.MLIR.IR.Region}",href:"#Reactant.MLIR.IR.first_block-Tuple{Reactant.MLIR.IR.Region}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.first_block")],-1)),t[447]||(t[447]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[448]||(t[448]=l('first_block(region)
Gets the first block in the region.
',3))]),e("details",Ye,[e("summary",null,[t[449]||(t[449]=e("a",{id:"Reactant.MLIR.IR.first_op-Tuple{Reactant.MLIR.IR.Block}",href:"#Reactant.MLIR.IR.first_op-Tuple{Reactant.MLIR.IR.Block}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.first_op")],-1)),t[450]||(t[450]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[451]||(t[451]=l('first_op(block)
Returns the first operation in the block or nothing
if empty.
first_use(value)
Returns an OpOperand
representing the first use of the value, or a nothing
if there are no uses.
flatsymbol(attr)
Returns the referenced symbol as a string reference. The data remains live as long as the context in which the attribute lives.
',3))]),e("details",es,[e("summary",null,[t[458]||(t[458]=e("a",{id:"Reactant.MLIR.IR.hasrank-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.hasrank-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.hasrank")],-1)),t[459]||(t[459]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[460]||(t[460]=l('hasrank(type)
Checks whether the given shaped type is ranked.
',3))]),e("details",ss,[e("summary",null,[t[461]||(t[461]=e("a",{id:"Reactant.MLIR.IR.hasstaticshape-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.hasstaticshape-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.hasstaticshape")],-1)),t[462]||(t[462]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[463]||(t[463]=l('hasstaticshape(type)
Checks whether the given shaped type has a static shape.
',3))]),e("details",as,[e("summary",null,[t[464]||(t[464]=e("a",{id:"Reactant.MLIR.IR.input-Tuple{Reactant.MLIR.IR.Type, Any}",href:"#Reactant.MLIR.IR.input-Tuple{Reactant.MLIR.IR.Type, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.input")],-1)),t[465]||(t[465]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[466]||(t[466]=l('input(type, i)
Returns the i
-th input type.
insert_after!(block, reference, operation)
Takes an operation owned by the caller and inserts it after the (non-owned) reference operation in the given block. If the reference is null, prepends the operation. Otherwise, the reference must belong to the block.
',3))]),e("details",ls,[e("summary",null,[t[470]||(t[470]=e("a",{id:"Reactant.MLIR.IR.insert_after!-Tuple{Reactant.MLIR.IR.Region, Reactant.MLIR.IR.Block, Reactant.MLIR.IR.Block}",href:"#Reactant.MLIR.IR.insert_after!-Tuple{Reactant.MLIR.IR.Region, Reactant.MLIR.IR.Block, Reactant.MLIR.IR.Block}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.insert_after!")],-1)),t[471]||(t[471]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[472]||(t[472]=l('insert_after!(region, reference, block)
Takes a block owned by the caller and inserts it after the (non-owned) reference block in the given region. The reference block must belong to the region. If the reference block is null, prepends the block to the region.
',3))]),e("details",ns,[e("summary",null,[t[473]||(t[473]=e("a",{id:"Reactant.MLIR.IR.insert_before!-Tuple{Reactant.MLIR.IR.Block, Reactant.MLIR.IR.Operation, Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.insert_before!-Tuple{Reactant.MLIR.IR.Block, Reactant.MLIR.IR.Operation, Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.insert_before!")],-1)),t[474]||(t[474]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[475]||(t[475]=l('insert_before!(block, reference, operation)
Takes an operation owned by the caller and inserts it before the (non-owned) reference operation in the given block. If the reference is null, appends the operation. Otherwise, the reference must belong to the block.
',3))]),e("details",ps,[e("summary",null,[t[476]||(t[476]=e("a",{id:"Reactant.MLIR.IR.insert_before!-Tuple{Reactant.MLIR.IR.Region, Reactant.MLIR.IR.Block, Reactant.MLIR.IR.Block}",href:"#Reactant.MLIR.IR.insert_before!-Tuple{Reactant.MLIR.IR.Region, Reactant.MLIR.IR.Block, Reactant.MLIR.IR.Block}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.insert_before!")],-1)),t[477]||(t[477]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[478]||(t[478]=l('insert_before!(region, reference, block)
Takes a block owned by the caller and inserts it before the (non-owned) reference block in the given region. The reference block must belong to the region. If the reference block is null, appends the block to the region.
',3))]),e("details",rs,[e("summary",null,[t[479]||(t[479]=e("a",{id:"Reactant.MLIR.IR.is_block_arg-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.IR.is_block_arg-Tuple{Reactant.MLIR.IR.Value}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.is_block_arg")],-1)),t[480]||(t[480]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[481]||(t[481]=l('is_block_arg(value)
Returns 1 if the value is a block argument, 0 otherwise.
',3))]),e("details",os,[e("summary",null,[t[482]||(t[482]=e("a",{id:"Reactant.MLIR.IR.is_op_res-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.IR.is_op_res-Tuple{Reactant.MLIR.IR.Value}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.is_op_res")],-1)),t[483]||(t[483]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[484]||(t[484]=l('is_op_res(value)
Returns 1 if the value is an operation result, 0 otherwise.
',3))]),e("details",ds,[e("summary",null,[t[485]||(t[485]=e("a",{id:"Reactant.MLIR.IR.is_pure_affine-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Reactant.MLIR.IR.is_pure_affine-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.is_pure_affine")],-1)),t[486]||(t[486]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[487]||(t[487]=l('is_pure_affine(affineExpr)
Checks whether the given affine expression is a pure affine expression, i.e. mul, floordiv, ceildic, and mod is only allowed w.r.t constants.
',3))]),e("details",cs,[e("summary",null,[t[488]||(t[488]=e("a",{id:"Reactant.MLIR.IR.is_registered-Tuple{Any}",href:"#Reactant.MLIR.IR.is_registered-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.is_registered")],-1)),t[489]||(t[489]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[490]||(t[490]=l('is_registered(name; context=context())
Returns whether the given fully-qualified operation (i.e. 'dialect.operation') is registered with the context. This will return true if the dialect is loaded and the operation is registered within the dialect.
',3))]),e("details",hs,[e("summary",null,[t[491]||(t[491]=e("a",{id:"Reactant.MLIR.IR.is_symbolic_or_constant-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Reactant.MLIR.IR.is_symbolic_or_constant-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.is_symbolic_or_constant")],-1)),t[492]||(t[492]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[493]||(t[493]=l('is_symbolic_or_constant(affineExpr)
Checks whether the given affine expression is made out of only symbols and constants.
',3))]),e("details",us,[e("summary",null,[t[494]||(t[494]=e("a",{id:"Reactant.MLIR.IR.isadd-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Reactant.MLIR.IR.isadd-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isadd")],-1)),t[495]||(t[495]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[496]||(t[496]=l('isadd(affineExpr)
Checks whether the given affine expression is an add expression.
',3))]),e("details",bs,[e("summary",null,[t[497]||(t[497]=e("a",{id:"Reactant.MLIR.IR.isaffinemap-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.isaffinemap-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isaffinemap")],-1)),t[498]||(t[498]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[499]||(t[499]=l('isaffinemap(attr)
Checks whether the given attribute is an affine map attribute.
',3))]),e("details",gs,[e("summary",null,[t[500]||(t[500]=e("a",{id:"Reactant.MLIR.IR.isarray-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.isarray-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isarray")],-1)),t[501]||(t[501]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[502]||(t[502]=l('isarray(attr)
Checks whether the given attribute is an array attribute.
',3))]),e("details",ys,[e("summary",null,[t[503]||(t[503]=e("a",{id:"Reactant.MLIR.IR.isbf16-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isbf16-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isbf16")],-1)),t[504]||(t[504]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[505]||(t[505]=l('isbf16(type)
Checks whether the given type is a bf16 type.
',3))]),e("details",ms,[e("summary",null,[t[506]||(t[506]=e("a",{id:"Reactant.MLIR.IR.isbinary-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Reactant.MLIR.IR.isbinary-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isbinary")],-1)),t[507]||(t[507]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[508]||(t[508]=l('isbinary(affineExpr)
Checks whether the given affine expression is binary.
',3))]),e("details",ks,[e("summary",null,[t[509]||(t[509]=e("a",{id:"Reactant.MLIR.IR.isbool-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.isbool-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isbool")],-1)),t[510]||(t[510]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[511]||(t[511]=l('isbool(attr)
Checks whether the given attribute is a bool attribute.
',3))]),e("details",fs,[e("summary",null,[t[512]||(t[512]=e("a",{id:"Reactant.MLIR.IR.isceildiv-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Reactant.MLIR.IR.isceildiv-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isceildiv")],-1)),t[513]||(t[513]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[514]||(t[514]=l('isceildiv(affineExpr)
Checks whether the given affine expression is an ceildiv expression.
',3))]),e("details",Rs,[e("summary",null,[t[515]||(t[515]=e("a",{id:"Reactant.MLIR.IR.iscomplex-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.iscomplex-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.iscomplex")],-1)),t[516]||(t[516]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[517]||(t[517]=l('iscomplex(type)
Checks whether the given type is a Complex type.
',3))]),e("details",Is,[e("summary",null,[t[518]||(t[518]=e("a",{id:"Reactant.MLIR.IR.isconstantexpr-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Reactant.MLIR.IR.isconstantexpr-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isconstantexpr")],-1)),t[519]||(t[519]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[520]||(t[520]=l('isconstantexpr(affineExpr)
Checks whether the given affine expression is a constant expression.
',3))]),e("details",js,[e("summary",null,[t[521]||(t[521]=e("a",{id:"Reactant.MLIR.IR.isconstrainteq-Tuple{Reactant.MLIR.IR.IntegerSet, Any}",href:"#Reactant.MLIR.IR.isconstrainteq-Tuple{Reactant.MLIR.IR.IntegerSet, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isconstrainteq")],-1)),t[522]||(t[522]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[523]||(t[523]=l('mlirIntegerSetIsConstraintEq(set, i)
Returns true
of the i
-th constraint of the set is an equality constraint, false
otherwise.
isdenseelements(attr)
Checks whether the given attribute is a dense elements attribute.
',3))]),e("details",As,[e("summary",null,[t[527]||(t[527]=e("a",{id:"Reactant.MLIR.IR.isdict-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.isdict-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isdict")],-1)),t[528]||(t[528]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[529]||(t[529]=l('isdict(attr)
Checks whether the given attribute is a dictionary attribute.
',3))]),e("details",Ls,[e("summary",null,[t[530]||(t[530]=e("a",{id:"Reactant.MLIR.IR.isdimexpr-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Reactant.MLIR.IR.isdimexpr-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isdimexpr")],-1)),t[531]||(t[531]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[532]||(t[532]=l('isdimexpr(affineExpr)
Checks whether the given affine expression is a dimension expression.
',3))]),e("details",Es,[e("summary",null,[t[533]||(t[533]=e("a",{id:"Reactant.MLIR.IR.isdyndim-Tuple{Reactant.MLIR.IR.Type, Int64}",href:"#Reactant.MLIR.IR.isdyndim-Tuple{Reactant.MLIR.IR.Type, Int64}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isdyndim")],-1)),t[534]||(t[534]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[535]||(t[535]=l('isdyndim(type, i)
Checks wither the i
-th dimension of the given shaped type is dynamic.
isdynsize(size)
Checks whether the given value is used as a placeholder for dynamic sizes in shaped types.
',3))]),e("details",Ts,[e("summary",null,[t[539]||(t[539]=e("a",{id:"Reactant.MLIR.IR.isdynstrideoroffset-Tuple{Any}",href:"#Reactant.MLIR.IR.isdynstrideoroffset-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isdynstrideoroffset")],-1)),t[540]||(t[540]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[541]||(t[541]=l('mlirShapedTypeIsDynamicStrideOrOffset(val)
Checks whether the given value is used as a placeholder for dynamic strides and offsets in shaped types.
',3))]),e("details",Cs,[e("summary",null,[t[542]||(t[542]=e("a",{id:"Reactant.MLIR.IR.iselements-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.iselements-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.iselements")],-1)),t[543]||(t[543]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[544]||(t[544]=l('iselements(attr)
Checks whether the given attribute is an elements attribute.
',3))]),e("details",xs,[e("summary",null,[t[545]||(t[545]=e("a",{id:"Reactant.MLIR.IR.isempty-Tuple{Reactant.MLIR.IR.IntegerSet}",href:"#Reactant.MLIR.IR.isempty-Tuple{Reactant.MLIR.IR.IntegerSet}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isempty")],-1)),t[546]||(t[546]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[547]||(t[547]=l('isempty(set)
Checks whether the given set is a canonical empty set, e.g., the set returned by mlirIntegerSetEmptyGet
.
isf16(type)
Checks whether the given type is an f16 type.
',3))]),e("details",Ps,[e("summary",null,[t[551]||(t[551]=e("a",{id:"Reactant.MLIR.IR.isf32-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isf32-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isf32")],-1)),t[552]||(t[552]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[553]||(t[553]=l('isf32(type)
Checks whether the given type is an f32 type.
',3))]),e("details",Ds,[e("summary",null,[t[554]||(t[554]=e("a",{id:"Reactant.MLIR.IR.isf64-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isf64-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isf64")],-1)),t[555]||(t[555]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[556]||(t[556]=l('isf64(type)
Checks whether the given type is an f64 type.
',3))]),e("details",Os,[e("summary",null,[t[557]||(t[557]=e("a",{id:"Reactant.MLIR.IR.isf8e4m3fn-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isf8e4m3fn-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isf8e4m3fn")],-1)),t[558]||(t[558]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[559]||(t[559]=l('isf8e4m3fn(type)
Checks whether the given type is an f8E4M3FN type.
',3))]),e("details",Bs,[e("summary",null,[t[560]||(t[560]=e("a",{id:"Reactant.MLIR.IR.isf8e5m2-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isf8e5m2-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isf8e5m2")],-1)),t[561]||(t[561]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[562]||(t[562]=l('isf8e5m2(type)
Checks whether the given type is an f8E5M2 type.
',3))]),e("details",Gs,[e("summary",null,[t[563]||(t[563]=e("a",{id:"Reactant.MLIR.IR.isfailure-Tuple{Reactant.MLIR.IR.LogicalResult}",href:"#Reactant.MLIR.IR.isfailure-Tuple{Reactant.MLIR.IR.LogicalResult}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isfailure")],-1)),t[564]||(t[564]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[565]||(t[565]=l('isfailure(res)
Checks if the given logical result represents a failure.
',3))]),e("details",zs,[e("summary",null,[t[566]||(t[566]=e("a",{id:"Reactant.MLIR.IR.isflatsymbolref-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.isflatsymbolref-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isflatsymbolref")],-1)),t[567]||(t[567]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[568]||(t[568]=l('isflatsymbolref(attr)
Checks whether the given attribute is a flat symbol reference attribute.
',3))]),e("details",ws,[e("summary",null,[t[569]||(t[569]=e("a",{id:"Reactant.MLIR.IR.isfloat-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.isfloat-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isfloat")],-1)),t[570]||(t[570]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[571]||(t[571]=l('isfloat(attr)
Checks whether the given attribute is a floating point attribute.
',3))]),e("details",Ss,[e("summary",null,[t[572]||(t[572]=e("a",{id:"Reactant.MLIR.IR.isfloordiv-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Reactant.MLIR.IR.isfloordiv-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isfloordiv")],-1)),t[573]||(t[573]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[574]||(t[574]=l('isfloordiv(affineExpr)
Checks whether the given affine expression is an floordiv expression.
',3))]),e("details",Ns,[e("summary",null,[t[575]||(t[575]=e("a",{id:"Reactant.MLIR.IR.isfunction-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isfunction-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isfunction")],-1)),t[576]||(t[576]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[577]||(t[577]=l('isfunction(type)
Checks whether the given type is a function type.
',3))]),e("details",Vs,[e("summary",null,[t[578]||(t[578]=e("a",{id:"Reactant.MLIR.IR.isfunctionofdimexpr-Tuple{Reactant.MLIR.IR.AffineExpr, Any}",href:"#Reactant.MLIR.IR.isfunctionofdimexpr-Tuple{Reactant.MLIR.IR.AffineExpr, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isfunctionofdimexpr")],-1)),t[579]||(t[579]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[580]||(t[580]=l('isfunctionofdimexpr(affineExpr, position)
Checks whether the given affine expression involves AffineDimExpr 'position'.
',3))]),e("details",qs,[e("summary",null,[t[581]||(t[581]=e("a",{id:"Reactant.MLIR.IR.isidentity-Tuple{Reactant.MLIR.IR.AffineMap}",href:"#Reactant.MLIR.IR.isidentity-Tuple{Reactant.MLIR.IR.AffineMap}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isidentity")],-1)),t[582]||(t[582]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[583]||(t[583]=l('isidentity(affineMap)
Checks whether the given affine map is an identity affine map. The function asserts that the number of dimensions is greater or equal to the number of results.
',3))]),e("details",Us,[e("summary",null,[t[584]||(t[584]=e("a",{id:"Reactant.MLIR.IR.isindex-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isindex-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isindex")],-1)),t[585]||(t[585]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[586]||(t[586]=l('isindex(type)
Checks whether the given type is an index type.
',3))]),e("details",Qs,[e("summary",null,[t[587]||(t[587]=e("a",{id:"Reactant.MLIR.IR.isinteger-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.isinteger-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isinteger")],-1)),t[588]||(t[588]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[589]||(t[589]=l('isinteger(attr)
Checks whether the given attribute is an integer attribute.
',3))]),e("details",Ws,[e("summary",null,[t[590]||(t[590]=e("a",{id:"Reactant.MLIR.IR.isinteger-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isinteger-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isinteger")],-1)),t[591]||(t[591]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[592]||(t[592]=l('isinteger(type)
Checks whether the given type is an integer type.
',3))]),e("details",Hs,[e("summary",null,[t[593]||(t[593]=e("a",{id:"Reactant.MLIR.IR.isintegerset-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.isintegerset-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isintegerset")],-1)),t[594]||(t[594]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[595]||(t[595]=l('isintegerset(attr)
Checks whether the given attribute is an integer set attribute.
',3))]),e("details",Zs,[e("summary",null,[t[596]||(t[596]=e("a",{id:"Reactant.MLIR.IR.ismemref-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.ismemref-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.ismemref")],-1)),t[597]||(t[597]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[598]||(t[598]=l('ismemref(type)
Checks whether the given type is a MemRef type.
',3))]),e("details",Js,[e("summary",null,[t[599]||(t[599]=e("a",{id:"Reactant.MLIR.IR.isminoridentity-Tuple{Reactant.MLIR.IR.AffineMap}",href:"#Reactant.MLIR.IR.isminoridentity-Tuple{Reactant.MLIR.IR.AffineMap}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isminoridentity")],-1)),t[600]||(t[600]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[601]||(t[601]=l('isminoridentity(affineMap)
Checks whether the given affine map is a minor identity affine map.
',3))]),e("details",Ks,[e("summary",null,[t[602]||(t[602]=e("a",{id:"Reactant.MLIR.IR.ismod-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Reactant.MLIR.IR.ismod-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.ismod")],-1)),t[603]||(t[603]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[604]||(t[604]=l('ismod(affineExpr)
Checks whether the given affine expression is an mod expression.
',3))]),e("details",$s,[e("summary",null,[t[605]||(t[605]=e("a",{id:"Reactant.MLIR.IR.ismul-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Reactant.MLIR.IR.ismul-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.ismul")],-1)),t[606]||(t[606]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[607]||(t[607]=l('ismul(affineExpr)
Checks whether the given affine expression is an mul expression.
',3))]),e("details",Xs,[e("summary",null,[t[608]||(t[608]=e("a",{id:"Reactant.MLIR.IR.ismultipleof-Tuple{Reactant.MLIR.IR.AffineExpr, Any}",href:"#Reactant.MLIR.IR.ismultipleof-Tuple{Reactant.MLIR.IR.AffineExpr, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.ismultipleof")],-1)),t[609]||(t[609]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[610]||(t[610]=l('ismultipleof(affineExpr, factor)
Checks whether the given affine expression is a multiple of 'factor'.
',3))]),e("details",Ys,[e("summary",null,[t[611]||(t[611]=e("a",{id:"Reactant.MLIR.IR.isnone-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isnone-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isnone")],-1)),t[612]||(t[612]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[613]||(t[613]=l('mlirTypeIsANone(type)
Checks whether the given type is a None type.
',3))]),e("details",_s,[e("summary",null,[t[614]||(t[614]=e("a",{id:"Reactant.MLIR.IR.isopaque-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.isopaque-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isopaque")],-1)),t[615]||(t[615]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[616]||(t[616]=l('isopaque(attr)
Checks whether the given attribute is an opaque attribute.
',3))]),e("details",ta,[e("summary",null,[t[617]||(t[617]=e("a",{id:"Reactant.MLIR.IR.isopaque-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isopaque-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isopaque")],-1)),t[618]||(t[618]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[619]||(t[619]=l('isopaque(type)
Checks whether the given type is an opaque type.
',3))]),e("details",ea,[e("summary",null,[t[620]||(t[620]=e("a",{id:"Reactant.MLIR.IR.isprojperm-Tuple{Reactant.MLIR.IR.AffineMap}",href:"#Reactant.MLIR.IR.isprojperm-Tuple{Reactant.MLIR.IR.AffineMap}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isprojperm")],-1)),t[621]||(t[621]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[622]||(t[622]=l('isprojperm(affineMap)
Checks whether the given affine map represents a subset of a symbol-less permutation map.
',3))]),e("details",sa,[e("summary",null,[t[623]||(t[623]=e("a",{id:"Reactant.MLIR.IR.isrankedtensor-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isrankedtensor-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isrankedtensor")],-1)),t[624]||(t[624]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[625]||(t[625]=l('isrankedtensor(type)
Checks whether the given type is a ranked tensor type.
',3))]),e("details",aa,[e("summary",null,[t[626]||(t[626]=e("a",{id:"Reactant.MLIR.IR.isshaped-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isshaped-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isshaped")],-1)),t[627]||(t[627]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[628]||(t[628]=l('isshaped(type)
Checks whether the given type is a Shaped type.
',3))]),e("details",ia,[e("summary",null,[t[629]||(t[629]=e("a",{id:"Reactant.MLIR.IR.issigned-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.issigned-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.issigned")],-1)),t[630]||(t[630]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[631]||(t[631]=l('issigned(type)
Checks whether the given integer type is signed.
',3))]),e("details",la,[e("summary",null,[t[632]||(t[632]=e("a",{id:"Reactant.MLIR.IR.issignless-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.issignless-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.issignless")],-1)),t[633]||(t[633]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[634]||(t[634]=l('issignless(type)
Checks whether the given integer type is signless.
',3))]),e("details",na,[e("summary",null,[t[635]||(t[635]=e("a",{id:"Reactant.MLIR.IR.issingleconstant-Tuple{Reactant.MLIR.IR.AffineMap}",href:"#Reactant.MLIR.IR.issingleconstant-Tuple{Reactant.MLIR.IR.AffineMap}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.issingleconstant")],-1)),t[636]||(t[636]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[637]||(t[637]=l('issingleconstant(affineMap)
Checks whether the given affine map is a single result constant affine map.
',3))]),e("details",pa,[e("summary",null,[t[638]||(t[638]=e("a",{id:"Reactant.MLIR.IR.issparseelements-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.issparseelements-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.issparseelements")],-1)),t[639]||(t[639]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[640]||(t[640]=l('issparseelements(attr)
Checks whether the given attribute is a sparse elements attribute.
',3))]),e("details",ra,[e("summary",null,[t[641]||(t[641]=e("a",{id:"Reactant.MLIR.IR.issplat-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.issplat-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.issplat")],-1)),t[642]||(t[642]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[643]||(t[643]=l('issplat(attr)
Checks whether the given dense elements attribute contains a single replicated value (splat).
',3))]),e("details",oa,[e("summary",null,[t[644]||(t[644]=e("a",{id:"Reactant.MLIR.IR.isstring-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.isstring-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isstring")],-1)),t[645]||(t[645]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[646]||(t[646]=l('isstring(attr)
Checks whether the given attribute is a string attribute.
',3))]),e("details",da,[e("summary",null,[t[647]||(t[647]=e("a",{id:"Reactant.MLIR.IR.issuccess-Tuple{Reactant.MLIR.IR.LogicalResult}",href:"#Reactant.MLIR.IR.issuccess-Tuple{Reactant.MLIR.IR.LogicalResult}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.issuccess")],-1)),t[648]||(t[648]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[649]||(t[649]=l('issuccess(res)
Checks if the given logical result represents a success.
',3))]),e("details",ca,[e("summary",null,[t[650]||(t[650]=e("a",{id:"Reactant.MLIR.IR.issymbolexpr-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Reactant.MLIR.IR.issymbolexpr-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.issymbolexpr")],-1)),t[651]||(t[651]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[652]||(t[652]=l('issymbolexpr(affineExpr)
Checks whether the given affine expression is a symbol expression.
',3))]),e("details",ha,[e("summary",null,[t[653]||(t[653]=e("a",{id:"Reactant.MLIR.IR.issymbolref-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.issymbolref-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.issymbolref")],-1)),t[654]||(t[654]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[655]||(t[655]=l('issymbolref(attr)
Checks whether the given attribute is a symbol reference attribute.
',3))]),e("details",ua,[e("summary",null,[t[656]||(t[656]=e("a",{id:"Reactant.MLIR.IR.istensor-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.istensor-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.istensor")],-1)),t[657]||(t[657]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[658]||(t[658]=l('istensor(type)
Checks whether the given type is a Tensor type.
',3))]),e("details",ba,[e("summary",null,[t[659]||(t[659]=e("a",{id:"Reactant.MLIR.IR.istuple-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.istuple-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.istuple")],-1)),t[660]||(t[660]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[661]||(t[661]=l('istuple(type)
Checks whether the given type is a tuple type.
',3))]),e("details",ga,[e("summary",null,[t[662]||(t[662]=e("a",{id:"Reactant.MLIR.IR.istype-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.istype-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.istype")],-1)),t[663]||(t[663]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[664]||(t[664]=l('istype(attr)
Checks whether the given attribute is a type attribute.
',3))]),e("details",ya,[e("summary",null,[t[665]||(t[665]=e("a",{id:"Reactant.MLIR.IR.isunit-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.isunit-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isunit")],-1)),t[666]||(t[666]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[667]||(t[667]=l('isunit(attr)
Checks whether the given attribute is a unit attribute.
',3))]),e("details",ma,[e("summary",null,[t[668]||(t[668]=e("a",{id:"Reactant.MLIR.IR.isunrankedmemref-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isunrankedmemref-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isunrankedmemref")],-1)),t[669]||(t[669]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[670]||(t[670]=l('mlirTypeIsAUnrankedMemRef(type)
Checks whether the given type is an UnrankedMemRef type.
',3))]),e("details",ka,[e("summary",null,[t[671]||(t[671]=e("a",{id:"Reactant.MLIR.IR.isunrankedtensor-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isunrankedtensor-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isunrankedtensor")],-1)),t[672]||(t[672]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[673]||(t[673]=l('isunrankedtensor(type)
Checks whether the given type is an unranked tensor type.
',3))]),e("details",fa,[e("summary",null,[t[674]||(t[674]=e("a",{id:"Reactant.MLIR.IR.isunsigned-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isunsigned-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isunsigned")],-1)),t[675]||(t[675]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[676]||(t[676]=l('isunsigned(type)
Checks whether the given integer type is unsigned.
',3))]),e("details",Ra,[e("summary",null,[t[677]||(t[677]=e("a",{id:"Reactant.MLIR.IR.isvector-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.isvector-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.isvector")],-1)),t[678]||(t[678]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[679]||(t[679]=l('isvector(type)
Checks whether the given type is a Vector type.
',3))]),e("details",Ia,[e("summary",null,[t[680]||(t[680]=e("a",{id:"Reactant.MLIR.IR.layout-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.layout-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.layout")],-1)),t[681]||(t[681]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[682]||(t[682]=l('layout(type)
Returns the layout of the given MemRef type.
',3))]),e("details",ja,[e("summary",null,[t[683]||(t[683]=e("a",{id:"Reactant.MLIR.IR.leafref-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.leafref-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.leafref")],-1)),t[684]||(t[684]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[685]||(t[685]=l('leafref(attr)
Returns the string reference to the leaf referenced symbol. The data remains live as long as the context in which the attribute lives.
',3))]),e("details",Ma,[e("summary",null,[t[686]||(t[686]=e("a",{id:"Reactant.MLIR.IR.lhs-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Reactant.MLIR.IR.lhs-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.lhs")],-1)),t[687]||(t[687]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[688]||(t[688]=l('lhs(affineExpr)
Returns the left hand side affine expression of the given affine binary operation expression.
',3))]),e("details",Aa,[e("summary",null,[t[689]||(t[689]=e("a",{id:"Reactant.MLIR.IR.location-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.location-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.location")],-1)),t[690]||(t[690]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[691]||(t[691]=l('location(op)
Gets the location of the operation.
',3))]),e("details",La,[e("summary",null,[t[692]||(t[692]=e("a",{id:"Reactant.MLIR.IR.lookup-Tuple{Reactant.MLIR.IR.ExecutionEngine, String}",href:"#Reactant.MLIR.IR.lookup-Tuple{Reactant.MLIR.IR.ExecutionEngine, String}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.lookup")],-1)),t[693]||(t[693]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[694]||(t[694]=l('lookup(jit, name)
Lookup a native function in the execution engine by name, returns nullptr if the name can't be looked-up.
',3))]),e("details",Ea,[e("summary",null,[t[695]||(t[695]=e("a",{id:"Reactant.MLIR.IR.lookup-Tuple{Reactant.MLIR.IR.SymbolTable, AbstractString}",href:"#Reactant.MLIR.IR.lookup-Tuple{Reactant.MLIR.IR.SymbolTable, AbstractString}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.lookup")],-1)),t[696]||(t[696]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[697]||(t[697]=l('lookup(symboltable, name)
Looks up a symbol with the given name in the given symbol table and returns the operation that corresponds to the symbol. If the symbol cannot be found, returns a null operation.
',3))]),e("details",va,[e("summary",null,[t[698]||(t[698]=e("a",{id:"Reactant.MLIR.IR.majorsubmap-Tuple{Reactant.MLIR.IR.AffineMap, Any}",href:"#Reactant.MLIR.IR.majorsubmap-Tuple{Reactant.MLIR.IR.AffineMap, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.majorsubmap")],-1)),t[699]||(t[699]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[700]||(t[700]=l('majorsubmap(affineMap, nresults)
Returns the affine map consisting of the most major nresults
results. Returns the null AffineMap if the nresults
is equal to zero. Returns the affineMap
if nresults
is greater or equals to number of results of the given affine map.
mlirMemRefTypeGetMemorySpace(type)
Returns the memory space of the given MemRef type.
',3))]),e("details",Ca,[e("summary",null,[t[704]||(t[704]=e("a",{id:"Reactant.MLIR.IR.minorsubmap-Tuple{Reactant.MLIR.IR.AffineMap, Any}",href:"#Reactant.MLIR.IR.minorsubmap-Tuple{Reactant.MLIR.IR.AffineMap, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.minorsubmap")],-1)),t[705]||(t[705]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[706]||(t[706]=l('minorsubmap(affineMap, nresults)
Returns the affine map consisting of the most minor nresults
results. Returns the null AffineMap if the nresults
is equal to zero. Returns the affineMap
if nresults
is greater or equals to number of results of the given affine map.
move_after!(op, other)
Moves the given operation immediately after the other operation in its parent block. The given operation may be owned by the caller or by its current block. The other operation must belong to a block. In any case, the ownership is transferred to the block of the other operation.
',3))]),e("details",Fa,[e("summary",null,[t[710]||(t[710]=e("a",{id:"Reactant.MLIR.IR.move_before!-Tuple{Reactant.MLIR.IR.Operation, Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.move_before!-Tuple{Reactant.MLIR.IR.Operation, Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.move_before!")],-1)),t[711]||(t[711]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[712]||(t[712]=l('move_before!(op, other)
Moves the given operation immediately before the other operation in its parent block. The given operation may be owner by the caller or by its current block. The other operation must belong to a block. In any case, the ownership is transferred to the block of the other operation.
',3))]),e("details",Pa,[e("summary",null,[t[713]||(t[713]=e("a",{id:"Reactant.MLIR.IR.name-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.name-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.name")],-1)),t[714]||(t[714]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[715]||(t[715]=l('name(op)
Gets the name of the operation as an identifier.
',3))]),e("details",Da,[e("summary",null,[t[716]||(t[716]=e("a",{id:"Reactant.MLIR.IR.namespace-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.namespace-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.namespace")],-1)),t[717]||(t[717]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[718]||(t[718]=l('mlirOpaqueAttrGetDialectNamespace(attr)
Returns the namespace of the dialect with which the given opaque attribute is associated. The namespace string is owned by the context.
',3))]),e("details",Oa,[e("summary",null,[t[719]||(t[719]=e("a",{id:"Reactant.MLIR.IR.namespace-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.namespace-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.namespace")],-1)),t[720]||(t[720]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[721]||(t[721]=l('mlirOpaqueTypeGetDialectNamespace(type)
Returns the namespace of the dialect with which the given opaque type is associated. The namespace string is owned by the context.
',3))]),e("details",Ba,[e("summary",null,[t[722]||(t[722]=e("a",{id:"Reactant.MLIR.IR.nargs-Tuple{Reactant.MLIR.IR.Block}",href:"#Reactant.MLIR.IR.nargs-Tuple{Reactant.MLIR.IR.Block}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.nargs")],-1)),t[723]||(t[723]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[724]||(t[724]=l('nargs(block)
Returns the number of arguments of the block.
',3))]),e("details",Ga,[e("summary",null,[t[725]||(t[725]=e("a",{id:"Reactant.MLIR.IR.nattrs-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.nattrs-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.nattrs")],-1)),t[726]||(t[726]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[727]||(t[727]=l('nattrs(op)
Returns the number of attributes attached to the operation.
',3))]),e("details",za,[e("summary",null,[t[728]||(t[728]=e("a",{id:"Reactant.MLIR.IR.nconstraints-Tuple{Reactant.MLIR.IR.IntegerSet}",href:"#Reactant.MLIR.IR.nconstraints-Tuple{Reactant.MLIR.IR.IntegerSet}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.nconstraints")],-1)),t[729]||(t[729]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[730]||(t[730]=l('nconstraints(set)
Returns the number of constraints (equalities + inequalities) in the given set.
',3))]),e("details",wa,[e("summary",null,[t[731]||(t[731]=e("a",{id:"Reactant.MLIR.IR.nequalities-Tuple{Reactant.MLIR.IR.IntegerSet}",href:"#Reactant.MLIR.IR.nequalities-Tuple{Reactant.MLIR.IR.IntegerSet}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.nequalities")],-1)),t[732]||(t[732]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[733]||(t[733]=l('nequalities(set)
Returns the number of equalities in the given set.
',3))]),e("details",Sa,[e("summary",null,[t[734]||(t[734]=e("a",{id:"Reactant.MLIR.IR.next-Tuple{Reactant.MLIR.IR.Block}",href:"#Reactant.MLIR.IR.next-Tuple{Reactant.MLIR.IR.Block}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.next")],-1)),t[735]||(t[735]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[736]||(t[736]=l('next(block)
Returns the block immediately following the given block in its parent region or nothing
if last.
next(opOperand)
Returns an op operand representing the next use of the value, or nothing
if there is no next use.
ninequalities(set)
Returns the number of inequalities in the given set.
',3))]),e("details",qa,[e("summary",null,[t[743]||(t[743]=e("a",{id:"Reactant.MLIR.IR.ninputs-Tuple{Reactant.MLIR.IR.AffineMap}",href:"#Reactant.MLIR.IR.ninputs-Tuple{Reactant.MLIR.IR.AffineMap}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.ninputs")],-1)),t[744]||(t[744]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[745]||(t[745]=l('ninputs(affineMap)
Returns the number of inputs (dimensions + symbols) of the given affine map.
',3))]),e("details",Ua,[e("summary",null,[t[746]||(t[746]=e("a",{id:"Reactant.MLIR.IR.ninputs-Tuple{Reactant.MLIR.IR.IntegerSet}",href:"#Reactant.MLIR.IR.ninputs-Tuple{Reactant.MLIR.IR.IntegerSet}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.ninputs")],-1)),t[747]||(t[747]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[748]||(t[748]=l('ninputs(set)
Returns the number of inputs (dimensions + symbols) in the given set.
',3))]),e("details",Qa,[e("summary",null,[t[749]||(t[749]=e("a",{id:"Reactant.MLIR.IR.ninputs-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.ninputs-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.ninputs")],-1)),t[750]||(t[750]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[751]||(t[751]=l('ninputs(type)
Returns the number of input types.
',3))]),e("details",Wa,[e("summary",null,[t[752]||(t[752]=e("a",{id:"Reactant.MLIR.IR.nnestedrefs-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.nnestedrefs-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.nnestedrefs")],-1)),t[753]||(t[753]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[754]||(t[754]=l('nnestedrefs(attr)
Returns the number of references nested in the given symbol reference attribute.
',3))]),e("details",Ha,[e("summary",null,[t[755]||(t[755]=e("a",{id:"Reactant.MLIR.IR.noperands-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.noperands-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.noperands")],-1)),t[756]||(t[756]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[757]||(t[757]=l('noperands(op)
Returns the number of operands of the operation.
',3))]),e("details",Za,[e("summary",null,[t[758]||(t[758]=e("a",{id:"Reactant.MLIR.IR.nregions-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.nregions-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.nregions")],-1)),t[759]||(t[759]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[760]||(t[760]=l('nregions(op)
Returns the number of regions attached to the given operation.
',3))]),e("details",Ja,[e("summary",null,[t[761]||(t[761]=e("a",{id:"Reactant.MLIR.IR.nresults-Tuple{Reactant.MLIR.IR.AffineMap}",href:"#Reactant.MLIR.IR.nresults-Tuple{Reactant.MLIR.IR.AffineMap}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.nresults")],-1)),t[762]||(t[762]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[763]||(t[763]=l('nresults(affineMap)
Returns the number of results of the given affine map.
',3))]),e("details",Ka,[e("summary",null,[t[764]||(t[764]=e("a",{id:"Reactant.MLIR.IR.nresults-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.nresults-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.nresults")],-1)),t[765]||(t[765]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[766]||(t[766]=l('nresults(op)
Returns the number of results of the operation.
',3))]),e("details",$a,[e("summary",null,[t[767]||(t[767]=e("a",{id:"Reactant.MLIR.IR.nresults-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.nresults-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.nresults")],-1)),t[768]||(t[768]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[769]||(t[769]=l('nresults(type)
Returns the number of result types.
',3))]),e("details",Xa,[e("summary",null,[t[770]||(t[770]=e("a",{id:"Reactant.MLIR.IR.nsuccessors-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.nsuccessors-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.nsuccessors")],-1)),t[771]||(t[771]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[772]||(t[772]=l('nsuccessors(op)
Returns the number of successor blocks of the operation.
',3))]),e("details",Ya,[e("summary",null,[t[773]||(t[773]=e("a",{id:"Reactant.MLIR.IR.nsymbols-Tuple{Reactant.MLIR.IR.AffineMap}",href:"#Reactant.MLIR.IR.nsymbols-Tuple{Reactant.MLIR.IR.AffineMap}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.nsymbols")],-1)),t[774]||(t[774]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[775]||(t[775]=l('nsymbols(affineMap)
Returns the number of symbols of the given affine map.
',3))]),e("details",_a,[e("summary",null,[t[776]||(t[776]=e("a",{id:"Reactant.MLIR.IR.nsymbols-Tuple{Reactant.MLIR.IR.IntegerSet}",href:"#Reactant.MLIR.IR.nsymbols-Tuple{Reactant.MLIR.IR.IntegerSet}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.nsymbols")],-1)),t[777]||(t[777]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[778]||(t[778]=l('nsymbols(set)
Returns the number of symbols in the given set.
',3))]),e("details",ti,[e("summary",null,[t[779]||(t[779]=e("a",{id:"Reactant.MLIR.IR.op_owner-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.IR.op_owner-Tuple{Reactant.MLIR.IR.Value}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.op_owner")],-1)),t[780]||(t[780]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[781]||(t[781]=l('op_owner(value)
Returns an operation that produced this value as its result. Asserts if the value is not an op result.
',3))]),e("details",ei,[e("summary",null,[t[782]||(t[782]=e("a",{id:"Reactant.MLIR.IR.op_res_num-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.IR.op_res_num-Tuple{Reactant.MLIR.IR.Value}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.op_res_num")],-1)),t[783]||(t[783]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[784]||(t[784]=l('op_res_num(value)
Returns the position of the value in the list of results of the operation that produced it.
',3))]),e("details",si,[e("summary",null,[t[785]||(t[785]=e("a",{id:"Reactant.MLIR.IR.operand",href:"#Reactant.MLIR.IR.operand"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.operand")],-1)),t[786]||(t[786]=s()),i(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),t[787]||(t[787]=l('operand(op, i)
Returns i
-th operand of the operation.
operand!(op, i, value)
Sets the i
-th operand of the operation.
operandindex(opOperand)
Returns the operand number of an op operand.
',3))]),e("details",li,[e("summary",null,[t[794]||(t[794]=e("a",{id:"Reactant.MLIR.IR.owner-Tuple{Reactant.MLIR.IR.OpOperand}",href:"#Reactant.MLIR.IR.owner-Tuple{Reactant.MLIR.IR.OpOperand}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.owner")],-1)),t[795]||(t[795]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[796]||(t[796]=l('owner(opOperand)
Returns the owner operation of an op operand.
',3))]),e("details",ni,[e("summary",null,[t[797]||(t[797]=e("a",{id:"Reactant.MLIR.IR.parent_op-Tuple{Reactant.MLIR.IR.Block}",href:"#Reactant.MLIR.IR.parent_op-Tuple{Reactant.MLIR.IR.Block}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.parent_op")],-1)),t[798]||(t[798]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[799]||(t[799]=l('parent_op(block)
Returns the closest surrounding operation that contains this block.
',3))]),e("details",pi,[e("summary",null,[t[800]||(t[800]=e("a",{id:"Reactant.MLIR.IR.parent_op-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.parent_op-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.parent_op")],-1)),t[801]||(t[801]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[802]||(t[802]=l('parent_op(op)
Gets the operation that owns this operation, returning null if the operation is not owned.
',3))]),e("details",ri,[e("summary",null,[t[803]||(t[803]=e("a",{id:"Reactant.MLIR.IR.parent_region-Tuple{Reactant.MLIR.IR.Block}",href:"#Reactant.MLIR.IR.parent_region-Tuple{Reactant.MLIR.IR.Block}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.parent_region")],-1)),t[804]||(t[804]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[805]||(t[805]=l('parent_region(block)
Returns the region that contains this block.
',3))]),e("details",oi,[e("summary",null,[t[806]||(t[806]=e("a",{id:"Reactant.MLIR.IR.position-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Reactant.MLIR.IR.position-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.position")],-1)),t[807]||(t[807]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[808]||(t[808]=l('position(affineExpr)
Returns the position of the given affine dimension expression, affine symbol expression or ...
',3))]),e("details",di,[e("summary",null,[t[809]||(t[809]=e("a",{id:"Reactant.MLIR.IR.push_argument!-Tuple{Reactant.MLIR.IR.Block, Any}",href:"#Reactant.MLIR.IR.push_argument!-Tuple{Reactant.MLIR.IR.Block, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.push_argument!")],-1)),t[810]||(t[810]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[811]||(t[811]=l('push_argument!(block, type; location=Location())
Appends an argument of the specified type to the block. Returns the newly added argument.
',3))]),e("details",ci,[e("summary",null,[t[812]||(t[812]=e("a",{id:"Reactant.MLIR.IR.region-Tuple{Reactant.MLIR.IR.Operation, Any}",href:"#Reactant.MLIR.IR.region-Tuple{Reactant.MLIR.IR.Operation, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.region")],-1)),t[813]||(t[813]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[814]||(t[814]=l('region(op, i)
Returns i
-th region attached to the operation.
result(op, i)
Returns i
-th result of the operation.
result(type, i)
Returns the i
-th result type.
result(affineMap, pos)
Returns the result at the given position.
',3))]),e("details",gi,[e("summary",null,[t[824]||(t[824]=e("a",{id:"Reactant.MLIR.IR.result-Tuple{Reactant.MLIR.IR.AffineMap}",href:"#Reactant.MLIR.IR.result-Tuple{Reactant.MLIR.IR.AffineMap}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.result")],-1)),t[825]||(t[825]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[826]||(t[826]=l('result(affineMap)
Returns the constant result of the given affine map. The function asserts that the map has a single constant result.
',3))]),e("details",yi,[e("summary",null,[t[827]||(t[827]=e("a",{id:"Reactant.MLIR.IR.rhs-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Reactant.MLIR.IR.rhs-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.rhs")],-1)),t[828]||(t[828]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[829]||(t[829]=l('rhs(affineExpr)
Returns the right hand side affine expression of the given affine binary operation expression.
',3))]),e("details",mi,[e("summary",null,[t[830]||(t[830]=e("a",{id:"Reactant.MLIR.IR.rmattr!-Tuple{Reactant.MLIR.IR.Operation, Any}",href:"#Reactant.MLIR.IR.rmattr!-Tuple{Reactant.MLIR.IR.Operation, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.rmattr!")],-1)),t[831]||(t[831]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[832]||(t[832]=l('rmattr!(op, name)
Removes an attribute by name. Returns false if the attribute was not found and true if removed.
',3))]),e("details",ki,[e("summary",null,[t[833]||(t[833]=e("a",{id:"Reactant.MLIR.IR.rmfromparent!-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.rmfromparent!-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.rmfromparent!")],-1)),t[834]||(t[834]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[835]||(t[835]=l('rmfromparent!(op)
Removes the given operation from its parent block. The operation is not destroyed. The ownership of the operation is transferred to the caller.
',3))]),e("details",fi,[e("summary",null,[t[836]||(t[836]=e("a",{id:"Reactant.MLIR.IR.rootref-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.rootref-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.rootref")],-1)),t[837]||(t[837]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[838]||(t[838]=l('rootref(attr)
Returns the string reference to the root referenced symbol. The data remains live as long as the context in which the attribute lives.
',3))]),e("details",Ri,[e("summary",null,[t[839]||(t[839]=e("a",{id:"Reactant.MLIR.IR.run!-Tuple{Reactant.MLIR.IR.PassManager, Reactant.MLIR.IR.Module}",href:"#Reactant.MLIR.IR.run!-Tuple{Reactant.MLIR.IR.PassManager, Reactant.MLIR.IR.Module}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.run!")],-1)),t[840]||(t[840]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[841]||(t[841]=l('run!(passManager, module)
Run the provided passManager
on the given module
.
submap(affineMap, positions)
Returns the affine map consisting of the positions
subset.
success()
Creates a logical result representing a success.
',3))]),e("details",Mi,[e("summary",null,[t[848]||(t[848]=e("a",{id:"Reactant.MLIR.IR.successor-Tuple{Reactant.MLIR.IR.Operation, Any}",href:"#Reactant.MLIR.IR.successor-Tuple{Reactant.MLIR.IR.Operation, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.successor")],-1)),t[849]||(t[849]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[850]||(t[850]=l('successor(op, i)
Returns i
-th successor of the operation.
terminator(block)
Returns the terminator operation in the block or nothing
if no terminator.
set_type!(value, type)
Sets the type of the block argument to the given type.
',3))]),e("details",Ei,[e("summary",null,[t[857]||(t[857]=e("a",{id:"Reactant.MLIR.IR.type-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.type-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.type")],-1)),t[858]||(t[858]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[859]||(t[859]=l('type(attribute)
Gets the type of this attribute.
',3))]),e("details",vi,[e("summary",null,[t[860]||(t[860]=e("a",{id:"Reactant.MLIR.IR.type-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.IR.type-Tuple{Reactant.MLIR.IR.Value}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.type")],-1)),t[861]||(t[861]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[862]||(t[862]=l('type(value)
Returns the type of the value.
',3))]),e("details",Ti,[e("summary",null,[t[863]||(t[863]=e("a",{id:"Reactant.MLIR.IR.typeid-Tuple{Reactant.MLIR.IR.Attribute}",href:"#Reactant.MLIR.IR.typeid-Tuple{Reactant.MLIR.IR.Attribute}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.typeid")],-1)),t[864]||(t[864]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[865]||(t[865]=l('typeid(attribute)
Gets the type id of the attribute.
',3))]),e("details",Ci,[e("summary",null,[t[866]||(t[866]=e("a",{id:"Reactant.MLIR.IR.typeid-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.typeid-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.typeid")],-1)),t[867]||(t[867]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[868]||(t[868]=l('typeid(op)
Gets the type id of the operation. Returns null if the operation does not have a registered operation description.
',3))]),e("details",xi,[e("summary",null,[t[869]||(t[869]=e("a",{id:"Reactant.MLIR.IR.typeid-Tuple{Reactant.MLIR.IR.Type}",href:"#Reactant.MLIR.IR.typeid-Tuple{Reactant.MLIR.IR.Type}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.typeid")],-1)),t[870]||(t[870]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[871]||(t[871]=l('typeid(type)
Gets the type ID of the type.
',3))]),e("details",Fi,[e("summary",null,[t[872]||(t[872]=e("a",{id:"Reactant.MLIR.IR.value-Tuple{Reactant.MLIR.IR.AffineExpr}",href:"#Reactant.MLIR.IR.value-Tuple{Reactant.MLIR.IR.AffineExpr}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.value")],-1)),t[873]||(t[873]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[874]||(t[874]=l('value(affineExpr)
Returns the value of the given affine constant expression.
',3))]),e("details",Pi,[e("summary",null,[t[875]||(t[875]=e("a",{id:"Reactant.MLIR.IR.verify-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.verify-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.verify")],-1)),t[876]||(t[876]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[877]||(t[877]=l('verify(op)
Verify the operation and return true if it passes, false if it fails.
',3))]),e("details",Di,[e("summary",null,[t[878]||(t[878]=e("a",{id:"Reactant.MLIR.IR.verifyall-Tuple{Reactant.MLIR.IR.Operation}",href:"#Reactant.MLIR.IR.verifyall-Tuple{Reactant.MLIR.IR.Operation}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.verifyall")],-1)),t[879]||(t[879]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[880]||(t[880]=l('verifyall(operation; debug=false)
Prints the operations which could not be verified.
',3))]),e("details",Oi,[e("summary",null,[t[881]||(t[881]=e("a",{id:"Reactant.MLIR.IR.@affinemap-Tuple{Any}",href:"#Reactant.MLIR.IR.@affinemap-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.IR.@affinemap")],-1)),t[882]||(t[882]=s()),i(a,{type:"info",class:"jlObjectType jlMacro",text:"Macro"})]),t[883]||(t[883]=l(`@affinemap (d1, d2, d3, ...)[s1, s2, ...] -> (d0 + d1, ...)
Returns an affine map from the provided Julia expression. On the right hand side are allowed the following function calls:
The rhs can only contains dimensions and symbols present on the left hand side or integer literals.
julia> using Reactant.MLIR: IR
+
+julia> IR.context!(IR.Context()) do
+ IR.@affinemap (d1, d2)[s0] -> (d1 + s0, d2 % 10)
+ end
+MLIR.IR.AffineMap(#= (d0, d1)[s0] -> (d0 + s0, d1 mod 10) =#)
MlirDiagnostic
An opaque reference to a diagnostic, always owned by the diagnostics engine (context). Must not be stored outside of the diagnostic handler.
',3))]),e("details",ll,[e("summary",null,[t[1005]||(t[1005]=e("a",{id:"Reactant.MLIR.API.MlirDiagnosticHandler",href:"#Reactant.MLIR.API.MlirDiagnosticHandler"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.MlirDiagnosticHandler")],-1)),t[1006]||(t[1006]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[1007]||(t[1007]=e("p",null,[s("Diagnostic handler type. Accepts a reference to a diagnostic, which is only guaranteed to be live during the call. The handler is passed the "),e("code",null,"userData"),s(" that was provided when the handler was attached to a context. If the handler processed the diagnostic completely, it is expected to return success. Otherwise, it is expected to return failure to indicate that other handlers should attempt to process the diagnostic.")],-1)),t[1008]||(t[1008]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L6718-L6720",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",nl,[e("summary",null,[t[1009]||(t[1009]=e("a",{id:"Reactant.MLIR.API.MlirDiagnosticHandlerID",href:"#Reactant.MLIR.API.MlirDiagnosticHandlerID"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.MlirDiagnosticHandlerID")],-1)),t[1010]||(t[1010]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[1011]||(t[1011]=e("p",null,"Opaque identifier of a diagnostic handler, useful to detach a handler.",-1)),t[1012]||(t[1012]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L6712-L6714",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",pl,[e("summary",null,[t[1013]||(t[1013]=e("a",{id:"Reactant.MLIR.API.MlirDiagnosticSeverity",href:"#Reactant.MLIR.API.MlirDiagnosticSeverity"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.MlirDiagnosticSeverity")],-1)),t[1014]||(t[1014]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[1015]||(t[1015]=l('MlirDiagnosticSeverity
Severity of a diagnostic.
',3))]),e("details",rl,[e("summary",null,[t[1016]||(t[1016]=e("a",{id:"Reactant.MLIR.API.MlirExternalPassCallbacks",href:"#Reactant.MLIR.API.MlirExternalPassCallbacks"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.MlirExternalPassCallbacks")],-1)),t[1017]||(t[1017]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[1018]||(t[1018]=l('MlirExternalPassCallbacks
Structure of external MlirPass
callbacks. All callbacks are required to be set unless otherwise specified.
Field | Note |
---|---|
construct | This callback is called from the pass is created. This is analogous to a C++ pass constructor. |
destruct | This callback is called when the pass is destroyed This is analogous to a C++ pass destructor. |
initialize | This callback is optional. The callback is called before the pass is run, allowing a chance to initialize any complex state necessary for running the pass. See Pass::initialize(MLIRContext *). |
clone | This callback is called when the pass is cloned. See Pass::clonePass(). |
run | This callback is called when the pass is run. See Pass::runOnOperation(). |
MlirLlvmThreadPool
Re-export llvm::ThreadPool so as to avoid including the LLVM C API directly.
',3))]),e("details",dl,[e("summary",null,[t[1022]||(t[1022]=e("a",{id:"Reactant.MLIR.API.MlirLogicalResult",href:"#Reactant.MLIR.API.MlirLogicalResult"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.MlirLogicalResult")],-1)),t[1023]||(t[1023]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[1024]||(t[1024]=l('MlirLogicalResult
A logical result value, essentially a boolean with named states. LLVM convention for using boolean values to designate success or failure of an operation is a moving target, so MLIR opted for an explicit class. Instances of MlirLogicalResult
must only be inspected using the associated functions.
MlirNamedAttribute
Named MLIR attribute.
A named attribute is essentially a (name, attribute) pair where the name is a string.
',4))]),e("details",hl,[e("summary",null,[t[1028]||(t[1028]=e("a",{id:"Reactant.MLIR.API.MlirOperationState",href:"#Reactant.MLIR.API.MlirOperationState"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.MlirOperationState")],-1)),t[1029]||(t[1029]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[1030]||(t[1030]=l('MlirOperationState
An auxiliary class for constructing operations.
This class contains all the information necessary to construct the operation. It owns the MlirRegions it has pointers to and does not own anything else. By default, the state can be constructed from a name and location, the latter being also used to access the context, and has no other components. These components can be added progressively until the operation is constructed. Users are not expected to rely on the internals of this class and should use mlirOperationState* functions instead.
',4))]),e("details",ul,[e("summary",null,[t[1031]||(t[1031]=e("a",{id:"Reactant.MLIR.API.MlirOperationWalkCallback",href:"#Reactant.MLIR.API.MlirOperationWalkCallback"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.MlirOperationWalkCallback")],-1)),t[1032]||(t[1032]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[1033]||(t[1033]=e("p",null,[s("Operation walker type. The handler is passed an (opaque) reference to an operation and a pointer to a "),e("code",null,"userData"),s(".")],-1)),t[1034]||(t[1034]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L1495-L1497",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",bl,[e("summary",null,[t[1035]||(t[1035]=e("a",{id:"Reactant.MLIR.API.MlirShapedTypeComponentsCallback",href:"#Reactant.MLIR.API.MlirShapedTypeComponentsCallback"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.MlirShapedTypeComponentsCallback")],-1)),t[1036]||(t[1036]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[1037]||(t[1037]=e("p",null,"These callbacks are used to return multiple shaped type components from functions while transferring ownership to the caller. The first argument is the has rank boolean followed by the the rank and a pointer to the shape (if applicable). The next argument is the element type, then the attribute. The last argument is an opaque pointer forwarded to the callback by the caller. This callback will be called potentially multiple times for each shaped type components.",-1)),t[1038]||(t[1038]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L9100-L9102",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",gl,[e("summary",null,[t[1039]||(t[1039]=e("a",{id:"Reactant.MLIR.API.MlirSparseTensorLevelType",href:"#Reactant.MLIR.API.MlirSparseTensorLevelType"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.MlirSparseTensorLevelType")],-1)),t[1040]||(t[1040]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[1041]||(t[1041]=e("p",null,"Dimension level types (and properties) that define sparse tensors. See the documentation in SparseTensorAttrDefs.td for their meaning.",-1)),t[1042]||(t[1042]=e("p",null,"These correspond to SparseTensorEncodingAttr::LevelType in the C++ API. If updating, keep them in sync and update the static_assert in the impl file.",-1)),t[1043]||(t[1043]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L8452-L8456",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",yl,[e("summary",null,[t[1044]||(t[1044]=e("a",{id:"Reactant.MLIR.API.MlirStringCallback",href:"#Reactant.MLIR.API.MlirStringCallback"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.MlirStringCallback")],-1)),t[1045]||(t[1045]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[1046]||(t[1046]=e("p",null,"A callback for returning string references.",-1)),t[1047]||(t[1047]=e("p",null,[s("This function is called back by the functions that need to return a reference to the portion of the string with the following arguments: - an "),e("a",{href:"/Reactant.jl/previews/PR363/api/mlirc#Reactant.MLIR.API.MlirStringRef"},[e("code",null,"MlirStringRef")]),s(" representing the current portion of the string - a pointer to user data forwarded from the printing call.")],-1)),t[1048]||(t[1048]=e("p",null,[e("a",{href:"https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/libMLIR_h.jl#L108-L112",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",ml,[e("summary",null,[t[1049]||(t[1049]=e("a",{id:"Reactant.MLIR.API.MlirStringRef",href:"#Reactant.MLIR.API.MlirStringRef"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.MlirStringRef")],-1)),t[1050]||(t[1050]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[1051]||(t[1051]=l('MlirStringRef
A pointer to a sized fragment of a string, not necessarily null-terminated. Does not own the underlying string. This is equivalent to llvm::StringRef.
Field | Note |
---|---|
data | Pointer to the first symbol. |
length | Length of the fragment. |
MlirWalkOrder
Traversal order for operation walk.
',3))]),e("details",Rl,[e("summary",null,[t[1059]||(t[1059]=e("a",{id:"Reactant.MLIR.API.MlirWalkResult",href:"#Reactant.MLIR.API.MlirWalkResult"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.MlirWalkResult")],-1)),t[1060]||(t[1060]=s()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),t[1061]||(t[1061]=l('MlirWalkResult
Operation walk result.
',3))]),e("details",Il,[e("summary",null,[t[1062]||(t[1062]=e("a",{id:"Reactant.MLIR.API.LLVMAddSymbol-Tuple{Any, Any}",href:"#Reactant.MLIR.API.LLVMAddSymbol-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.LLVMAddSymbol")],-1)),t[1063]||(t[1063]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1064]||(t[1064]=l('LLVMAddSymbol(symbolName, symbolValue)
This functions permanently adds the symbol symbolName
with the value symbolValue
. These symbols are searched before any libraries.
See also
sys::DynamicLibrary::AddSymbol()
',5))]),e("details",jl,[e("summary",null,[t[1065]||(t[1065]=e("a",{id:"Reactant.MLIR.API.LLVMLoadLibraryPermanently-Tuple{Any}",href:"#Reactant.MLIR.API.LLVMLoadLibraryPermanently-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.LLVMLoadLibraryPermanently")],-1)),t[1066]||(t[1066]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1067]||(t[1067]=l('LLVMLoadLibraryPermanently(Filename)
This function permanently loads the dynamic library at the given path. It is safe to call this function multiple times for the same library.
See also
sys::DynamicLibrary::LoadLibraryPermanently()
',5))]),e("details",Ml,[e("summary",null,[t[1068]||(t[1068]=e("a",{id:"Reactant.MLIR.API.LLVMParseCommandLineOptions-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.LLVMParseCommandLineOptions-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.LLVMParseCommandLineOptions")],-1)),t[1069]||(t[1069]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1070]||(t[1070]=l('LLVMParseCommandLineOptions(argc, argv, Overview)
This function parses the given arguments using the LLVM command line parser. Note that the only stable thing about this function is its signature; you cannot rely on any particular set of command line arguments being interpreted the same way across LLVM versions.
See also
llvm:🆑:ParseCommandLineOptions()
',5))]),e("details",Al,[e("summary",null,[t[1071]||(t[1071]=e("a",{id:"Reactant.MLIR.API.LLVMSearchForAddressOfSymbol-Tuple{Any}",href:"#Reactant.MLIR.API.LLVMSearchForAddressOfSymbol-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.LLVMSearchForAddressOfSymbol")],-1)),t[1072]||(t[1072]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1073]||(t[1073]=l('LLVMSearchForAddressOfSymbol(symbolName)
This function will search through all previously loaded dynamic libraries for the symbol symbolName
. If it is found, the address of that symbol is returned. If not, null is returned.
See also
sys::DynamicLibrary::SearchForAddressOfSymbol()
',5))]),e("details",Ll,[e("summary",null,[t[1074]||(t[1074]=e("a",{id:"Reactant.MLIR.API.mlirAffineAddExprGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineAddExprGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineAddExprGet")],-1)),t[1075]||(t[1075]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1076]||(t[1076]=l('mlirAffineAddExprGet(lhs, rhs)
Creates an affine add expression with 'lhs' and 'rhs'.
',3))]),e("details",El,[e("summary",null,[t[1077]||(t[1077]=e("a",{id:"Reactant.MLIR.API.mlirAffineBinaryOpExprGetLHS-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineBinaryOpExprGetLHS-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineBinaryOpExprGetLHS")],-1)),t[1078]||(t[1078]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1079]||(t[1079]=l('mlirAffineBinaryOpExprGetLHS(affineExpr)
Returns the left hand side affine expression of the given affine binary operation expression.
',3))]),e("details",vl,[e("summary",null,[t[1080]||(t[1080]=e("a",{id:"Reactant.MLIR.API.mlirAffineBinaryOpExprGetRHS-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineBinaryOpExprGetRHS-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineBinaryOpExprGetRHS")],-1)),t[1081]||(t[1081]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1082]||(t[1082]=l('mlirAffineBinaryOpExprGetRHS(affineExpr)
Returns the right hand side affine expression of the given affine binary operation expression.
',3))]),e("details",Tl,[e("summary",null,[t[1083]||(t[1083]=e("a",{id:"Reactant.MLIR.API.mlirAffineCeilDivExprGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineCeilDivExprGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineCeilDivExprGet")],-1)),t[1084]||(t[1084]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1085]||(t[1085]=l('mlirAffineCeilDivExprGet(lhs, rhs)
Creates an affine ceildiv expression with 'lhs' and 'rhs'.
',3))]),e("details",Cl,[e("summary",null,[t[1086]||(t[1086]=e("a",{id:"Reactant.MLIR.API.mlirAffineConstantExprGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineConstantExprGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineConstantExprGet")],-1)),t[1087]||(t[1087]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1088]||(t[1088]=l('mlirAffineConstantExprGet(ctx, constant)
Creates an affine constant expression with 'constant' in the context.
',3))]),e("details",xl,[e("summary",null,[t[1089]||(t[1089]=e("a",{id:"Reactant.MLIR.API.mlirAffineConstantExprGetValue-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineConstantExprGetValue-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineConstantExprGetValue")],-1)),t[1090]||(t[1090]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1091]||(t[1091]=l('mlirAffineConstantExprGetValue(affineExpr)
Returns the value of the given affine constant expression.
',3))]),e("details",Fl,[e("summary",null,[t[1092]||(t[1092]=e("a",{id:"Reactant.MLIR.API.mlirAffineDimExprGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineDimExprGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineDimExprGet")],-1)),t[1093]||(t[1093]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1094]||(t[1094]=l('mlirAffineDimExprGet(ctx, position)
Creates an affine dimension expression with 'position' in the context.
',3))]),e("details",Pl,[e("summary",null,[t[1095]||(t[1095]=e("a",{id:"Reactant.MLIR.API.mlirAffineDimExprGetPosition-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineDimExprGetPosition-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineDimExprGetPosition")],-1)),t[1096]||(t[1096]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1097]||(t[1097]=l('mlirAffineDimExprGetPosition(affineExpr)
Returns the position of the given affine dimension expression.
',3))]),e("details",Dl,[e("summary",null,[t[1098]||(t[1098]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprCompose-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineExprCompose-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprCompose")],-1)),t[1099]||(t[1099]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1100]||(t[1100]=l('mlirAffineExprCompose(affineExpr, affineMap)
Composes the given map with the given expression.
',3))]),e("details",Ol,[e("summary",null,[t[1101]||(t[1101]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprDump-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineExprDump-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprDump")],-1)),t[1102]||(t[1102]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1103]||(t[1103]=l('mlirAffineExprDump(affineExpr)
Prints the affine expression to the standard error stream.
',3))]),e("details",Bl,[e("summary",null,[t[1104]||(t[1104]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprEqual-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineExprEqual-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprEqual")],-1)),t[1105]||(t[1105]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1106]||(t[1106]=l('mlirAffineExprEqual(lhs, rhs)
Returns true
if the two affine expressions are equal.
mlirAffineExprGetContext(affineExpr)
Gets the context that owns the affine expression.
',3))]),e("details",zl,[e("summary",null,[t[1110]||(t[1110]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprGetLargestKnownDivisor-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineExprGetLargestKnownDivisor-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprGetLargestKnownDivisor")],-1)),t[1111]||(t[1111]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1112]||(t[1112]=l('mlirAffineExprGetLargestKnownDivisor(affineExpr)
Returns the greatest known integral divisor of this affine expression. The result is always positive.
',3))]),e("details",wl,[e("summary",null,[t[1113]||(t[1113]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprIsAAdd-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineExprIsAAdd-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprIsAAdd")],-1)),t[1114]||(t[1114]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1115]||(t[1115]=l('mlirAffineExprIsAAdd(affineExpr)
Checks whether the given affine expression is an add expression.
',3))]),e("details",Sl,[e("summary",null,[t[1116]||(t[1116]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprIsABinary-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineExprIsABinary-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprIsABinary")],-1)),t[1117]||(t[1117]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1118]||(t[1118]=l('mlirAffineExprIsABinary(affineExpr)
Checks whether the given affine expression is binary.
',3))]),e("details",Nl,[e("summary",null,[t[1119]||(t[1119]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprIsACeilDiv-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineExprIsACeilDiv-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprIsACeilDiv")],-1)),t[1120]||(t[1120]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1121]||(t[1121]=l('mlirAffineExprIsACeilDiv(affineExpr)
Checks whether the given affine expression is an ceildiv expression.
',3))]),e("details",Vl,[e("summary",null,[t[1122]||(t[1122]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprIsAConstant-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineExprIsAConstant-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprIsAConstant")],-1)),t[1123]||(t[1123]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1124]||(t[1124]=l('mlirAffineExprIsAConstant(affineExpr)
Checks whether the given affine expression is a constant expression.
',3))]),e("details",ql,[e("summary",null,[t[1125]||(t[1125]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprIsADim-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineExprIsADim-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprIsADim")],-1)),t[1126]||(t[1126]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1127]||(t[1127]=l('mlirAffineExprIsADim(affineExpr)
Checks whether the given affine expression is a dimension expression.
',3))]),e("details",Ul,[e("summary",null,[t[1128]||(t[1128]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprIsAFloorDiv-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineExprIsAFloorDiv-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprIsAFloorDiv")],-1)),t[1129]||(t[1129]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1130]||(t[1130]=l('mlirAffineExprIsAFloorDiv(affineExpr)
Checks whether the given affine expression is an floordiv expression.
',3))]),e("details",Ql,[e("summary",null,[t[1131]||(t[1131]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprIsAMod-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineExprIsAMod-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprIsAMod")],-1)),t[1132]||(t[1132]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1133]||(t[1133]=l('mlirAffineExprIsAMod(affineExpr)
Checks whether the given affine expression is an mod expression.
',3))]),e("details",Wl,[e("summary",null,[t[1134]||(t[1134]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprIsAMul-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineExprIsAMul-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprIsAMul")],-1)),t[1135]||(t[1135]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1136]||(t[1136]=l('mlirAffineExprIsAMul(affineExpr)
Checks whether the given affine expression is an mul expression.
',3))]),e("details",Hl,[e("summary",null,[t[1137]||(t[1137]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprIsASymbol-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineExprIsASymbol-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprIsASymbol")],-1)),t[1138]||(t[1138]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1139]||(t[1139]=l('mlirAffineExprIsASymbol(affineExpr)
Checks whether the given affine expression is a symbol expression.
',3))]),e("details",Zl,[e("summary",null,[t[1140]||(t[1140]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprIsFunctionOfDim-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineExprIsFunctionOfDim-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprIsFunctionOfDim")],-1)),t[1141]||(t[1141]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1142]||(t[1142]=l('mlirAffineExprIsFunctionOfDim(affineExpr, position)
Checks whether the given affine expression involves AffineDimExpr 'position'.
',3))]),e("details",Jl,[e("summary",null,[t[1143]||(t[1143]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprIsMultipleOf-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineExprIsMultipleOf-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprIsMultipleOf")],-1)),t[1144]||(t[1144]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1145]||(t[1145]=l('mlirAffineExprIsMultipleOf(affineExpr, factor)
Checks whether the given affine expression is a multiple of 'factor'.
',3))]),e("details",Kl,[e("summary",null,[t[1146]||(t[1146]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineExprIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprIsNull")],-1)),t[1147]||(t[1147]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1148]||(t[1148]=l('mlirAffineExprIsNull(affineExpr)
Returns true
if the given affine expression is a null expression. Note constant zero is not a null expression.
mlirAffineExprIsPureAffine(affineExpr)
Checks whether the given affine expression is a pure affine expression, i.e. mul, floordiv, ceildic, and mod is only allowed w.r.t constants.
',3))]),e("details",Xl,[e("summary",null,[t[1152]||(t[1152]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprIsSymbolicOrConstant-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineExprIsSymbolicOrConstant-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprIsSymbolicOrConstant")],-1)),t[1153]||(t[1153]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1154]||(t[1154]=l('mlirAffineExprIsSymbolicOrConstant(affineExpr)
Checks whether the given affine expression is made out of only symbols and constants.
',3))]),e("details",Yl,[e("summary",null,[t[1155]||(t[1155]=e("a",{id:"Reactant.MLIR.API.mlirAffineExprPrint-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirAffineExprPrint-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineExprPrint")],-1)),t[1156]||(t[1156]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1157]||(t[1157]=l('mlirAffineExprPrint(affineExpr, callback, userData)
Prints an affine expression by sending chunks of the string representation and forwarding userData to
callback`. Note that the callback may be called several times with consecutive chunks of the string.
mlirAffineFloorDivExprGet(lhs, rhs)
Creates an affine floordiv expression with 'lhs' and 'rhs'.
',3))]),e("details",tn,[e("summary",null,[t[1161]||(t[1161]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapAttrGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapAttrGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapAttrGet")],-1)),t[1162]||(t[1162]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1163]||(t[1163]=l('mlirAffineMapAttrGet(map)
Creates an affine map attribute wrapping the given map. The attribute belongs to the same context as the affine map.
',3))]),e("details",en,[e("summary",null,[t[1164]||(t[1164]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapAttrGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirAffineMapAttrGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapAttrGetTypeID")],-1)),t[1165]||(t[1165]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1166]||(t[1166]=l('mlirAffineMapAttrGetTypeID()
Returns the typeID of an AffineMap attribute.
',3))]),e("details",sn,[e("summary",null,[t[1167]||(t[1167]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapAttrGetValue-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapAttrGetValue-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapAttrGetValue")],-1)),t[1168]||(t[1168]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1169]||(t[1169]=l('mlirAffineMapAttrGetValue(attr)
Returns the affine map wrapped in the given affine map attribute.
',3))]),e("details",an,[e("summary",null,[t[1170]||(t[1170]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapCompressUnusedSymbols-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirAffineMapCompressUnusedSymbols-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapCompressUnusedSymbols")],-1)),t[1171]||(t[1171]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1172]||(t[1172]=l('mlirAffineMapCompressUnusedSymbols(affineMaps, size, result, populateResult)
Returns the simplified affine map resulting from dropping the symbols that do not appear in any of the individual maps in affineMaps
. Asserts that all maps in affineMaps
are normalized to the same number of dims and symbols. Takes a callback populateResult
to fill the res
container with value m
at entry idx
. This allows returning without worrying about ownership considerations.
mlirAffineMapConstantGet(ctx, val)
Creates a single constant result affine map in the context. The affine map is owned by the context.
',3))]),e("details",nn,[e("summary",null,[t[1176]||(t[1176]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapDump-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapDump-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapDump")],-1)),t[1177]||(t[1177]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1178]||(t[1178]=l('mlirAffineMapDump(affineMap)
Prints the affine map to the standard error stream.
',3))]),e("details",pn,[e("summary",null,[t[1179]||(t[1179]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapEmptyGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapEmptyGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapEmptyGet")],-1)),t[1180]||(t[1180]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1181]||(t[1181]=l('mlirAffineMapEmptyGet(ctx)
Creates a zero result affine map with no dimensions or symbols in the context. The affine map is owned by the context.
',3))]),e("details",rn,[e("summary",null,[t[1182]||(t[1182]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapEqual-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineMapEqual-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapEqual")],-1)),t[1183]||(t[1183]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1184]||(t[1184]=l('mlirAffineMapEqual(a1, a2)
Checks if two affine maps are equal.
',3))]),e("details",on,[e("summary",null,[t[1185]||(t[1185]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapGet-NTuple{5, Any}",href:"#Reactant.MLIR.API.mlirAffineMapGet-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapGet")],-1)),t[1186]||(t[1186]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1187]||(t[1187]=l('mlirAffineMapGet(ctx, dimCount, symbolCount, nAffineExprs, affineExprs)
Creates an affine map with results defined by the given list of affine expressions. The map resulting map also has the requested number of input dimensions and symbols, regardless of them being used in the results.
',3))]),e("details",dn,[e("summary",null,[t[1188]||(t[1188]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapGetContext-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapGetContext-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapGetContext")],-1)),t[1189]||(t[1189]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1190]||(t[1190]=l('mlirAffineMapGetContext(affineMap)
Gets the context that the given affine map was created with
',3))]),e("details",cn,[e("summary",null,[t[1191]||(t[1191]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapGetMajorSubMap-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineMapGetMajorSubMap-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapGetMajorSubMap")],-1)),t[1192]||(t[1192]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1193]||(t[1193]=l('mlirAffineMapGetMajorSubMap(affineMap, numResults)
Returns the affine map consisting of the most major numResults
results. Returns the null AffineMap if the numResults
is equal to zero. Returns the affineMap
if numResults
is greater or equals to number of results of the given affine map.
mlirAffineMapGetMinorSubMap(affineMap, numResults)
Returns the affine map consisting of the most minor numResults
results. Returns the null AffineMap if the numResults
is equal to zero. Returns the affineMap
if numResults
is greater or equals to number of results of the given affine map.
mlirAffineMapGetNumDims(affineMap)
Returns the number of dimensions of the given affine map.
',3))]),e("details",bn,[e("summary",null,[t[1200]||(t[1200]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapGetNumInputs-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapGetNumInputs-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapGetNumInputs")],-1)),t[1201]||(t[1201]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1202]||(t[1202]=l('mlirAffineMapGetNumInputs(affineMap)
Returns the number of inputs (dimensions + symbols) of the given affine map.
',3))]),e("details",gn,[e("summary",null,[t[1203]||(t[1203]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapGetNumResults-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapGetNumResults-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapGetNumResults")],-1)),t[1204]||(t[1204]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1205]||(t[1205]=l('mlirAffineMapGetNumResults(affineMap)
Returns the number of results of the given affine map.
',3))]),e("details",yn,[e("summary",null,[t[1206]||(t[1206]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapGetNumSymbols-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapGetNumSymbols-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapGetNumSymbols")],-1)),t[1207]||(t[1207]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1208]||(t[1208]=l('mlirAffineMapGetNumSymbols(affineMap)
Returns the number of symbols of the given affine map.
',3))]),e("details",mn,[e("summary",null,[t[1209]||(t[1209]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapGetResult-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineMapGetResult-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapGetResult")],-1)),t[1210]||(t[1210]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1211]||(t[1211]=l('mlirAffineMapGetResult(affineMap, pos)
Returns the result at the given position.
',3))]),e("details",kn,[e("summary",null,[t[1212]||(t[1212]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapGetSingleConstantResult-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapGetSingleConstantResult-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapGetSingleConstantResult")],-1)),t[1213]||(t[1213]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1214]||(t[1214]=l('mlirAffineMapGetSingleConstantResult(affineMap)
Returns the constant result of the given affine map. The function asserts that the map has a single constant result.
',3))]),e("details",fn,[e("summary",null,[t[1215]||(t[1215]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapGetSubMap-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirAffineMapGetSubMap-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapGetSubMap")],-1)),t[1216]||(t[1216]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1217]||(t[1217]=l('mlirAffineMapGetSubMap(affineMap, size, resultPos)
Returns the affine map consisting of the resultPos
subset.
mlirAffineMapIsEmpty(affineMap)
Checks whether the given affine map is an empty affine map.
',3))]),e("details",In,[e("summary",null,[t[1221]||(t[1221]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapIsIdentity-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapIsIdentity-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapIsIdentity")],-1)),t[1222]||(t[1222]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1223]||(t[1223]=l('mlirAffineMapIsIdentity(affineMap)
Checks whether the given affine map is an identity affine map. The function asserts that the number of dimensions is greater or equal to the number of results.
',3))]),e("details",jn,[e("summary",null,[t[1224]||(t[1224]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapIsMinorIdentity-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapIsMinorIdentity-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapIsMinorIdentity")],-1)),t[1225]||(t[1225]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1226]||(t[1226]=l('mlirAffineMapIsMinorIdentity(affineMap)
Checks whether the given affine map is a minor identity affine map.
',3))]),e("details",Mn,[e("summary",null,[t[1227]||(t[1227]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapIsNull")],-1)),t[1228]||(t[1228]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1229]||(t[1229]=l('mlirAffineMapIsNull(affineMap)
Checks whether an affine map is null.
',3))]),e("details",An,[e("summary",null,[t[1230]||(t[1230]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapIsPermutation-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapIsPermutation-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapIsPermutation")],-1)),t[1231]||(t[1231]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1232]||(t[1232]=l('mlirAffineMapIsPermutation(affineMap)
Checks whether the given affine map represents a symbol-less permutation map.
',3))]),e("details",Ln,[e("summary",null,[t[1233]||(t[1233]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapIsProjectedPermutation-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapIsProjectedPermutation-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapIsProjectedPermutation")],-1)),t[1234]||(t[1234]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1235]||(t[1235]=l('mlirAffineMapIsProjectedPermutation(affineMap)
Checks whether the given affine map represents a subset of a symbol-less permutation map.
',3))]),e("details",En,[e("summary",null,[t[1236]||(t[1236]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapIsSingleConstant-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineMapIsSingleConstant-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapIsSingleConstant")],-1)),t[1237]||(t[1237]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1238]||(t[1238]=l('mlirAffineMapIsSingleConstant(affineMap)
Checks whether the given affine map is a single result constant affine map.
',3))]),e("details",vn,[e("summary",null,[t[1239]||(t[1239]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapMinorIdentityGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirAffineMapMinorIdentityGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapMinorIdentityGet")],-1)),t[1240]||(t[1240]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1241]||(t[1241]=l('mlirAffineMapMinorIdentityGet(ctx, dims, results)
Creates an identity affine map on the most minor dimensions in the context. The affine map is owned by the context. The function asserts that the number of dimensions is greater or equal to the number of results.
',3))]),e("details",Tn,[e("summary",null,[t[1242]||(t[1242]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapMultiDimIdentityGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineMapMultiDimIdentityGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapMultiDimIdentityGet")],-1)),t[1243]||(t[1243]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1244]||(t[1244]=l('mlirAffineMapMultiDimIdentityGet(ctx, numDims)
Creates an affine map with 'numDims' identity in the context. The affine map is owned by the context.
',3))]),e("details",Cn,[e("summary",null,[t[1245]||(t[1245]=e("a",{id:"Reactant.MLIR.API.mlirAffineMapPermutationGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirAffineMapPermutationGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMapPermutationGet")],-1)),t[1246]||(t[1246]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1247]||(t[1247]=l('mlirAffineMapPermutationGet(ctx, size, permutation)
Creates an affine map with a permutation expression and its size in the context. The permutation expression is a non-empty vector of integers. The elements of the permutation vector must be continuous from 0 and cannot be repeated (i.e. [1,2,0]
is a valid permutation. [2,0]
or [1,1,2]
is an invalid permutation.) The affine map is owned by the context.
mlirAffineMapPrint(affineMap, callback, userData)
Prints an affine map by sending chunks of the string representation and forwarding userData to
callback`. Note that the callback may be called several times with consecutive chunks of the string.
mlirAffineMapReplace(affineMap, expression, replacement, numResultDims, numResultSyms)
Apply AffineExpr::replace(map
) to each of the results and return a new new AffineMap with the new results and the specified number of dims and symbols.
mlirAffineMapZeroResultGet(ctx, dimCount, symbolCount)
Creates a zero result affine map of the given dimensions and symbols in the context. The affine map is owned by the context.
',3))]),e("details",Dn,[e("summary",null,[t[1257]||(t[1257]=e("a",{id:"Reactant.MLIR.API.mlirAffineModExprGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineModExprGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineModExprGet")],-1)),t[1258]||(t[1258]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1259]||(t[1259]=l('mlirAffineModExprGet(lhs, rhs)
Creates an affine mod expression with 'lhs' and 'rhs'.
',3))]),e("details",On,[e("summary",null,[t[1260]||(t[1260]=e("a",{id:"Reactant.MLIR.API.mlirAffineMulExprGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineMulExprGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineMulExprGet")],-1)),t[1261]||(t[1261]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1262]||(t[1262]=l('mlirAffineMulExprGet(lhs, rhs)
Creates an affine mul expression with 'lhs' and 'rhs'.
',3))]),e("details",Bn,[e("summary",null,[t[1263]||(t[1263]=e("a",{id:"Reactant.MLIR.API.mlirAffineSymbolExprGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAffineSymbolExprGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineSymbolExprGet")],-1)),t[1264]||(t[1264]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1265]||(t[1265]=l('mlirAffineSymbolExprGet(ctx, position)
Creates an affine symbol expression with 'position' in the context.
',3))]),e("details",Gn,[e("summary",null,[t[1266]||(t[1266]=e("a",{id:"Reactant.MLIR.API.mlirAffineSymbolExprGetPosition-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAffineSymbolExprGetPosition-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAffineSymbolExprGetPosition")],-1)),t[1267]||(t[1267]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1268]||(t[1268]=l('mlirAffineSymbolExprGetPosition(affineExpr)
Returns the position of the given affine symbol expression.
',3))]),e("details",zn,[e("summary",null,[t[1269]||(t[1269]=e("a",{id:"Reactant.MLIR.API.mlirAnyQuantizedTypeGet-NTuple{5, Any}",href:"#Reactant.MLIR.API.mlirAnyQuantizedTypeGet-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAnyQuantizedTypeGet")],-1)),t[1270]||(t[1270]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1271]||(t[1271]=l('mlirAnyQuantizedTypeGet(flags, storageType, expressedType, storageTypeMin, storageTypeMax)
Creates an instance of AnyQuantizedType with the given parameters in the same context as storageType
and returns it. The instance is owned by the context.
mlirArrayAttrGet(ctx, numElements, elements)
Creates an array element containing the given list of elements in the given context.
',3))]),e("details",Sn,[e("summary",null,[t[1275]||(t[1275]=e("a",{id:"Reactant.MLIR.API.mlirArrayAttrGetElement-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirArrayAttrGetElement-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirArrayAttrGetElement")],-1)),t[1276]||(t[1276]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1277]||(t[1277]=l('mlirArrayAttrGetElement(attr, pos)
Returns pos-th element stored in the given array attribute.
',3))]),e("details",Nn,[e("summary",null,[t[1278]||(t[1278]=e("a",{id:"Reactant.MLIR.API.mlirArrayAttrGetNumElements-Tuple{Any}",href:"#Reactant.MLIR.API.mlirArrayAttrGetNumElements-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirArrayAttrGetNumElements")],-1)),t[1279]||(t[1279]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1280]||(t[1280]=l('mlirArrayAttrGetNumElements(attr)
Returns the number of elements stored in the given array attribute.
',3))]),e("details",Vn,[e("summary",null,[t[1281]||(t[1281]=e("a",{id:"Reactant.MLIR.API.mlirArrayAttrGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirArrayAttrGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirArrayAttrGetTypeID")],-1)),t[1282]||(t[1282]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1283]||(t[1283]=l('mlirArrayAttrGetTypeID()
Returns the typeID of an Array attribute.
',3))]),e("details",qn,[e("summary",null,[t[1284]||(t[1284]=e("a",{id:"Reactant.MLIR.API.mlirAsmStateCreateForOperation-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAsmStateCreateForOperation-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAsmStateCreateForOperation")],-1)),t[1285]||(t[1285]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1286]||(t[1286]=l('mlirAsmStateCreateForOperation(op, flags)
Creates new AsmState, as with AsmState the IR should not be mutated in-between using this state. Must be freed with a call to mlirAsmStateDestroy
().
mlirAsmStateCreateForValue(value, flags)
Creates new AsmState from value. Must be freed with a call to mlirAsmStateDestroy
().
mlirAsmStateDestroy(state)
Destroys printing flags created with mlirAsmStateCreate.
',3))]),e("details",Wn,[e("summary",null,[t[1293]||(t[1293]=e("a",{id:"Reactant.MLIR.API.mlirAttributeDump-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeDump-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeDump")],-1)),t[1294]||(t[1294]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1295]||(t[1295]=l('mlirAttributeDump(attr)
Prints the attribute to the standard error stream.
',3))]),e("details",Hn,[e("summary",null,[t[1296]||(t[1296]=e("a",{id:"Reactant.MLIR.API.mlirAttributeEqual-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAttributeEqual-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeEqual")],-1)),t[1297]||(t[1297]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1298]||(t[1298]=l('mlirAttributeEqual(a1, a2)
Checks if two attributes are equal.
',3))]),e("details",Zn,[e("summary",null,[t[1299]||(t[1299]=e("a",{id:"Reactant.MLIR.API.mlirAttributeGetContext-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeGetContext-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeGetContext")],-1)),t[1300]||(t[1300]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1301]||(t[1301]=l('mlirAttributeGetContext(attribute)
Gets the context that an attribute was created with.
',3))]),e("details",Jn,[e("summary",null,[t[1302]||(t[1302]=e("a",{id:"Reactant.MLIR.API.mlirAttributeGetDialect-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeGetDialect-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeGetDialect")],-1)),t[1303]||(t[1303]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1304]||(t[1304]=l('mlirAttributeGetDialect(attribute)
Gets the dialect of the attribute.
',3))]),e("details",Kn,[e("summary",null,[t[1305]||(t[1305]=e("a",{id:"Reactant.MLIR.API.mlirAttributeGetNull-Tuple{}",href:"#Reactant.MLIR.API.mlirAttributeGetNull-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeGetNull")],-1)),t[1306]||(t[1306]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1307]||(t[1307]=l('mlirAttributeGetNull()
Returns an empty attribute.
',3))]),e("details",$n,[e("summary",null,[t[1308]||(t[1308]=e("a",{id:"Reactant.MLIR.API.mlirAttributeGetType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeGetType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeGetType")],-1)),t[1309]||(t[1309]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1310]||(t[1310]=l('mlirAttributeGetType(attribute)
Gets the type of this attribute.
',3))]),e("details",Xn,[e("summary",null,[t[1311]||(t[1311]=e("a",{id:"Reactant.MLIR.API.mlirAttributeGetTypeID-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeGetTypeID-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeGetTypeID")],-1)),t[1312]||(t[1312]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1313]||(t[1313]=l('mlirAttributeGetTypeID(attribute)
Gets the type id of the attribute.
',3))]),e("details",Yn,[e("summary",null,[t[1314]||(t[1314]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsAAffineMap-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsAAffineMap-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsAAffineMap")],-1)),t[1315]||(t[1315]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1316]||(t[1316]=l('mlirAttributeIsAAffineMap(attr)
Checks whether the given attribute is an affine map attribute.
',3))]),e("details",_n,[e("summary",null,[t[1317]||(t[1317]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsAArray-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsAArray-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsAArray")],-1)),t[1318]||(t[1318]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1319]||(t[1319]=l('mlirAttributeIsAArray(attr)
Checks whether the given attribute is an array attribute.
',3))]),e("details",tp,[e("summary",null,[t[1320]||(t[1320]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsABool-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsABool-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsABool")],-1)),t[1321]||(t[1321]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1322]||(t[1322]=l('mlirAttributeIsABool(attr)
Checks whether the given attribute is a bool attribute.
',3))]),e("details",ep,[e("summary",null,[t[1323]||(t[1323]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsADenseBoolArray-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsADenseBoolArray-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsADenseBoolArray")],-1)),t[1324]||(t[1324]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1325]||(t[1325]=l('mlirAttributeIsADenseBoolArray(attr)
Checks whether the given attribute is a dense array attribute.
',3))]),e("details",sp,[e("summary",null,[t[1326]||(t[1326]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsADenseElements-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsADenseElements-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsADenseElements")],-1)),t[1327]||(t[1327]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1328]||(t[1328]=l('mlirAttributeIsADenseElements(attr)
Checks whether the given attribute is a dense elements attribute.
',3))]),e("details",ap,[e("summary",null,[t[1329]||(t[1329]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsADictionary-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsADictionary-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsADictionary")],-1)),t[1330]||(t[1330]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1331]||(t[1331]=l('mlirAttributeIsADictionary(attr)
Checks whether the given attribute is a dictionary attribute.
',3))]),e("details",ip,[e("summary",null,[t[1332]||(t[1332]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsAElements-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsAElements-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsAElements")],-1)),t[1333]||(t[1333]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1334]||(t[1334]=l('mlirAttributeIsAElements(attr)
Checks whether the given attribute is an elements attribute.
',3))]),e("details",lp,[e("summary",null,[t[1335]||(t[1335]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsAFlatSymbolRef-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsAFlatSymbolRef-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsAFlatSymbolRef")],-1)),t[1336]||(t[1336]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1337]||(t[1337]=l('mlirAttributeIsAFlatSymbolRef(attr)
Checks whether the given attribute is a flat symbol reference attribute.
',3))]),e("details",np,[e("summary",null,[t[1338]||(t[1338]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsAFloat-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsAFloat-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsAFloat")],-1)),t[1339]||(t[1339]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1340]||(t[1340]=l('mlirAttributeIsAFloat(attr)
Checks whether the given attribute is a floating point attribute.
',3))]),e("details",pp,[e("summary",null,[t[1341]||(t[1341]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsAInteger-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsAInteger-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsAInteger")],-1)),t[1342]||(t[1342]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1343]||(t[1343]=l('mlirAttributeIsAInteger(attr)
Checks whether the given attribute is an integer attribute.
',3))]),e("details",rp,[e("summary",null,[t[1344]||(t[1344]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsAIntegerSet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsAIntegerSet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsAIntegerSet")],-1)),t[1345]||(t[1345]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1346]||(t[1346]=l('mlirAttributeIsAIntegerSet(attr)
Checks whether the given attribute is an integer set attribute.
',3))]),e("details",op,[e("summary",null,[t[1347]||(t[1347]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsAOpaque-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsAOpaque-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsAOpaque")],-1)),t[1348]||(t[1348]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1349]||(t[1349]=l('mlirAttributeIsAOpaque(attr)
Checks whether the given attribute is an opaque attribute.
',3))]),e("details",dp,[e("summary",null,[t[1350]||(t[1350]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsASparseElements-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsASparseElements-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsASparseElements")],-1)),t[1351]||(t[1351]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1352]||(t[1352]=l('mlirAttributeIsASparseElements(attr)
Checks whether the given attribute is a sparse elements attribute.
',3))]),e("details",cp,[e("summary",null,[t[1353]||(t[1353]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsASparseTensorEncodingAttr-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsASparseTensorEncodingAttr-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsASparseTensorEncodingAttr")],-1)),t[1354]||(t[1354]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1355]||(t[1355]=l('mlirAttributeIsASparseTensorEncodingAttr(attr)
Checks whether the given attribute is a sparse\\_tensor.encoding
attribute.
mlirAttributeIsAString(attr)
Checks whether the given attribute is a string attribute.
',3))]),e("details",up,[e("summary",null,[t[1359]||(t[1359]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsASymbolRef-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsASymbolRef-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsASymbolRef")],-1)),t[1360]||(t[1360]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1361]||(t[1361]=l('mlirAttributeIsASymbolRef(attr)
Checks whether the given attribute is a symbol reference attribute.
',3))]),e("details",bp,[e("summary",null,[t[1362]||(t[1362]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsAType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsAType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsAType")],-1)),t[1363]||(t[1363]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1364]||(t[1364]=l('mlirAttributeIsAType(attr)
Checks whether the given attribute is a type attribute.
',3))]),e("details",gp,[e("summary",null,[t[1365]||(t[1365]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsAUnit-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsAUnit-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsAUnit")],-1)),t[1366]||(t[1366]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1367]||(t[1367]=l('mlirAttributeIsAUnit(attr)
Checks whether the given attribute is a unit attribute.
',3))]),e("details",yp,[e("summary",null,[t[1368]||(t[1368]=e("a",{id:"Reactant.MLIR.API.mlirAttributeIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirAttributeIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeIsNull")],-1)),t[1369]||(t[1369]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1370]||(t[1370]=l('mlirAttributeIsNull(attr)
Checks whether an attribute is null.
',3))]),e("details",mp,[e("summary",null,[t[1371]||(t[1371]=e("a",{id:"Reactant.MLIR.API.mlirAttributeParseGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirAttributeParseGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributeParseGet")],-1)),t[1372]||(t[1372]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1373]||(t[1373]=l('mlirAttributeParseGet(context, attr)
Parses an attribute. The attribute is owned by the context.
',3))]),e("details",kp,[e("summary",null,[t[1374]||(t[1374]=e("a",{id:"Reactant.MLIR.API.mlirAttributePrint-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirAttributePrint-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirAttributePrint")],-1)),t[1375]||(t[1375]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1376]||(t[1376]=l('mlirAttributePrint(attr, callback, userData)
Prints an attribute by sending chunks of the string representation and forwarding userData to
callback`. Note that the callback may be called several times with consecutive chunks of the string.
mlirBF16TypeGet(ctx)
Creates a bf16 type in the given context. The type is owned by the context.
',3))]),e("details",Rp,[e("summary",null,[t[1380]||(t[1380]=e("a",{id:"Reactant.MLIR.API.mlirBFloat16TypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirBFloat16TypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBFloat16TypeGetTypeID")],-1)),t[1381]||(t[1381]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1382]||(t[1382]=l('mlirBFloat16TypeGetTypeID()
Returns the typeID of an BFloat16 type.
',3))]),e("details",Ip,[e("summary",null,[t[1383]||(t[1383]=e("a",{id:"Reactant.MLIR.API.mlirBlockAddArgument-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirBlockAddArgument-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockAddArgument")],-1)),t[1384]||(t[1384]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1385]||(t[1385]=l('mlirBlockAddArgument(block, type, loc)
Appends an argument of the specified type to the block. Returns the newly added argument.
',3))]),e("details",jp,[e("summary",null,[t[1386]||(t[1386]=e("a",{id:"Reactant.MLIR.API.mlirBlockAppendOwnedOperation-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirBlockAppendOwnedOperation-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockAppendOwnedOperation")],-1)),t[1387]||(t[1387]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1388]||(t[1388]=l('mlirBlockAppendOwnedOperation(block, operation)
Takes an operation owned by the caller and appends it to the block.
',3))]),e("details",Mp,[e("summary",null,[t[1389]||(t[1389]=e("a",{id:"Reactant.MLIR.API.mlirBlockArgumentGetArgNumber-Tuple{Any}",href:"#Reactant.MLIR.API.mlirBlockArgumentGetArgNumber-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockArgumentGetArgNumber")],-1)),t[1390]||(t[1390]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1391]||(t[1391]=l('mlirBlockArgumentGetArgNumber(value)
Returns the position of the value in the argument list of its block.
',3))]),e("details",Ap,[e("summary",null,[t[1392]||(t[1392]=e("a",{id:"Reactant.MLIR.API.mlirBlockArgumentGetOwner-Tuple{Any}",href:"#Reactant.MLIR.API.mlirBlockArgumentGetOwner-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockArgumentGetOwner")],-1)),t[1393]||(t[1393]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1394]||(t[1394]=l('mlirBlockArgumentGetOwner(value)
Returns the block in which this value is defined as an argument. Asserts if the value is not a block argument.
',3))]),e("details",Lp,[e("summary",null,[t[1395]||(t[1395]=e("a",{id:"Reactant.MLIR.API.mlirBlockArgumentSetType-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirBlockArgumentSetType-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockArgumentSetType")],-1)),t[1396]||(t[1396]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1397]||(t[1397]=l('mlirBlockArgumentSetType(value, type)
Sets the type of the block argument to the given type.
',3))]),e("details",Ep,[e("summary",null,[t[1398]||(t[1398]=e("a",{id:"Reactant.MLIR.API.mlirBlockCreate-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirBlockCreate-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockCreate")],-1)),t[1399]||(t[1399]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1400]||(t[1400]=l('mlirBlockCreate(nArgs, args, locs)
Creates a new empty block with the given argument types and transfers ownership to the caller.
',3))]),e("details",vp,[e("summary",null,[t[1401]||(t[1401]=e("a",{id:"Reactant.MLIR.API.mlirBlockDestroy-Tuple{Any}",href:"#Reactant.MLIR.API.mlirBlockDestroy-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockDestroy")],-1)),t[1402]||(t[1402]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1403]||(t[1403]=l('mlirBlockDestroy(block)
Takes a block owned by the caller and destroys it.
',3))]),e("details",Tp,[e("summary",null,[t[1404]||(t[1404]=e("a",{id:"Reactant.MLIR.API.mlirBlockDetach-Tuple{Any}",href:"#Reactant.MLIR.API.mlirBlockDetach-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockDetach")],-1)),t[1405]||(t[1405]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1406]||(t[1406]=l('mlirBlockDetach(block)
Detach a block from the owning region and assume ownership.
',3))]),e("details",Cp,[e("summary",null,[t[1407]||(t[1407]=e("a",{id:"Reactant.MLIR.API.mlirBlockEqual-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirBlockEqual-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockEqual")],-1)),t[1408]||(t[1408]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1409]||(t[1409]=l('mlirBlockEqual(block, other)
Checks whether two blocks handles point to the same block. This does not perform deep comparison.
',3))]),e("details",xp,[e("summary",null,[t[1410]||(t[1410]=e("a",{id:"Reactant.MLIR.API.mlirBlockEraseArgument-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirBlockEraseArgument-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockEraseArgument")],-1)),t[1411]||(t[1411]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1412]||(t[1412]=l('mlirBlockEraseArgument(block, index)
Erase the argument at 'index' and remove it from the argument list.
',3))]),e("details",Fp,[e("summary",null,[t[1413]||(t[1413]=e("a",{id:"Reactant.MLIR.API.mlirBlockGetArgument-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirBlockGetArgument-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockGetArgument")],-1)),t[1414]||(t[1414]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1415]||(t[1415]=l('mlirBlockGetArgument(block, pos)
Returns pos
-th argument of the block.
mlirBlockGetFirstOperation(block)
Returns the first operation in the block.
',3))]),e("details",Dp,[e("summary",null,[t[1419]||(t[1419]=e("a",{id:"Reactant.MLIR.API.mlirBlockGetNextInRegion-Tuple{Any}",href:"#Reactant.MLIR.API.mlirBlockGetNextInRegion-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockGetNextInRegion")],-1)),t[1420]||(t[1420]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1421]||(t[1421]=l('mlirBlockGetNextInRegion(block)
Returns the block immediately following the given block in its parent region.
',3))]),e("details",Op,[e("summary",null,[t[1422]||(t[1422]=e("a",{id:"Reactant.MLIR.API.mlirBlockGetNumArguments-Tuple{Any}",href:"#Reactant.MLIR.API.mlirBlockGetNumArguments-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockGetNumArguments")],-1)),t[1423]||(t[1423]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1424]||(t[1424]=l('mlirBlockGetNumArguments(block)
Returns the number of arguments of the block.
',3))]),e("details",Bp,[e("summary",null,[t[1425]||(t[1425]=e("a",{id:"Reactant.MLIR.API.mlirBlockGetParentOperation-Tuple{Any}",href:"#Reactant.MLIR.API.mlirBlockGetParentOperation-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockGetParentOperation")],-1)),t[1426]||(t[1426]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1427]||(t[1427]=l('mlirBlockGetParentOperation(arg1)
Returns the closest surrounding operation that contains this block.
',3))]),e("details",Gp,[e("summary",null,[t[1428]||(t[1428]=e("a",{id:"Reactant.MLIR.API.mlirBlockGetParentRegion-Tuple{Any}",href:"#Reactant.MLIR.API.mlirBlockGetParentRegion-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockGetParentRegion")],-1)),t[1429]||(t[1429]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1430]||(t[1430]=l('mlirBlockGetParentRegion(block)
Returns the region that contains this block.
',3))]),e("details",zp,[e("summary",null,[t[1431]||(t[1431]=e("a",{id:"Reactant.MLIR.API.mlirBlockGetTerminator-Tuple{Any}",href:"#Reactant.MLIR.API.mlirBlockGetTerminator-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockGetTerminator")],-1)),t[1432]||(t[1432]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1433]||(t[1433]=l('mlirBlockGetTerminator(block)
Returns the terminator operation in the block or null if no terminator.
',3))]),e("details",wp,[e("summary",null,[t[1434]||(t[1434]=e("a",{id:"Reactant.MLIR.API.mlirBlockInsertArgument-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirBlockInsertArgument-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockInsertArgument")],-1)),t[1435]||(t[1435]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1436]||(t[1436]=l('mlirBlockInsertArgument(block, pos, type, loc)
Inserts an argument of the specified type at a specified index to the block. Returns the newly added argument.
',3))]),e("details",Sp,[e("summary",null,[t[1437]||(t[1437]=e("a",{id:"Reactant.MLIR.API.mlirBlockInsertOwnedOperation-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirBlockInsertOwnedOperation-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockInsertOwnedOperation")],-1)),t[1438]||(t[1438]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1439]||(t[1439]=l('mlirBlockInsertOwnedOperation(block, pos, operation)
Takes an operation owned by the caller and inserts it as pos
to the block. This is an expensive operation that scans the block linearly, prefer insertBefore/After instead.
mlirBlockInsertOwnedOperationAfter(block, reference, operation)
Takes an operation owned by the caller and inserts it after the (non-owned) reference operation in the given block. If the reference is null, prepends the operation. Otherwise, the reference must belong to the block.
',3))]),e("details",Vp,[e("summary",null,[t[1443]||(t[1443]=e("a",{id:"Reactant.MLIR.API.mlirBlockInsertOwnedOperationBefore-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirBlockInsertOwnedOperationBefore-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockInsertOwnedOperationBefore")],-1)),t[1444]||(t[1444]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1445]||(t[1445]=l('mlirBlockInsertOwnedOperationBefore(block, reference, operation)
Takes an operation owned by the caller and inserts it before the (non-owned) reference operation in the given block. If the reference is null, appends the operation. Otherwise, the reference must belong to the block.
',3))]),e("details",qp,[e("summary",null,[t[1446]||(t[1446]=e("a",{id:"Reactant.MLIR.API.mlirBlockIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirBlockIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockIsNull")],-1)),t[1447]||(t[1447]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1448]||(t[1448]=l('mlirBlockIsNull(block)
Checks whether a block is null.
',3))]),e("details",Up,[e("summary",null,[t[1449]||(t[1449]=e("a",{id:"Reactant.MLIR.API.mlirBlockPrint-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirBlockPrint-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBlockPrint")],-1)),t[1450]||(t[1450]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1451]||(t[1451]=l('mlirBlockPrint(block, callback, userData)
Prints a block by sending chunks of the string representation and forwarding userData to
callback`. Note that the callback may be called several times with consecutive chunks of the string.
mlirBoolAttrGet(ctx, value)
Creates a bool attribute in the given context with the given value.
',3))]),e("details",Wp,[e("summary",null,[t[1455]||(t[1455]=e("a",{id:"Reactant.MLIR.API.mlirBoolAttrGetValue-Tuple{Any}",href:"#Reactant.MLIR.API.mlirBoolAttrGetValue-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBoolAttrGetValue")],-1)),t[1456]||(t[1456]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1457]||(t[1457]=l('mlirBoolAttrGetValue(attr)
Returns the value stored in the given bool attribute.
',3))]),e("details",Hp,[e("summary",null,[t[1458]||(t[1458]=e("a",{id:"Reactant.MLIR.API.mlirBytecodeWriterConfigCreate-Tuple{}",href:"#Reactant.MLIR.API.mlirBytecodeWriterConfigCreate-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBytecodeWriterConfigCreate")],-1)),t[1459]||(t[1459]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1460]||(t[1460]=l('mlirBytecodeWriterConfigCreate()
Creates new printing flags with defaults, intended for customization. Must be freed with a call to mlirBytecodeWriterConfigDestroy
().
mlirBytecodeWriterConfigDesiredEmitVersion(flags, version)
Sets the version to emit in the writer config.
',3))]),e("details",Jp,[e("summary",null,[t[1464]||(t[1464]=e("a",{id:"Reactant.MLIR.API.mlirBytecodeWriterConfigDestroy-Tuple{Any}",href:"#Reactant.MLIR.API.mlirBytecodeWriterConfigDestroy-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirBytecodeWriterConfigDestroy")],-1)),t[1465]||(t[1465]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1466]||(t[1466]=l('mlirBytecodeWriterConfigDestroy(config)
Destroys printing flags created with mlirBytecodeWriterConfigCreate
.
mlirCalibratedQuantizedTypeGet(expressedType, min, max)
Creates an instance of CalibratedQuantizedType with the given parameters in the same context as expressedType
and returns it. The instance is owned by the context.
mlirCalibratedQuantizedTypeGetMax(type)
Returns the max value of the given calibrated quantized type.
',3))]),e("details",Xp,[e("summary",null,[t[1473]||(t[1473]=e("a",{id:"Reactant.MLIR.API.mlirCalibratedQuantizedTypeGetMin-Tuple{Any}",href:"#Reactant.MLIR.API.mlirCalibratedQuantizedTypeGetMin-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirCalibratedQuantizedTypeGetMin")],-1)),t[1474]||(t[1474]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1475]||(t[1475]=l('mlirCalibratedQuantizedTypeGetMin(type)
Returns the min value of the given calibrated quantized type.
',3))]),e("details",Yp,[e("summary",null,[t[1476]||(t[1476]=e("a",{id:"Reactant.MLIR.API.mlirComplexTypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirComplexTypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirComplexTypeGet")],-1)),t[1477]||(t[1477]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1478]||(t[1478]=l('mlirComplexTypeGet(elementType)
Creates a complex type with the given element type in the same context as the element type. The type is owned by the context.
',3))]),e("details",_p,[e("summary",null,[t[1479]||(t[1479]=e("a",{id:"Reactant.MLIR.API.mlirComplexTypeGetElementType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirComplexTypeGetElementType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirComplexTypeGetElementType")],-1)),t[1480]||(t[1480]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1481]||(t[1481]=l('mlirComplexTypeGetElementType(type)
Returns the element type of the given complex type.
',3))]),e("details",tr,[e("summary",null,[t[1482]||(t[1482]=e("a",{id:"Reactant.MLIR.API.mlirComplexTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirComplexTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirComplexTypeGetTypeID")],-1)),t[1483]||(t[1483]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1484]||(t[1484]=l('mlirComplexTypeGetTypeID()
Returns the typeID of an Complex type.
',3))]),e("details",er,[e("summary",null,[t[1485]||(t[1485]=e("a",{id:"Reactant.MLIR.API.mlirContextAppendDialectRegistry-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirContextAppendDialectRegistry-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextAppendDialectRegistry")],-1)),t[1486]||(t[1486]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1487]||(t[1487]=l('mlirContextAppendDialectRegistry(ctx, registry)
Append the contents of the given dialect registry to the registry associated with the context.
',3))]),e("details",sr,[e("summary",null,[t[1488]||(t[1488]=e("a",{id:"Reactant.MLIR.API.mlirContextAttachDiagnosticHandler-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirContextAttachDiagnosticHandler-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextAttachDiagnosticHandler")],-1)),t[1489]||(t[1489]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1490]||(t[1490]=l('mlirContextAttachDiagnosticHandler(context, handler, userData, deleteUserData)
Attaches the diagnostic handler to the context. Handlers are invoked in the reverse order of attachment until one of them processes the diagnostic completely. When a handler is invoked it is passed the userData
that was provided when it was attached. If non-NULL, deleteUserData
is called once the system no longer needs to call the handler (for instance after the handler is detached or the context is destroyed). Returns an identifier that can be used to detach the handler.
mlirContextCreate()
Creates an MLIR context and transfers its ownership to the caller. This sets the default multithreading option (enabled).
',3))]),e("details",ir,[e("summary",null,[t[1494]||(t[1494]=e("a",{id:"Reactant.MLIR.API.mlirContextCreateWithRegistry-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirContextCreateWithRegistry-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextCreateWithRegistry")],-1)),t[1495]||(t[1495]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1496]||(t[1496]=l('mlirContextCreateWithRegistry(registry, threadingEnabled)
Creates an MLIR context, setting the multithreading setting explicitly and pre-loading the dialects from the provided DialectRegistry.
',3))]),e("details",lr,[e("summary",null,[t[1497]||(t[1497]=e("a",{id:"Reactant.MLIR.API.mlirContextCreateWithThreading-Tuple{Any}",href:"#Reactant.MLIR.API.mlirContextCreateWithThreading-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextCreateWithThreading")],-1)),t[1498]||(t[1498]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1499]||(t[1499]=l('mlirContextCreateWithThreading(threadingEnabled)
Creates an MLIR context with an explicit setting of the multithreading setting and transfers its ownership to the caller.
',3))]),e("details",nr,[e("summary",null,[t[1500]||(t[1500]=e("a",{id:"Reactant.MLIR.API.mlirContextDestroy-Tuple{Any}",href:"#Reactant.MLIR.API.mlirContextDestroy-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextDestroy")],-1)),t[1501]||(t[1501]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1502]||(t[1502]=l('mlirContextDestroy(context)
Takes an MLIR context owned by the caller and destroys it.
',3))]),e("details",pr,[e("summary",null,[t[1503]||(t[1503]=e("a",{id:"Reactant.MLIR.API.mlirContextDetachDiagnosticHandler-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirContextDetachDiagnosticHandler-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextDetachDiagnosticHandler")],-1)),t[1504]||(t[1504]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1505]||(t[1505]=l('mlirContextDetachDiagnosticHandler(context, id)
Detaches an attached diagnostic handler from the context given its identifier.
',3))]),e("details",rr,[e("summary",null,[t[1506]||(t[1506]=e("a",{id:"Reactant.MLIR.API.mlirContextEnableMultithreading-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirContextEnableMultithreading-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextEnableMultithreading")],-1)),t[1507]||(t[1507]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1508]||(t[1508]=l('mlirContextEnableMultithreading(context, enable)
Set threading mode (must be set to false to mlir-print-ir-after-all).
',3))]),e("details",or,[e("summary",null,[t[1509]||(t[1509]=e("a",{id:"Reactant.MLIR.API.mlirContextEqual-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirContextEqual-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextEqual")],-1)),t[1510]||(t[1510]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1511]||(t[1511]=l('mlirContextEqual(ctx1, ctx2)
Checks if two contexts are equal.
',3))]),e("details",dr,[e("summary",null,[t[1512]||(t[1512]=e("a",{id:"Reactant.MLIR.API.mlirContextGetAllowUnregisteredDialects-Tuple{Any}",href:"#Reactant.MLIR.API.mlirContextGetAllowUnregisteredDialects-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextGetAllowUnregisteredDialects")],-1)),t[1513]||(t[1513]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1514]||(t[1514]=l('mlirContextGetAllowUnregisteredDialects(context)
Returns whether the context allows unregistered dialects.
',3))]),e("details",cr,[e("summary",null,[t[1515]||(t[1515]=e("a",{id:"Reactant.MLIR.API.mlirContextGetNumLoadedDialects-Tuple{Any}",href:"#Reactant.MLIR.API.mlirContextGetNumLoadedDialects-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextGetNumLoadedDialects")],-1)),t[1516]||(t[1516]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1517]||(t[1517]=l('mlirContextGetNumLoadedDialects(context)
Returns the number of dialects loaded by the context.
',3))]),e("details",hr,[e("summary",null,[t[1518]||(t[1518]=e("a",{id:"Reactant.MLIR.API.mlirContextGetNumRegisteredDialects-Tuple{Any}",href:"#Reactant.MLIR.API.mlirContextGetNumRegisteredDialects-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextGetNumRegisteredDialects")],-1)),t[1519]||(t[1519]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1520]||(t[1520]=l('mlirContextGetNumRegisteredDialects(context)
Returns the number of dialects registered with the given context. A registered dialect will be loaded if needed by the parser.
',3))]),e("details",ur,[e("summary",null,[t[1521]||(t[1521]=e("a",{id:"Reactant.MLIR.API.mlirContextGetOrLoadDialect-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirContextGetOrLoadDialect-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextGetOrLoadDialect")],-1)),t[1522]||(t[1522]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1523]||(t[1523]=l('mlirContextGetOrLoadDialect(context, name)
Gets the dialect instance owned by the given context using the dialect namespace to identify it, loads (i.e., constructs the instance of) the dialect if necessary. If the dialect is not registered with the context, returns null. Use mlirContextLoad<Name>Dialect to load an unregistered dialect.
',3))]),e("details",br,[e("summary",null,[t[1524]||(t[1524]=e("a",{id:"Reactant.MLIR.API.mlirContextIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirContextIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextIsNull")],-1)),t[1525]||(t[1525]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1526]||(t[1526]=l('mlirContextIsNull(context)
Checks whether a context is null.
',3))]),e("details",gr,[e("summary",null,[t[1527]||(t[1527]=e("a",{id:"Reactant.MLIR.API.mlirContextIsRegisteredOperation-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirContextIsRegisteredOperation-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextIsRegisteredOperation")],-1)),t[1528]||(t[1528]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1529]||(t[1529]=l('mlirContextIsRegisteredOperation(context, name)
Returns whether the given fully-qualified operation (i.e. 'dialect.operation') is registered with the context. This will return true if the dialect is loaded and the operation is registered within the dialect.
',3))]),e("details",yr,[e("summary",null,[t[1530]||(t[1530]=e("a",{id:"Reactant.MLIR.API.mlirContextLoadAllAvailableDialects-Tuple{Any}",href:"#Reactant.MLIR.API.mlirContextLoadAllAvailableDialects-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextLoadAllAvailableDialects")],-1)),t[1531]||(t[1531]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1532]||(t[1532]=l('mlirContextLoadAllAvailableDialects(context)
Eagerly loads all available dialects registered with a context, making them available for use for IR construction.
',3))]),e("details",mr,[e("summary",null,[t[1533]||(t[1533]=e("a",{id:"Reactant.MLIR.API.mlirContextSetAllowUnregisteredDialects-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirContextSetAllowUnregisteredDialects-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextSetAllowUnregisteredDialects")],-1)),t[1534]||(t[1534]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1535]||(t[1535]=l('mlirContextSetAllowUnregisteredDialects(context, allow)
Sets whether unregistered dialects are allowed in this context.
',3))]),e("details",kr,[e("summary",null,[t[1536]||(t[1536]=e("a",{id:"Reactant.MLIR.API.mlirContextSetThreadPool-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirContextSetThreadPool-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirContextSetThreadPool")],-1)),t[1537]||(t[1537]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1538]||(t[1538]=l('mlirContextSetThreadPool(context, threadPool)
Sets the thread pool of the context explicitly, enabling multithreading in the process. This API should be used to avoid re-creating thread pools in long-running applications that perform multiple compilations, see the C++ documentation for MLIRContext for details.
',3))]),e("details",fr,[e("summary",null,[t[1539]||(t[1539]=e("a",{id:"Reactant.MLIR.API.mlirCreateExternalPass-NTuple{9, Any}",href:"#Reactant.MLIR.API.mlirCreateExternalPass-NTuple{9, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirCreateExternalPass")],-1)),t[1540]||(t[1540]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1541]||(t[1541]=l('mlirCreateExternalPass(passID, name, argument, description, opName, nDependentDialects, dependentDialects, callbacks, userData)
Creates an external MlirPass
that calls the supplied callbacks
using the supplied userData
. If opName
is empty, the pass is a generic operation pass. Otherwise it is an operation pass specific to the specified pass name.
mlirDenseArrayGetNumElements(attr)
Get the size of a dense array.
',3))]),e("details",Ir,[e("summary",null,[t[1545]||(t[1545]=e("a",{id:"Reactant.MLIR.API.mlirDenseBoolArrayGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirDenseBoolArrayGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDenseBoolArrayGet")],-1)),t[1546]||(t[1546]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1547]||(t[1547]=l('mlirDenseBoolArrayGet(ctx, size, values)
Create a dense array attribute with the given elements.
',3))]),e("details",jr,[e("summary",null,[t[1548]||(t[1548]=e("a",{id:"Reactant.MLIR.API.mlirDenseBoolArrayGetElement-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirDenseBoolArrayGetElement-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDenseBoolArrayGetElement")],-1)),t[1549]||(t[1549]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1550]||(t[1550]=l('mlirDenseBoolArrayGetElement(attr, pos)
Get an element of a dense array.
',3))]),e("details",Mr,[e("summary",null,[t[1551]||(t[1551]=e("a",{id:"Reactant.MLIR.API.mlirDenseBoolResourceElementsAttrGetValue-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirDenseBoolResourceElementsAttrGetValue-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDenseBoolResourceElementsAttrGetValue")],-1)),t[1552]||(t[1552]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1553]||(t[1553]=l('mlirDenseBoolResourceElementsAttrGetValue(attr, pos)
Returns the pos-th value (flat contiguous indexing) of a specific type contained by the given dense resource elements attribute.
',3))]),e("details",Ar,[e("summary",null,[t[1554]||(t[1554]=e("a",{id:"Reactant.MLIR.API.mlirDenseElementsAttrBoolGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirDenseElementsAttrBoolGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDenseElementsAttrBoolGet")],-1)),t[1555]||(t[1555]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1556]||(t[1556]=l('mlirDenseElementsAttrBoolGet(shapedType, numElements, elements)
Creates a dense elements attribute with the given shaped type from elements of a specific type. Expects the element type of the shaped type to match the data element type.
',3))]),e("details",Lr,[e("summary",null,[t[1557]||(t[1557]=e("a",{id:"Reactant.MLIR.API.mlirDenseElementsAttrGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirDenseElementsAttrGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDenseElementsAttrGet")],-1)),t[1558]||(t[1558]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1559]||(t[1559]=l('mlirDenseElementsAttrGet(shapedType, numElements, elements)
Creates a dense elements attribute with the given Shaped type and elements in the same context as the type.
',3))]),e("details",Er,[e("summary",null,[t[1560]||(t[1560]=e("a",{id:"Reactant.MLIR.API.mlirDenseElementsAttrGetBoolValue-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirDenseElementsAttrGetBoolValue-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDenseElementsAttrGetBoolValue")],-1)),t[1561]||(t[1561]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1562]||(t[1562]=l('mlirDenseElementsAttrGetBoolValue(attr, pos)
Returns the pos-th value (flat contiguous indexing) of a specific type contained by the given dense elements attribute.
',3))]),e("details",vr,[e("summary",null,[t[1563]||(t[1563]=e("a",{id:"Reactant.MLIR.API.mlirDenseElementsAttrGetRawData-Tuple{Any}",href:"#Reactant.MLIR.API.mlirDenseElementsAttrGetRawData-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDenseElementsAttrGetRawData")],-1)),t[1564]||(t[1564]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1565]||(t[1565]=l('mlirDenseElementsAttrGetRawData(attr)
Returns the raw data of the given dense elements attribute.
',3))]),e("details",Tr,[e("summary",null,[t[1566]||(t[1566]=e("a",{id:"Reactant.MLIR.API.mlirDenseElementsAttrGetSplatValue-Tuple{Any}",href:"#Reactant.MLIR.API.mlirDenseElementsAttrGetSplatValue-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDenseElementsAttrGetSplatValue")],-1)),t[1567]||(t[1567]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1568]||(t[1568]=l('mlirDenseElementsAttrGetSplatValue(attr)
Returns the single replicated value (splat) of a specific type contained by the given dense elements attribute.
',3))]),e("details",Cr,[e("summary",null,[t[1569]||(t[1569]=e("a",{id:"Reactant.MLIR.API.mlirDenseElementsAttrIsSplat-Tuple{Any}",href:"#Reactant.MLIR.API.mlirDenseElementsAttrIsSplat-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDenseElementsAttrIsSplat")],-1)),t[1570]||(t[1570]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1571]||(t[1571]=l('mlirDenseElementsAttrIsSplat(attr)
Checks whether the given dense elements attribute contains a single replicated value (splat).
',3))]),e("details",xr,[e("summary",null,[t[1572]||(t[1572]=e("a",{id:"Reactant.MLIR.API.mlirDenseElementsAttrRawBufferGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirDenseElementsAttrRawBufferGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDenseElementsAttrRawBufferGet")],-1)),t[1573]||(t[1573]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1574]||(t[1574]=l('mlirDenseElementsAttrRawBufferGet(shapedType, rawBufferSize, rawBuffer)
Creates a dense elements attribute with the given Shaped type and elements populated from a packed, row-major opaque buffer of contents.
The format of the raw buffer is a densely packed array of values that can be bitcast to the storage format of the element type specified. Types that are not byte aligned will be: - For bitwidth > 1: Rounded up to the next byte. - For bitwidth = 1: Packed into 8bit bytes with bits corresponding to the linear order of the shape type from MSB to LSB, padded to on the right.
A raw buffer of a single element (or for 1-bit, a byte of value 0 or 255) will be interpreted as a splat. User code should be prepared for additional, conformant patterns to be identified as splats in the future.
',5))]),e("details",Fr,[e("summary",null,[t[1575]||(t[1575]=e("a",{id:"Reactant.MLIR.API.mlirDenseElementsAttrReshapeGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirDenseElementsAttrReshapeGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDenseElementsAttrReshapeGet")],-1)),t[1576]||(t[1576]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1577]||(t[1577]=l('mlirDenseElementsAttrReshapeGet(attr, shapedType)
Creates a dense elements attribute that has the same data as the given dense elements attribute and a different shaped type. The new type must have the same total number of elements.
',3))]),e("details",Pr,[e("summary",null,[t[1578]||(t[1578]=e("a",{id:"Reactant.MLIR.API.mlirDenseElementsAttrSplatGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirDenseElementsAttrSplatGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDenseElementsAttrSplatGet")],-1)),t[1579]||(t[1579]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1580]||(t[1580]=l('mlirDenseElementsAttrSplatGet(shapedType, element)
Creates a dense elements attribute with the given Shaped type containing a single replicated element (splat).
',3))]),e("details",Dr,[e("summary",null,[t[1581]||(t[1581]=e("a",{id:"Reactant.MLIR.API.mlirDenseElementsAttrStringGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirDenseElementsAttrStringGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDenseElementsAttrStringGet")],-1)),t[1582]||(t[1582]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1583]||(t[1583]=l('mlirDenseElementsAttrStringGet(shapedType, numElements, strs)
Creates a dense elements attribute with the given shaped type from string elements.
',3))]),e("details",Or,[e("summary",null,[t[1584]||(t[1584]=e("a",{id:"Reactant.MLIR.API.mlirDenseIntOrFPElementsAttrGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirDenseIntOrFPElementsAttrGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDenseIntOrFPElementsAttrGetTypeID")],-1)),t[1585]||(t[1585]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1586]||(t[1586]=l('mlirDenseIntOrFPElementsAttrGetTypeID()
Returns the typeID of an DenseIntOrFPElements attribute.
',3))]),e("details",Br,[e("summary",null,[t[1587]||(t[1587]=e("a",{id:"Reactant.MLIR.API.mlirDiagnosticGetLocation-Tuple{Any}",href:"#Reactant.MLIR.API.mlirDiagnosticGetLocation-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDiagnosticGetLocation")],-1)),t[1588]||(t[1588]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1589]||(t[1589]=l('mlirDiagnosticGetLocation(diagnostic)
Returns the location at which the diagnostic is reported.
',3))]),e("details",Gr,[e("summary",null,[t[1590]||(t[1590]=e("a",{id:"Reactant.MLIR.API.mlirDiagnosticGetNote-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirDiagnosticGetNote-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDiagnosticGetNote")],-1)),t[1591]||(t[1591]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1592]||(t[1592]=l('mlirDiagnosticGetNote(diagnostic, pos)
Returns pos
-th note attached to the diagnostic. Expects pos
to be a valid zero-based index into the list of notes.
mlirDiagnosticGetNumNotes(diagnostic)
Returns the number of notes attached to the diagnostic.
',3))]),e("details",wr,[e("summary",null,[t[1596]||(t[1596]=e("a",{id:"Reactant.MLIR.API.mlirDiagnosticGetSeverity-Tuple{Any}",href:"#Reactant.MLIR.API.mlirDiagnosticGetSeverity-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDiagnosticGetSeverity")],-1)),t[1597]||(t[1597]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1598]||(t[1598]=l('mlirDiagnosticGetSeverity(diagnostic)
Returns the severity of the diagnostic.
',3))]),e("details",Sr,[e("summary",null,[t[1599]||(t[1599]=e("a",{id:"Reactant.MLIR.API.mlirDiagnosticPrint-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirDiagnosticPrint-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDiagnosticPrint")],-1)),t[1600]||(t[1600]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1601]||(t[1601]=l('mlirDiagnosticPrint(diagnostic, callback, userData)
Prints a diagnostic using the provided callback.
',3))]),e("details",Nr,[e("summary",null,[t[1602]||(t[1602]=e("a",{id:"Reactant.MLIR.API.mlirDialectEqual-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirDialectEqual-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDialectEqual")],-1)),t[1603]||(t[1603]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1604]||(t[1604]=l('mlirDialectEqual(dialect1, dialect2)
Checks if two dialects that belong to the same context are equal. Dialects from different contexts will not compare equal.
',3))]),e("details",Vr,[e("summary",null,[t[1605]||(t[1605]=e("a",{id:"Reactant.MLIR.API.mlirDialectGetContext-Tuple{Any}",href:"#Reactant.MLIR.API.mlirDialectGetContext-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDialectGetContext")],-1)),t[1606]||(t[1606]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1607]||(t[1607]=l('mlirDialectGetContext(dialect)
Returns the context that owns the dialect.
',3))]),e("details",qr,[e("summary",null,[t[1608]||(t[1608]=e("a",{id:"Reactant.MLIR.API.mlirDialectGetNamespace-Tuple{Any}",href:"#Reactant.MLIR.API.mlirDialectGetNamespace-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDialectGetNamespace")],-1)),t[1609]||(t[1609]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1610]||(t[1610]=l('mlirDialectGetNamespace(dialect)
Returns the namespace of the given dialect.
',3))]),e("details",Ur,[e("summary",null,[t[1611]||(t[1611]=e("a",{id:"Reactant.MLIR.API.mlirDialectHandleGetNamespace-Tuple{Any}",href:"#Reactant.MLIR.API.mlirDialectHandleGetNamespace-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDialectHandleGetNamespace")],-1)),t[1612]||(t[1612]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1613]||(t[1613]=l('mlirDialectHandleGetNamespace(arg1)
Returns the namespace associated with the provided dialect handle.
',3))]),e("details",Qr,[e("summary",null,[t[1614]||(t[1614]=e("a",{id:"Reactant.MLIR.API.mlirDialectHandleInsertDialect-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirDialectHandleInsertDialect-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDialectHandleInsertDialect")],-1)),t[1615]||(t[1615]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1616]||(t[1616]=l('mlirDialectHandleInsertDialect(arg1, arg2)
Inserts the dialect associated with the provided dialect handle into the provided dialect registry
',3))]),e("details",Wr,[e("summary",null,[t[1617]||(t[1617]=e("a",{id:"Reactant.MLIR.API.mlirDialectHandleLoadDialect-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirDialectHandleLoadDialect-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDialectHandleLoadDialect")],-1)),t[1618]||(t[1618]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1619]||(t[1619]=l('mlirDialectHandleLoadDialect(arg1, arg2)
Loads the dialect associated with the provided dialect handle.
',3))]),e("details",Hr,[e("summary",null,[t[1620]||(t[1620]=e("a",{id:"Reactant.MLIR.API.mlirDialectHandleRegisterDialect-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirDialectHandleRegisterDialect-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDialectHandleRegisterDialect")],-1)),t[1621]||(t[1621]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1622]||(t[1622]=l('mlirDialectHandleRegisterDialect(arg1, arg2)
Registers the dialect associated with the provided dialect handle.
',3))]),e("details",Zr,[e("summary",null,[t[1623]||(t[1623]=e("a",{id:"Reactant.MLIR.API.mlirDialectIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirDialectIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDialectIsNull")],-1)),t[1624]||(t[1624]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1625]||(t[1625]=l('mlirDialectIsNull(dialect)
Checks if the dialect is null.
',3))]),e("details",Jr,[e("summary",null,[t[1626]||(t[1626]=e("a",{id:"Reactant.MLIR.API.mlirDialectRegistryCreate-Tuple{}",href:"#Reactant.MLIR.API.mlirDialectRegistryCreate-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDialectRegistryCreate")],-1)),t[1627]||(t[1627]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1628]||(t[1628]=l('mlirDialectRegistryCreate()
Creates a dialect registry and transfers its ownership to the caller.
',3))]),e("details",Kr,[e("summary",null,[t[1629]||(t[1629]=e("a",{id:"Reactant.MLIR.API.mlirDialectRegistryDestroy-Tuple{Any}",href:"#Reactant.MLIR.API.mlirDialectRegistryDestroy-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDialectRegistryDestroy")],-1)),t[1630]||(t[1630]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1631]||(t[1631]=l('mlirDialectRegistryDestroy(registry)
Takes a dialect registry owned by the caller and destroys it.
',3))]),e("details",$r,[e("summary",null,[t[1632]||(t[1632]=e("a",{id:"Reactant.MLIR.API.mlirDialectRegistryIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirDialectRegistryIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDialectRegistryIsNull")],-1)),t[1633]||(t[1633]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1634]||(t[1634]=l('mlirDialectRegistryIsNull(registry)
Checks if the dialect registry is null.
',3))]),e("details",Xr,[e("summary",null,[t[1635]||(t[1635]=e("a",{id:"Reactant.MLIR.API.mlirDictionaryAttrGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirDictionaryAttrGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDictionaryAttrGet")],-1)),t[1636]||(t[1636]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1637]||(t[1637]=l('mlirDictionaryAttrGet(ctx, numElements, elements)
Creates a dictionary attribute containing the given list of elements in the provided context.
',3))]),e("details",Yr,[e("summary",null,[t[1638]||(t[1638]=e("a",{id:"Reactant.MLIR.API.mlirDictionaryAttrGetElement-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirDictionaryAttrGetElement-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDictionaryAttrGetElement")],-1)),t[1639]||(t[1639]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1640]||(t[1640]=l('mlirDictionaryAttrGetElement(attr, pos)
Returns pos-th element of the given dictionary attribute.
',3))]),e("details",_r,[e("summary",null,[t[1641]||(t[1641]=e("a",{id:"Reactant.MLIR.API.mlirDictionaryAttrGetElementByName-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirDictionaryAttrGetElementByName-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDictionaryAttrGetElementByName")],-1)),t[1642]||(t[1642]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1643]||(t[1643]=l('mlirDictionaryAttrGetElementByName(attr, name)
Returns the dictionary attribute element with the given name or NULL if the given name does not exist in the dictionary.
',3))]),e("details",to,[e("summary",null,[t[1644]||(t[1644]=e("a",{id:"Reactant.MLIR.API.mlirDictionaryAttrGetNumElements-Tuple{Any}",href:"#Reactant.MLIR.API.mlirDictionaryAttrGetNumElements-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDictionaryAttrGetNumElements")],-1)),t[1645]||(t[1645]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1646]||(t[1646]=l('mlirDictionaryAttrGetNumElements(attr)
Returns the number of attributes contained in a dictionary attribute.
',3))]),e("details",eo,[e("summary",null,[t[1647]||(t[1647]=e("a",{id:"Reactant.MLIR.API.mlirDictionaryAttrGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirDictionaryAttrGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDictionaryAttrGetTypeID")],-1)),t[1648]||(t[1648]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1649]||(t[1649]=l('mlirDictionaryAttrGetTypeID()
Returns the typeID of a Dictionary attribute.
',3))]),e("details",so,[e("summary",null,[t[1650]||(t[1650]=e("a",{id:"Reactant.MLIR.API.mlirDisctinctAttrCreate-Tuple{Any}",href:"#Reactant.MLIR.API.mlirDisctinctAttrCreate-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirDisctinctAttrCreate")],-1)),t[1651]||(t[1651]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1652]||(t[1652]=l('mlirDisctinctAttrCreate(referencedAttr)
Creates a DisctinctAttr with the referenced attribute.
',3))]),e("details",ao,[e("summary",null,[t[1653]||(t[1653]=e("a",{id:"Reactant.MLIR.API.mlirElementsAttrGetNumElements-Tuple{Any}",href:"#Reactant.MLIR.API.mlirElementsAttrGetNumElements-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirElementsAttrGetNumElements")],-1)),t[1654]||(t[1654]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1655]||(t[1655]=l('mlirElementsAttrGetNumElements(attr)
Gets the total number of elements in the given elements attribute. In order to iterate over the attribute, obtain its type, which must be a statically shaped type and use its sizes to build a multi-dimensional index.
',3))]),e("details",io,[e("summary",null,[t[1656]||(t[1656]=e("a",{id:"Reactant.MLIR.API.mlirElementsAttrGetValue-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirElementsAttrGetValue-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirElementsAttrGetValue")],-1)),t[1657]||(t[1657]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1658]||(t[1658]=l('mlirElementsAttrGetValue(attr, rank, idxs)
Returns the element at the given rank-dimensional index.
',3))]),e("details",lo,[e("summary",null,[t[1659]||(t[1659]=e("a",{id:"Reactant.MLIR.API.mlirElementsAttrIsValidIndex-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirElementsAttrIsValidIndex-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirElementsAttrIsValidIndex")],-1)),t[1660]||(t[1660]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1661]||(t[1661]=l('mlirElementsAttrIsValidIndex(attr, rank, idxs)
Checks whether the given rank-dimensional index is valid in the given elements attribute.
',3))]),e("details",no,[e("summary",null,[t[1662]||(t[1662]=e("a",{id:"Reactant.MLIR.API.mlirEmitError-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirEmitError-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirEmitError")],-1)),t[1663]||(t[1663]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1664]||(t[1664]=l('mlirEmitError(location, message)
Emits an error at the given location through the diagnostics engine. Used for testing purposes.
',3))]),e("details",po,[e("summary",null,[t[1665]||(t[1665]=e("a",{id:"Reactant.MLIR.API.mlirEnableGlobalDebug-Tuple{Any}",href:"#Reactant.MLIR.API.mlirEnableGlobalDebug-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirEnableGlobalDebug")],-1)),t[1666]||(t[1666]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1667]||(t[1667]=l('mlirEnableGlobalDebug(enable)
Sets the global debugging flag.
',3))]),e("details",ro,[e("summary",null,[t[1668]||(t[1668]=e("a",{id:"Reactant.MLIR.API.mlirExecutionEngineCreate-NTuple{5, Any}",href:"#Reactant.MLIR.API.mlirExecutionEngineCreate-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirExecutionEngineCreate")],-1)),t[1669]||(t[1669]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1670]||(t[1670]=l('mlirExecutionEngineCreate(op, optLevel, numPaths, sharedLibPaths, enableObjectDump)
Creates an ExecutionEngine for the provided ModuleOp. The ModuleOp is expected to be "translatable" to LLVM IR (only contains operations in dialects that implement the LLVMTranslationDialectInterface
). The module ownership stays with the client and can be destroyed as soon as the call returns. optLevel
is the optimization level to be used for transformation and code generation. LLVM passes at optLevel
are run before code generation. The number and array of paths corresponding to shared libraries that will be loaded are specified via numPaths
and sharedLibPaths
respectively. TODO: figure out other options.
mlirExecutionEngineDestroy(jit)
Destroy an ExecutionEngine instance.
',3))]),e("details",co,[e("summary",null,[t[1674]||(t[1674]=e("a",{id:"Reactant.MLIR.API.mlirExecutionEngineDumpToObjectFile-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirExecutionEngineDumpToObjectFile-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirExecutionEngineDumpToObjectFile")],-1)),t[1675]||(t[1675]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1676]||(t[1676]=l('mlirExecutionEngineDumpToObjectFile(jit, fileName)
Dump as an object in fileName
.
mlirExecutionEngineInvokePacked(jit, name, arguments)
Invoke a native function in the execution engine by name with the arguments and result of the invoked function passed as an array of pointers. The function must have been tagged with the llvm.emit\\_c\\_interface
attribute. Returns a failure if the execution fails for any reason (the function name can't be resolved for instance).
mlirExecutionEngineIsNull(jit)
Checks whether an execution engine is null.
',3))]),e("details",bo,[e("summary",null,[t[1683]||(t[1683]=e("a",{id:"Reactant.MLIR.API.mlirExecutionEngineLookup-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirExecutionEngineLookup-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirExecutionEngineLookup")],-1)),t[1684]||(t[1684]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1685]||(t[1685]=l('mlirExecutionEngineLookup(jit, name)
Lookup a native function in the execution engine by name, returns nullptr if the name can't be looked-up.
',3))]),e("details",go,[e("summary",null,[t[1686]||(t[1686]=e("a",{id:"Reactant.MLIR.API.mlirExecutionEngineLookupPacked-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirExecutionEngineLookupPacked-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirExecutionEngineLookupPacked")],-1)),t[1687]||(t[1687]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1688]||(t[1688]=l('mlirExecutionEngineLookupPacked(jit, name)
Lookup the wrapper of the native function in the execution engine with the given name, returns nullptr if the function can't be looked-up.
',3))]),e("details",yo,[e("summary",null,[t[1689]||(t[1689]=e("a",{id:"Reactant.MLIR.API.mlirExecutionEngineRegisterSymbol-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirExecutionEngineRegisterSymbol-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirExecutionEngineRegisterSymbol")],-1)),t[1690]||(t[1690]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1691]||(t[1691]=l('mlirExecutionEngineRegisterSymbol(jit, name, sym)
Register a symbol with the jit: this symbol will be accessible to the jitted code.
',3))]),e("details",mo,[e("summary",null,[t[1692]||(t[1692]=e("a",{id:"Reactant.MLIR.API.mlirExternalPassSignalFailure-Tuple{Any}",href:"#Reactant.MLIR.API.mlirExternalPassSignalFailure-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirExternalPassSignalFailure")],-1)),t[1693]||(t[1693]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1694]||(t[1694]=l('mlirExternalPassSignalFailure(pass)
This signals that the pass has failed. This is only valid to call during the run
callback of MlirExternalPassCallbacks
. See Pass::signalPassFailure().
mlirF16TypeGet(ctx)
Creates an f16 type in the given context. The type is owned by the context.
',3))]),e("details",fo,[e("summary",null,[t[1698]||(t[1698]=e("a",{id:"Reactant.MLIR.API.mlirF32TypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirF32TypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirF32TypeGet")],-1)),t[1699]||(t[1699]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1700]||(t[1700]=l('mlirF32TypeGet(ctx)
Creates an f32 type in the given context. The type is owned by the context.
',3))]),e("details",Ro,[e("summary",null,[t[1701]||(t[1701]=e("a",{id:"Reactant.MLIR.API.mlirF64TypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirF64TypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirF64TypeGet")],-1)),t[1702]||(t[1702]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1703]||(t[1703]=l('mlirF64TypeGet(ctx)
Creates a f64 type in the given context. The type is owned by the context.
',3))]),e("details",Io,[e("summary",null,[t[1704]||(t[1704]=e("a",{id:"Reactant.MLIR.API.mlirFlatSymbolRefAttrGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirFlatSymbolRefAttrGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFlatSymbolRefAttrGet")],-1)),t[1705]||(t[1705]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1706]||(t[1706]=l('mlirFlatSymbolRefAttrGet(ctx, symbol)
Creates a flat symbol reference attribute in the given context referencing a symbol identified by the given string.
',3))]),e("details",jo,[e("summary",null,[t[1707]||(t[1707]=e("a",{id:"Reactant.MLIR.API.mlirFlatSymbolRefAttrGetValue-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFlatSymbolRefAttrGetValue-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFlatSymbolRefAttrGetValue")],-1)),t[1708]||(t[1708]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1709]||(t[1709]=l('mlirFlatSymbolRefAttrGetValue(attr)
Returns the referenced symbol as a string reference. The data remains live as long as the context in which the attribute lives.
',3))]),e("details",Mo,[e("summary",null,[t[1710]||(t[1710]=e("a",{id:"Reactant.MLIR.API.mlirFloat16TypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFloat16TypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat16TypeGetTypeID")],-1)),t[1711]||(t[1711]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1712]||(t[1712]=l('mlirFloat16TypeGetTypeID()
Returns the typeID of an Float16 type.
',3))]),e("details",Ao,[e("summary",null,[t[1713]||(t[1713]=e("a",{id:"Reactant.MLIR.API.mlirFloat32TypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFloat32TypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat32TypeGetTypeID")],-1)),t[1714]||(t[1714]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1715]||(t[1715]=l('mlirFloat32TypeGetTypeID()
Returns the typeID of an Float32 type.
',3))]),e("details",Lo,[e("summary",null,[t[1716]||(t[1716]=e("a",{id:"Reactant.MLIR.API.mlirFloat4E2M1FNTypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFloat4E2M1FNTypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat4E2M1FNTypeGet")],-1)),t[1717]||(t[1717]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1718]||(t[1718]=l('mlirFloat4E2M1FNTypeGet(ctx)
Creates an f4E2M1FN type in the given context. The type is owned by the context.
',3))]),e("details",Eo,[e("summary",null,[t[1719]||(t[1719]=e("a",{id:"Reactant.MLIR.API.mlirFloat4E2M1FNTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFloat4E2M1FNTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat4E2M1FNTypeGetTypeID")],-1)),t[1720]||(t[1720]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1721]||(t[1721]=l('mlirFloat4E2M1FNTypeGetTypeID()
Returns the typeID of an Float4E2M1FN type.
',3))]),e("details",vo,[e("summary",null,[t[1722]||(t[1722]=e("a",{id:"Reactant.MLIR.API.mlirFloat64TypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFloat64TypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat64TypeGetTypeID")],-1)),t[1723]||(t[1723]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1724]||(t[1724]=l('mlirFloat64TypeGetTypeID()
Returns the typeID of an Float64 type.
',3))]),e("details",To,[e("summary",null,[t[1725]||(t[1725]=e("a",{id:"Reactant.MLIR.API.mlirFloat6E2M3FNTypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFloat6E2M3FNTypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat6E2M3FNTypeGet")],-1)),t[1726]||(t[1726]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1727]||(t[1727]=l('mlirFloat6E2M3FNTypeGet(ctx)
Creates an f6E2M3FN type in the given context. The type is owned by the context.
',3))]),e("details",Co,[e("summary",null,[t[1728]||(t[1728]=e("a",{id:"Reactant.MLIR.API.mlirFloat6E2M3FNTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFloat6E2M3FNTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat6E2M3FNTypeGetTypeID")],-1)),t[1729]||(t[1729]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1730]||(t[1730]=l('mlirFloat6E2M3FNTypeGetTypeID()
Returns the typeID of an Float6E2M3FN type.
',3))]),e("details",xo,[e("summary",null,[t[1731]||(t[1731]=e("a",{id:"Reactant.MLIR.API.mlirFloat6E3M2FNTypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFloat6E3M2FNTypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat6E3M2FNTypeGet")],-1)),t[1732]||(t[1732]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1733]||(t[1733]=l('mlirFloat6E3M2FNTypeGet(ctx)
Creates an f6E3M2FN type in the given context. The type is owned by the context.
',3))]),e("details",Fo,[e("summary",null,[t[1734]||(t[1734]=e("a",{id:"Reactant.MLIR.API.mlirFloat6E3M2FNTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFloat6E3M2FNTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat6E3M2FNTypeGetTypeID")],-1)),t[1735]||(t[1735]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1736]||(t[1736]=l('mlirFloat6E3M2FNTypeGetTypeID()
Returns the typeID of an Float6E3M2FN type.
',3))]),e("details",Po,[e("summary",null,[t[1737]||(t[1737]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E3M4TypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFloat8E3M4TypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E3M4TypeGet")],-1)),t[1738]||(t[1738]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1739]||(t[1739]=l('mlirFloat8E3M4TypeGet(ctx)
Creates an f8E3M4 type in the given context. The type is owned by the context.
',3))]),e("details",Do,[e("summary",null,[t[1740]||(t[1740]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E3M4TypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFloat8E3M4TypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E3M4TypeGetTypeID")],-1)),t[1741]||(t[1741]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1742]||(t[1742]=l('mlirFloat8E3M4TypeGetTypeID()
Returns the typeID of an Float8E3M4 type.
',3))]),e("details",Oo,[e("summary",null,[t[1743]||(t[1743]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E4M3B11FNUZTypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFloat8E4M3B11FNUZTypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E4M3B11FNUZTypeGet")],-1)),t[1744]||(t[1744]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1745]||(t[1745]=l('mlirFloat8E4M3B11FNUZTypeGet(ctx)
Creates an f8E4M3B11FNUZ type in the given context. The type is owned by the context.
',3))]),e("details",Bo,[e("summary",null,[t[1746]||(t[1746]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E4M3B11FNUZTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFloat8E4M3B11FNUZTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E4M3B11FNUZTypeGetTypeID")],-1)),t[1747]||(t[1747]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1748]||(t[1748]=l('mlirFloat8E4M3B11FNUZTypeGetTypeID()
Returns the typeID of an Float8E4M3B11FNUZ type.
',3))]),e("details",Go,[e("summary",null,[t[1749]||(t[1749]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E4M3FNTypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFloat8E4M3FNTypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E4M3FNTypeGet")],-1)),t[1750]||(t[1750]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1751]||(t[1751]=l('mlirFloat8E4M3FNTypeGet(ctx)
Creates an f8E4M3FN type in the given context. The type is owned by the context.
',3))]),e("details",zo,[e("summary",null,[t[1752]||(t[1752]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E4M3FNTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFloat8E4M3FNTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E4M3FNTypeGetTypeID")],-1)),t[1753]||(t[1753]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1754]||(t[1754]=l('mlirFloat8E4M3FNTypeGetTypeID()
Returns the typeID of an Float8E4M3FN type.
',3))]),e("details",wo,[e("summary",null,[t[1755]||(t[1755]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E4M3FNUZTypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFloat8E4M3FNUZTypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E4M3FNUZTypeGet")],-1)),t[1756]||(t[1756]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1757]||(t[1757]=l('mlirFloat8E4M3FNUZTypeGet(ctx)
Creates an f8E4M3FNUZ type in the given context. The type is owned by the context.
',3))]),e("details",So,[e("summary",null,[t[1758]||(t[1758]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E4M3FNUZTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFloat8E4M3FNUZTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E4M3FNUZTypeGetTypeID")],-1)),t[1759]||(t[1759]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1760]||(t[1760]=l('mlirFloat8E4M3FNUZTypeGetTypeID()
Returns the typeID of an Float8E4M3FNUZ type.
',3))]),e("details",No,[e("summary",null,[t[1761]||(t[1761]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E4M3TypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFloat8E4M3TypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E4M3TypeGet")],-1)),t[1762]||(t[1762]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1763]||(t[1763]=l('mlirFloat8E4M3TypeGet(ctx)
Creates an f8E4M3 type in the given context. The type is owned by the context.
',3))]),e("details",Vo,[e("summary",null,[t[1764]||(t[1764]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E4M3TypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFloat8E4M3TypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E4M3TypeGetTypeID")],-1)),t[1765]||(t[1765]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1766]||(t[1766]=l('mlirFloat8E4M3TypeGetTypeID()
Returns the typeID of an Float8E4M3 type.
',3))]),e("details",qo,[e("summary",null,[t[1767]||(t[1767]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E5M2FNUZTypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFloat8E5M2FNUZTypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E5M2FNUZTypeGet")],-1)),t[1768]||(t[1768]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1769]||(t[1769]=l('mlirFloat8E5M2FNUZTypeGet(ctx)
Creates an f8E5M2FNUZ type in the given context. The type is owned by the context.
',3))]),e("details",Uo,[e("summary",null,[t[1770]||(t[1770]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E5M2FNUZTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFloat8E5M2FNUZTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E5M2FNUZTypeGetTypeID")],-1)),t[1771]||(t[1771]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1772]||(t[1772]=l('mlirFloat8E5M2FNUZTypeGetTypeID()
Returns the typeID of an Float8E5M2FNUZ type.
',3))]),e("details",Qo,[e("summary",null,[t[1773]||(t[1773]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E5M2TypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFloat8E5M2TypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E5M2TypeGet")],-1)),t[1774]||(t[1774]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1775]||(t[1775]=l('mlirFloat8E5M2TypeGet(ctx)
Creates an f8E5M2 type in the given context. The type is owned by the context.
',3))]),e("details",Wo,[e("summary",null,[t[1776]||(t[1776]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E5M2TypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFloat8E5M2TypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E5M2TypeGetTypeID")],-1)),t[1777]||(t[1777]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1778]||(t[1778]=l('mlirFloat8E5M2TypeGetTypeID()
Returns the typeID of an Float8E5M2 type.
',3))]),e("details",Ho,[e("summary",null,[t[1779]||(t[1779]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E8M0FNUTypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFloat8E8M0FNUTypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E8M0FNUTypeGet")],-1)),t[1780]||(t[1780]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1781]||(t[1781]=l('mlirFloat8E8M0FNUTypeGet(ctx)
Creates an f8E8M0FNU type in the given context. The type is owned by the context.
',3))]),e("details",Zo,[e("summary",null,[t[1782]||(t[1782]=e("a",{id:"Reactant.MLIR.API.mlirFloat8E8M0FNUTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFloat8E8M0FNUTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloat8E8M0FNUTypeGetTypeID")],-1)),t[1783]||(t[1783]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1784]||(t[1784]=l('mlirFloat8E8M0FNUTypeGetTypeID()
Returns the typeID of an Float8E8M0FNU type.
',3))]),e("details",Jo,[e("summary",null,[t[1785]||(t[1785]=e("a",{id:"Reactant.MLIR.API.mlirFloatAttrDoubleGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirFloatAttrDoubleGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloatAttrDoubleGet")],-1)),t[1786]||(t[1786]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1787]||(t[1787]=l('mlirFloatAttrDoubleGet(ctx, type, value)
Creates a floating point attribute in the given context with the given double value and double-precision FP semantics.
',3))]),e("details",Ko,[e("summary",null,[t[1788]||(t[1788]=e("a",{id:"Reactant.MLIR.API.mlirFloatAttrDoubleGetChecked-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirFloatAttrDoubleGetChecked-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloatAttrDoubleGetChecked")],-1)),t[1789]||(t[1789]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1790]||(t[1790]=l('mlirFloatAttrDoubleGetChecked(loc, type, value)
Same as "mlirFloatAttrDoubleGet
", but if the type is not valid for a construction of a FloatAttr, returns a null MlirAttribute
.
mlirFloatAttrGetTypeID()
Returns the typeID of a Float attribute.
',3))]),e("details",Xo,[e("summary",null,[t[1794]||(t[1794]=e("a",{id:"Reactant.MLIR.API.mlirFloatAttrGetValueDouble-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFloatAttrGetValueDouble-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloatAttrGetValueDouble")],-1)),t[1795]||(t[1795]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1796]||(t[1796]=l('mlirFloatAttrGetValueDouble(attr)
Returns the value stored in the given floating point attribute, interpreting the value as double.
',3))]),e("details",Yo,[e("summary",null,[t[1797]||(t[1797]=e("a",{id:"Reactant.MLIR.API.mlirFloatTF32TypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFloatTF32TypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloatTF32TypeGetTypeID")],-1)),t[1798]||(t[1798]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1799]||(t[1799]=l('mlirFloatTF32TypeGetTypeID()
Returns the typeID of a TF32 type.
',3))]),e("details",_o,[e("summary",null,[t[1800]||(t[1800]=e("a",{id:"Reactant.MLIR.API.mlirFloatTypeGetWidth-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFloatTypeGetWidth-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFloatTypeGetWidth")],-1)),t[1801]||(t[1801]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1802]||(t[1802]=l('mlirFloatTypeGetWidth(type)
Returns the bitwidth of a floating-point type.
',3))]),e("details",td,[e("summary",null,[t[1803]||(t[1803]=e("a",{id:"Reactant.MLIR.API.mlirFreezeRewritePattern-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFreezeRewritePattern-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFreezeRewritePattern")],-1)),t[1804]||(t[1804]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1805]||(t[1805]=l('mlirFreezeRewritePattern(op)
FrozenRewritePatternSet API
',3))]),e("details",ed,[e("summary",null,[t[1806]||(t[1806]=e("a",{id:"Reactant.MLIR.API.mlirFuncSetArgAttr-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirFuncSetArgAttr-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFuncSetArgAttr")],-1)),t[1807]||(t[1807]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1808]||(t[1808]=l('mlirFuncSetArgAttr(op, pos, name, attr)
Sets the argument attribute 'name' of an argument at index 'pos'. Asserts that the operation is a FuncOp.
',3))]),e("details",sd,[e("summary",null,[t[1809]||(t[1809]=e("a",{id:"Reactant.MLIR.API.mlirFunctionTypeGet-NTuple{5, Any}",href:"#Reactant.MLIR.API.mlirFunctionTypeGet-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFunctionTypeGet")],-1)),t[1810]||(t[1810]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1811]||(t[1811]=l('mlirFunctionTypeGet(ctx, numInputs, inputs, numResults, results)
Creates a function type, mapping a list of input types to result types.
',3))]),e("details",ad,[e("summary",null,[t[1812]||(t[1812]=e("a",{id:"Reactant.MLIR.API.mlirFunctionTypeGetInput-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirFunctionTypeGetInput-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFunctionTypeGetInput")],-1)),t[1813]||(t[1813]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1814]||(t[1814]=l('mlirFunctionTypeGetInput(type, pos)
Returns the pos-th input type.
',3))]),e("details",id,[e("summary",null,[t[1815]||(t[1815]=e("a",{id:"Reactant.MLIR.API.mlirFunctionTypeGetNumInputs-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFunctionTypeGetNumInputs-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFunctionTypeGetNumInputs")],-1)),t[1816]||(t[1816]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1817]||(t[1817]=l('mlirFunctionTypeGetNumInputs(type)
Returns the number of input types.
',3))]),e("details",ld,[e("summary",null,[t[1818]||(t[1818]=e("a",{id:"Reactant.MLIR.API.mlirFunctionTypeGetNumResults-Tuple{Any}",href:"#Reactant.MLIR.API.mlirFunctionTypeGetNumResults-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFunctionTypeGetNumResults")],-1)),t[1819]||(t[1819]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1820]||(t[1820]=l('mlirFunctionTypeGetNumResults(type)
Returns the number of result types.
',3))]),e("details",nd,[e("summary",null,[t[1821]||(t[1821]=e("a",{id:"Reactant.MLIR.API.mlirFunctionTypeGetResult-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirFunctionTypeGetResult-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFunctionTypeGetResult")],-1)),t[1822]||(t[1822]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1823]||(t[1823]=l('mlirFunctionTypeGetResult(type, pos)
Returns the pos-th result type.
',3))]),e("details",pd,[e("summary",null,[t[1824]||(t[1824]=e("a",{id:"Reactant.MLIR.API.mlirFunctionTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirFunctionTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirFunctionTypeGetTypeID")],-1)),t[1825]||(t[1825]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1826]||(t[1826]=l('mlirFunctionTypeGetTypeID()
Returns the typeID of an Function type.
',3))]),e("details",rd,[e("summary",null,[t[1827]||(t[1827]=e("a",{id:"Reactant.MLIR.API.mlirIRRewriterCreate-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIRRewriterCreate-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIRRewriterCreate")],-1)),t[1828]||(t[1828]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1829]||(t[1829]=l('mlirIRRewriterCreate(context)
Create an IRRewriter and transfer ownership to the caller.
',3))]),e("details",od,[e("summary",null,[t[1830]||(t[1830]=e("a",{id:"Reactant.MLIR.API.mlirIRRewriterCreateFromOp-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIRRewriterCreateFromOp-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIRRewriterCreateFromOp")],-1)),t[1831]||(t[1831]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1832]||(t[1832]=l('mlirIRRewriterCreateFromOp(op)
Create an IRRewriter and transfer ownership to the caller. Additionally set the insertion point before the operation.
',3))]),e("details",dd,[e("summary",null,[t[1833]||(t[1833]=e("a",{id:"Reactant.MLIR.API.mlirIRRewriterDestroy-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIRRewriterDestroy-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIRRewriterDestroy")],-1)),t[1834]||(t[1834]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1835]||(t[1835]=l('mlirIRRewriterDestroy(rewriter)
Takes an IRRewriter owned by the caller and destroys it. It is the responsibility of the user to only pass an IRRewriter class.
',3))]),e("details",cd,[e("summary",null,[t[1836]||(t[1836]=e("a",{id:"Reactant.MLIR.API.mlirIdentifierEqual-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirIdentifierEqual-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIdentifierEqual")],-1)),t[1837]||(t[1837]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1838]||(t[1838]=l('mlirIdentifierEqual(ident, other)
Checks whether two identifiers are the same.
',3))]),e("details",hd,[e("summary",null,[t[1839]||(t[1839]=e("a",{id:"Reactant.MLIR.API.mlirIdentifierGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirIdentifierGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIdentifierGet")],-1)),t[1840]||(t[1840]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1841]||(t[1841]=l('mlirIdentifierGet(context, str)
Gets an identifier with the given string value.
',3))]),e("details",ud,[e("summary",null,[t[1842]||(t[1842]=e("a",{id:"Reactant.MLIR.API.mlirIdentifierGetContext-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIdentifierGetContext-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIdentifierGetContext")],-1)),t[1843]||(t[1843]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1844]||(t[1844]=l('mlirIdentifierGetContext(arg1)
Returns the context associated with this identifier
',3))]),e("details",bd,[e("summary",null,[t[1845]||(t[1845]=e("a",{id:"Reactant.MLIR.API.mlirIdentifierStr-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIdentifierStr-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIdentifierStr")],-1)),t[1846]||(t[1846]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1847]||(t[1847]=l('mlirIdentifierStr(ident)
Gets the string value of the identifier.
',3))]),e("details",gd,[e("summary",null,[t[1848]||(t[1848]=e("a",{id:"Reactant.MLIR.API.mlirIndexTypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIndexTypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIndexTypeGet")],-1)),t[1849]||(t[1849]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1850]||(t[1850]=l('mlirIndexTypeGet(ctx)
Creates an index type in the given context. The type is owned by the context.
',3))]),e("details",yd,[e("summary",null,[t[1851]||(t[1851]=e("a",{id:"Reactant.MLIR.API.mlirIndexTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirIndexTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIndexTypeGetTypeID")],-1)),t[1852]||(t[1852]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1853]||(t[1853]=l('mlirIndexTypeGetTypeID()
Returns the typeID of an Index type.
',3))]),e("details",md,[e("summary",null,[t[1854]||(t[1854]=e("a",{id:"Reactant.MLIR.API.mlirInferShapedTypeOpInterfaceInferReturnTypes-NTuple{11, Any}",href:"#Reactant.MLIR.API.mlirInferShapedTypeOpInterfaceInferReturnTypes-NTuple{11, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirInferShapedTypeOpInterfaceInferReturnTypes")],-1)),t[1855]||(t[1855]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1856]||(t[1856]=l('mlirInferShapedTypeOpInterfaceInferReturnTypes(opName, context, location, nOperands, operands, attributes, properties, nRegions, regions, callback, userData)
Infers the return shaped type components of the operation. Calls callback
with the types of inferred arguments on success. Returns failure otherwise.
mlirInferShapedTypeOpInterfaceTypeID()
Returns the interface TypeID of the InferShapedTypeOpInterface.
',3))]),e("details",fd,[e("summary",null,[t[1860]||(t[1860]=e("a",{id:"Reactant.MLIR.API.mlirInferTypeOpInterfaceInferReturnTypes-NTuple{11, Any}",href:"#Reactant.MLIR.API.mlirInferTypeOpInterfaceInferReturnTypes-NTuple{11, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirInferTypeOpInterfaceInferReturnTypes")],-1)),t[1861]||(t[1861]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1862]||(t[1862]=l('mlirInferTypeOpInterfaceInferReturnTypes(opName, context, location, nOperands, operands, attributes, properties, nRegions, regions, callback, userData)
Infers the return types of the operation identified by its canonical given the arguments that will be supplied to its generic builder. Calls callback
with the types of inferred arguments, potentially several times, on success. Returns failure otherwise.
mlirInferTypeOpInterfaceTypeID()
Returns the interface TypeID of the InferTypeOpInterface.
',3))]),e("details",Id,[e("summary",null,[t[1866]||(t[1866]=e("a",{id:"Reactant.MLIR.API.mlirIntegerAttrGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirIntegerAttrGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerAttrGet")],-1)),t[1867]||(t[1867]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1868]||(t[1868]=l('mlirIntegerAttrGet(type, value)
Creates an integer attribute of the given type with the given integer value.
',3))]),e("details",jd,[e("summary",null,[t[1869]||(t[1869]=e("a",{id:"Reactant.MLIR.API.mlirIntegerAttrGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirIntegerAttrGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerAttrGetTypeID")],-1)),t[1870]||(t[1870]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1871]||(t[1871]=l('mlirIntegerAttrGetTypeID()
Returns the typeID of an Integer attribute.
',3))]),e("details",Md,[e("summary",null,[t[1872]||(t[1872]=e("a",{id:"Reactant.MLIR.API.mlirIntegerAttrGetValueInt-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerAttrGetValueInt-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerAttrGetValueInt")],-1)),t[1873]||(t[1873]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1874]||(t[1874]=l('mlirIntegerAttrGetValueInt(attr)
Returns the value stored in the given integer attribute, assuming the value is of signless type and fits into a signed 64-bit integer.
',3))]),e("details",Ad,[e("summary",null,[t[1875]||(t[1875]=e("a",{id:"Reactant.MLIR.API.mlirIntegerAttrGetValueSInt-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerAttrGetValueSInt-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerAttrGetValueSInt")],-1)),t[1876]||(t[1876]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1877]||(t[1877]=l('mlirIntegerAttrGetValueSInt(attr)
Returns the value stored in the given integer attribute, assuming the value is of signed type and fits into a signed 64-bit integer.
',3))]),e("details",Ld,[e("summary",null,[t[1878]||(t[1878]=e("a",{id:"Reactant.MLIR.API.mlirIntegerAttrGetValueUInt-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerAttrGetValueUInt-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerAttrGetValueUInt")],-1)),t[1879]||(t[1879]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1880]||(t[1880]=l('mlirIntegerAttrGetValueUInt(attr)
Returns the value stored in the given integer attribute, assuming the value is of unsigned type and fits into an unsigned 64-bit integer.
',3))]),e("details",Ed,[e("summary",null,[t[1881]||(t[1881]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetAttrGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerSetAttrGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetAttrGet")],-1)),t[1882]||(t[1882]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1883]||(t[1883]=l('mlirIntegerSetAttrGet(set)
Creates an integer set attribute wrapping the given set. The attribute belongs to the same context as the integer set.
',3))]),e("details",vd,[e("summary",null,[t[1884]||(t[1884]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetAttrGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirIntegerSetAttrGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetAttrGetTypeID")],-1)),t[1885]||(t[1885]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1886]||(t[1886]=l('mlirIntegerSetAttrGetTypeID()
Returns the typeID of an IntegerSet attribute.
',3))]),e("details",Td,[e("summary",null,[t[1887]||(t[1887]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetAttrGetValue-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerSetAttrGetValue-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetAttrGetValue")],-1)),t[1888]||(t[1888]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1889]||(t[1889]=l('mlirIntegerSetAttrGetValue(attr)
Returns the integer set wrapped in the given integer set attribute.
',3))]),e("details",Cd,[e("summary",null,[t[1890]||(t[1890]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetDump-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerSetDump-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetDump")],-1)),t[1891]||(t[1891]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1892]||(t[1892]=l('mlirIntegerSetDump(set)
Prints an integer set to the standard error stream.
',3))]),e("details",xd,[e("summary",null,[t[1893]||(t[1893]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetEmptyGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirIntegerSetEmptyGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetEmptyGet")],-1)),t[1894]||(t[1894]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1895]||(t[1895]=l('mlirIntegerSetEmptyGet(context, numDims, numSymbols)
Gets or creates a new canonically empty integer set with the give number of dimensions and symbols in the given context.
',3))]),e("details",Fd,[e("summary",null,[t[1896]||(t[1896]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetEqual-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirIntegerSetEqual-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetEqual")],-1)),t[1897]||(t[1897]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1898]||(t[1898]=l('mlirIntegerSetEqual(s1, s2)
Checks if two integer set objects are equal. This is a "shallow" comparison of two objects. Only the sets with some small number of constraints are uniqued and compare equal here. Set objects that represent the same integer set with different constraints may be considered non-equal by this check. Set difference followed by an (expensive) emptiness check should be used to check equivalence of the underlying integer sets.
',3))]),e("details",Pd,[e("summary",null,[t[1899]||(t[1899]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetGet-NTuple{6, Any}",href:"#Reactant.MLIR.API.mlirIntegerSetGet-NTuple{6, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetGet")],-1)),t[1900]||(t[1900]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1901]||(t[1901]=l('mlirIntegerSetGet(context, numDims, numSymbols, numConstraints, constraints, eqFlags)
Gets or creates a new integer set in the given context. The set is defined by a list of affine constraints, with the given number of input dimensions and symbols, which are treated as either equalities (eqFlags is 1) or inequalities (eqFlags is 0). Both constraints
and eqFlags
are expected to point to at least numConstraint
consecutive values.
mlirIntegerSetGetConstraint(set, pos)
Returns pos
-th constraint of the set.
mlirIntegerSetGetContext(set)
Gets the context in which the given integer set lives.
',3))]),e("details",Bd,[e("summary",null,[t[1908]||(t[1908]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetGetNumConstraints-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerSetGetNumConstraints-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetGetNumConstraints")],-1)),t[1909]||(t[1909]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1910]||(t[1910]=l('mlirIntegerSetGetNumConstraints(set)
Returns the number of constraints (equalities + inequalities) in the given set.
',3))]),e("details",Gd,[e("summary",null,[t[1911]||(t[1911]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetGetNumDims-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerSetGetNumDims-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetGetNumDims")],-1)),t[1912]||(t[1912]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1913]||(t[1913]=l('mlirIntegerSetGetNumDims(set)
Returns the number of dimensions in the given set.
',3))]),e("details",zd,[e("summary",null,[t[1914]||(t[1914]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetGetNumEqualities-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerSetGetNumEqualities-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetGetNumEqualities")],-1)),t[1915]||(t[1915]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1916]||(t[1916]=l('mlirIntegerSetGetNumEqualities(set)
Returns the number of equalities in the given set.
',3))]),e("details",wd,[e("summary",null,[t[1917]||(t[1917]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetGetNumInequalities-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerSetGetNumInequalities-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetGetNumInequalities")],-1)),t[1918]||(t[1918]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1919]||(t[1919]=l('mlirIntegerSetGetNumInequalities(set)
Returns the number of inequalities in the given set.
',3))]),e("details",Sd,[e("summary",null,[t[1920]||(t[1920]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetGetNumInputs-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerSetGetNumInputs-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetGetNumInputs")],-1)),t[1921]||(t[1921]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1922]||(t[1922]=l('mlirIntegerSetGetNumInputs(set)
Returns the number of inputs (dimensions + symbols) in the given set.
',3))]),e("details",Nd,[e("summary",null,[t[1923]||(t[1923]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetGetNumSymbols-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerSetGetNumSymbols-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetGetNumSymbols")],-1)),t[1924]||(t[1924]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1925]||(t[1925]=l('mlirIntegerSetGetNumSymbols(set)
Returns the number of symbols in the given set.
',3))]),e("details",Vd,[e("summary",null,[t[1926]||(t[1926]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetIsCanonicalEmpty-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerSetIsCanonicalEmpty-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetIsCanonicalEmpty")],-1)),t[1927]||(t[1927]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1928]||(t[1928]=l('mlirIntegerSetIsCanonicalEmpty(set)
Checks whether the given set is a canonical empty set, e.g., the set returned by mlirIntegerSetEmptyGet
.
mlirIntegerSetIsConstraintEq(set, pos)
Returns true
of the pos
-th constraint of the set is an equality constraint, false
otherwise.
mlirIntegerSetIsNull(set)
Checks whether an integer set is a null object.
',3))]),e("details",Qd,[e("summary",null,[t[1935]||(t[1935]=e("a",{id:"Reactant.MLIR.API.mlirIntegerSetPrint-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirIntegerSetPrint-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerSetPrint")],-1)),t[1936]||(t[1936]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1937]||(t[1937]=l('mlirIntegerSetPrint(set, callback, userData)
Prints an integer set by sending chunks of the string representation and forwarding userData to
callback`. Note that the callback may be called several times with consecutive chunks of the string.
mlirIntegerSetReplaceGet(set, dimReplacements, symbolReplacements, numResultDims, numResultSymbols)
Gets or creates a new integer set in which the values and dimensions of the given set are replaced with the given affine expressions. dimReplacements
and symbolReplacements
are expected to point to at least as many consecutive expressions as the given set has dimensions and symbols, respectively. The new set will have numResultDims
and numResultSymbols
dimensions and symbols, respectively.
mlirIntegerTypeGet(ctx, bitwidth)
Creates a signless integer type of the given bitwidth in the context. The type is owned by the context.
',3))]),e("details",Zd,[e("summary",null,[t[1944]||(t[1944]=e("a",{id:"Reactant.MLIR.API.mlirIntegerTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirIntegerTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerTypeGetTypeID")],-1)),t[1945]||(t[1945]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1946]||(t[1946]=l('mlirIntegerTypeGetTypeID()
Returns the typeID of an Integer type.
',3))]),e("details",Jd,[e("summary",null,[t[1947]||(t[1947]=e("a",{id:"Reactant.MLIR.API.mlirIntegerTypeGetWidth-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerTypeGetWidth-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerTypeGetWidth")],-1)),t[1948]||(t[1948]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1949]||(t[1949]=l('mlirIntegerTypeGetWidth(type)
Returns the bitwidth of an integer type.
',3))]),e("details",Kd,[e("summary",null,[t[1950]||(t[1950]=e("a",{id:"Reactant.MLIR.API.mlirIntegerTypeIsSigned-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerTypeIsSigned-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerTypeIsSigned")],-1)),t[1951]||(t[1951]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1952]||(t[1952]=l('mlirIntegerTypeIsSigned(type)
Checks whether the given integer type is signed.
',3))]),e("details",$d,[e("summary",null,[t[1953]||(t[1953]=e("a",{id:"Reactant.MLIR.API.mlirIntegerTypeIsSignless-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerTypeIsSignless-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerTypeIsSignless")],-1)),t[1954]||(t[1954]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1955]||(t[1955]=l('mlirIntegerTypeIsSignless(type)
Checks whether the given integer type is signless.
',3))]),e("details",Xd,[e("summary",null,[t[1956]||(t[1956]=e("a",{id:"Reactant.MLIR.API.mlirIntegerTypeIsUnsigned-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIntegerTypeIsUnsigned-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerTypeIsUnsigned")],-1)),t[1957]||(t[1957]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1958]||(t[1958]=l('mlirIntegerTypeIsUnsigned(type)
Checks whether the given integer type is unsigned.
',3))]),e("details",Yd,[e("summary",null,[t[1959]||(t[1959]=e("a",{id:"Reactant.MLIR.API.mlirIntegerTypeSignedGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirIntegerTypeSignedGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerTypeSignedGet")],-1)),t[1960]||(t[1960]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1961]||(t[1961]=l('mlirIntegerTypeSignedGet(ctx, bitwidth)
Creates a signed integer type of the given bitwidth in the context. The type is owned by the context.
',3))]),e("details",_d,[e("summary",null,[t[1962]||(t[1962]=e("a",{id:"Reactant.MLIR.API.mlirIntegerTypeUnsignedGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirIntegerTypeUnsignedGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIntegerTypeUnsignedGet")],-1)),t[1963]||(t[1963]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1964]||(t[1964]=l('mlirIntegerTypeUnsignedGet(ctx, bitwidth)
Creates an unsigned integer type of the given bitwidth in the context. The type is owned by the context.
',3))]),e("details",tc,[e("summary",null,[t[1965]||(t[1965]=e("a",{id:"Reactant.MLIR.API.mlirIsCurrentDebugType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirIsCurrentDebugType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirIsCurrentDebugType")],-1)),t[1966]||(t[1966]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1967]||(t[1967]=l('mlirIsCurrentDebugType(type)
Checks if type
is set as the current debug type.
mlirIsGlobalDebugEnabled()
Retuns true
if the global debugging flag is set, false otherwise.
mlirLLVMArrayTypeGet(elementType, numElements)
Creates an llvm.array type.
',3))]),e("details",ac,[e("summary",null,[t[1974]||(t[1974]=e("a",{id:"Reactant.MLIR.API.mlirLLVMCConvAttrGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirLLVMCConvAttrGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMCConvAttrGet")],-1)),t[1975]||(t[1975]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1976]||(t[1976]=l('mlirLLVMCConvAttrGet(ctx, cconv)
Creates a LLVM CConv attribute.
',3))]),e("details",ic,[e("summary",null,[t[1977]||(t[1977]=e("a",{id:"Reactant.MLIR.API.mlirLLVMComdatAttrGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirLLVMComdatAttrGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMComdatAttrGet")],-1)),t[1978]||(t[1978]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1979]||(t[1979]=l('mlirLLVMComdatAttrGet(ctx, comdat)
Creates a LLVM Comdat attribute.
',3))]),e("details",lc,[e("summary",null,[t[1980]||(t[1980]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDIAnnotationAttrGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirLLVMDIAnnotationAttrGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDIAnnotationAttrGet")],-1)),t[1981]||(t[1981]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1982]||(t[1982]=l('mlirLLVMDIAnnotationAttrGet(ctx, name, value)
Creates a LLVM DIAnnotation attribute.
',3))]),e("details",nc,[e("summary",null,[t[1983]||(t[1983]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDIBasicTypeAttrGet-NTuple{5, Any}",href:"#Reactant.MLIR.API.mlirLLVMDIBasicTypeAttrGet-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDIBasicTypeAttrGet")],-1)),t[1984]||(t[1984]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1985]||(t[1985]=l('mlirLLVMDIBasicTypeAttrGet(ctx, tag, name, sizeInBits, encoding)
Creates a LLVM DIBasicType attribute.
',3))]),e("details",pc,[e("summary",null,[t[1986]||(t[1986]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDICompileUnitAttrGet-NTuple{8, Any}",href:"#Reactant.MLIR.API.mlirLLVMDICompileUnitAttrGet-NTuple{8, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDICompileUnitAttrGet")],-1)),t[1987]||(t[1987]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1988]||(t[1988]=l('mlirLLVMDICompileUnitAttrGet(ctx, id, sourceLanguage, file, producer, isOptimized, emissionKind, nameTableKind)
Creates a LLVM DICompileUnit attribute.
',3))]),e("details",rc,[e("summary",null,[t[1989]||(t[1989]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDICompositeTypeAttrGet-NTuple{18, Any}",href:"#Reactant.MLIR.API.mlirLLVMDICompositeTypeAttrGet-NTuple{18, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDICompositeTypeAttrGet")],-1)),t[1990]||(t[1990]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1991]||(t[1991]=l('mlirLLVMDICompositeTypeAttrGet(ctx, recId, isRecSelf, tag, name, file, line, scope, baseType, flags, sizeInBits, alignInBits, nElements, elements, dataLocation, rank, allocated, associated)
Creates a LLVM DICompositeType attribute.
',3))]),e("details",oc,[e("summary",null,[t[1992]||(t[1992]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDICompositeTypeAttrGetRecSelf-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMDICompositeTypeAttrGetRecSelf-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDICompositeTypeAttrGetRecSelf")],-1)),t[1993]||(t[1993]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1994]||(t[1994]=l('mlirLLVMDICompositeTypeAttrGetRecSelf(recId)
Creates a self-referencing LLVM DICompositeType attribute.
',3))]),e("details",dc,[e("summary",null,[t[1995]||(t[1995]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDIDerivedTypeAttrGet-NTuple{9, Any}",href:"#Reactant.MLIR.API.mlirLLVMDIDerivedTypeAttrGet-NTuple{9, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDIDerivedTypeAttrGet")],-1)),t[1996]||(t[1996]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[1997]||(t[1997]=l('mlirLLVMDIDerivedTypeAttrGet(ctx, tag, name, baseType, sizeInBits, alignInBits, offsetInBits, dwarfAddressSpace, extraData)
Creates a LLVM DIDerivedType attribute. Note that dwarfAddressSpace
is an optional field, where MLIR_CAPI_DWARF_ADDRESS_SPACE_NULL
indicates null and non-negative values indicate a value present.
mlirLLVMDIDerivedTypeAttrGetBaseType(diDerivedType)
Gets the base type from a LLVM DIDerivedType attribute.
',3))]),e("details",hc,[e("summary",null,[t[2001]||(t[2001]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDIExpressionAttrGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirLLVMDIExpressionAttrGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDIExpressionAttrGet")],-1)),t[2002]||(t[2002]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2003]||(t[2003]=l('mlirLLVMDIExpressionAttrGet(ctx, nOperations, operations)
Creates a LLVM DIExpression attribute.
',3))]),e("details",uc,[e("summary",null,[t[2004]||(t[2004]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDIExpressionElemAttrGet-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirLLVMDIExpressionElemAttrGet-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDIExpressionElemAttrGet")],-1)),t[2005]||(t[2005]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2006]||(t[2006]=l('mlirLLVMDIExpressionElemAttrGet(ctx, opcode, nArguments, arguments)
Creates a LLVM DIExpressionElem attribute.
',3))]),e("details",bc,[e("summary",null,[t[2007]||(t[2007]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDIFileAttrGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirLLVMDIFileAttrGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDIFileAttrGet")],-1)),t[2008]||(t[2008]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2009]||(t[2009]=l('mlirLLVMDIFileAttrGet(ctx, name, directory)
Creates a LLVM DIFileAttr attribute.
',3))]),e("details",gc,[e("summary",null,[t[2010]||(t[2010]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDIFlagsAttrGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirLLVMDIFlagsAttrGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDIFlagsAttrGet")],-1)),t[2011]||(t[2011]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2012]||(t[2012]=l('mlirLLVMDIFlagsAttrGet(ctx, value)
Creates a LLVM DIFlags attribute.
',3))]),e("details",yc,[e("summary",null,[t[2013]||(t[2013]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDIImportedEntityAttrGet-NTuple{9, Any}",href:"#Reactant.MLIR.API.mlirLLVMDIImportedEntityAttrGet-NTuple{9, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDIImportedEntityAttrGet")],-1)),t[2014]||(t[2014]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2015]||(t[2015]=l('mlirLLVMDIImportedEntityAttrGet(ctx, tag, scope, entity, file, line, name, nElements, elements)
Creates a LLVM DIImportedEntityAttr attribute.
',3))]),e("details",mc,[e("summary",null,[t[2016]||(t[2016]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDILexicalBlockAttrGet-NTuple{5, Any}",href:"#Reactant.MLIR.API.mlirLLVMDILexicalBlockAttrGet-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDILexicalBlockAttrGet")],-1)),t[2017]||(t[2017]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2018]||(t[2018]=l('mlirLLVMDILexicalBlockAttrGet(ctx, scope, file, line, column)
Creates a LLVM DILexicalBlock attribute.
',3))]),e("details",kc,[e("summary",null,[t[2019]||(t[2019]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDILexicalBlockFileAttrGet-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirLLVMDILexicalBlockFileAttrGet-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDILexicalBlockFileAttrGet")],-1)),t[2020]||(t[2020]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2021]||(t[2021]=l('mlirLLVMDILexicalBlockFileAttrGet(ctx, scope, file, discriminator)
Creates a LLVM DILexicalBlockFile attribute.
',3))]),e("details",fc,[e("summary",null,[t[2022]||(t[2022]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDILocalVariableAttrGet-NTuple{9, Any}",href:"#Reactant.MLIR.API.mlirLLVMDILocalVariableAttrGet-NTuple{9, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDILocalVariableAttrGet")],-1)),t[2023]||(t[2023]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2024]||(t[2024]=l('mlirLLVMDILocalVariableAttrGet(ctx, scope, name, diFile, line, arg, alignInBits, diType, flags)
Creates a LLVM DILocalVariableAttr attribute.
',3))]),e("details",Rc,[e("summary",null,[t[2025]||(t[2025]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDIModuleAttrGet-NTuple{9, Any}",href:"#Reactant.MLIR.API.mlirLLVMDIModuleAttrGet-NTuple{9, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDIModuleAttrGet")],-1)),t[2026]||(t[2026]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2027]||(t[2027]=l('mlirLLVMDIModuleAttrGet(ctx, file, scope, name, configMacros, includePath, apinotes, line, isDecl)
Creates a LLVM DIModuleAttr attribute.
',3))]),e("details",Ic,[e("summary",null,[t[2028]||(t[2028]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDIModuleAttrGetScope-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMDIModuleAttrGetScope-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDIModuleAttrGetScope")],-1)),t[2029]||(t[2029]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2030]||(t[2030]=l('mlirLLVMDIModuleAttrGetScope(diModule)
Gets the scope of this DIModuleAttr.
',3))]),e("details",jc,[e("summary",null,[t[2031]||(t[2031]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDINullTypeAttrGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMDINullTypeAttrGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDINullTypeAttrGet")],-1)),t[2032]||(t[2032]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2033]||(t[2033]=l('mlirLLVMDINullTypeAttrGet(ctx)
Creates a LLVM DINullType attribute.
',3))]),e("details",Mc,[e("summary",null,[t[2034]||(t[2034]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGet-NTuple{17, Any}",href:"#Reactant.MLIR.API.mlirLLVMDISubprogramAttrGet-NTuple{17, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGet")],-1)),t[2035]||(t[2035]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2036]||(t[2036]=l('mlirLLVMDISubprogramAttrGet(ctx, recId, isRecSelf, id, compileUnit, scope, name, linkageName, file, line, scopeLine, subprogramFlags, type, nRetainedNodes, retainedNodes, nAnnotations, annotations)
Creates a LLVM DISubprogramAttr attribute.
',3))]),e("details",Ac,[e("summary",null,[t[2037]||(t[2037]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetCompileUnit-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetCompileUnit-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetCompileUnit")],-1)),t[2038]||(t[2038]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2039]||(t[2039]=l('mlirLLVMDISubprogramAttrGetCompileUnit(diSubprogram)
Gets the compile unit from this DISubprogram.
',3))]),e("details",Lc,[e("summary",null,[t[2040]||(t[2040]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetFile-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetFile-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetFile")],-1)),t[2041]||(t[2041]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2042]||(t[2042]=l('mlirLLVMDISubprogramAttrGetFile(diSubprogram)
Gets the file from this DISubprogramAttr.
',3))]),e("details",Ec,[e("summary",null,[t[2043]||(t[2043]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetLine-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetLine-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetLine")],-1)),t[2044]||(t[2044]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2045]||(t[2045]=l('mlirLLVMDISubprogramAttrGetLine(diSubprogram)
Gets the line from this DISubprogramAttr.
',3))]),e("details",vc,[e("summary",null,[t[2046]||(t[2046]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetRecSelf-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetRecSelf-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetRecSelf")],-1)),t[2047]||(t[2047]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2048]||(t[2048]=l('mlirLLVMDISubprogramAttrGetRecSelf(recId)
Creates a self-referencing LLVM DISubprogramAttr attribute.
',3))]),e("details",Tc,[e("summary",null,[t[2049]||(t[2049]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetScope-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetScope-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetScope")],-1)),t[2050]||(t[2050]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2051]||(t[2051]=l('mlirLLVMDISubprogramAttrGetScope(diSubprogram)
Gets the scope from this DISubprogramAttr.
',3))]),e("details",Cc,[e("summary",null,[t[2052]||(t[2052]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetScopeLine-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetScopeLine-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetScopeLine")],-1)),t[2053]||(t[2053]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2054]||(t[2054]=l('mlirLLVMDISubprogramAttrGetScopeLine(diSubprogram)
Gets the scope line from this DISubprogram.
',3))]),e("details",xc,[e("summary",null,[t[2055]||(t[2055]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDISubprogramAttrGetType")],-1)),t[2056]||(t[2056]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2057]||(t[2057]=l('mlirLLVMDISubprogramAttrGetType(diSubprogram)
Gets the type from this DISubprogramAttr.
',3))]),e("details",Fc,[e("summary",null,[t[2058]||(t[2058]=e("a",{id:"Reactant.MLIR.API.mlirLLVMDISubroutineTypeAttrGet-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirLLVMDISubroutineTypeAttrGet-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMDISubroutineTypeAttrGet")],-1)),t[2059]||(t[2059]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2060]||(t[2060]=l('mlirLLVMDISubroutineTypeAttrGet(ctx, callingConvention, nTypes, types)
Creates a LLVM DISubroutineTypeAttr attribute.
',3))]),e("details",Pc,[e("summary",null,[t[2061]||(t[2061]=e("a",{id:"Reactant.MLIR.API.mlirLLVMFunctionTypeGet-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirLLVMFunctionTypeGet-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMFunctionTypeGet")],-1)),t[2062]||(t[2062]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2063]||(t[2063]=l('mlirLLVMFunctionTypeGet(resultType, nArgumentTypes, argumentTypes, isVarArg)
Creates an llvm.func type.
',3))]),e("details",Dc,[e("summary",null,[t[2064]||(t[2064]=e("a",{id:"Reactant.MLIR.API.mlirLLVMLinkageAttrGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirLLVMLinkageAttrGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMLinkageAttrGet")],-1)),t[2065]||(t[2065]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2066]||(t[2066]=l('mlirLLVMLinkageAttrGet(ctx, linkage)
Creates a LLVM Linkage attribute.
',3))]),e("details",Oc,[e("summary",null,[t[2067]||(t[2067]=e("a",{id:"Reactant.MLIR.API.mlirLLVMPointerTypeGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirLLVMPointerTypeGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMPointerTypeGet")],-1)),t[2068]||(t[2068]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2069]||(t[2069]=l('mlirLLVMPointerTypeGet(ctx, addressSpace)
Creates an llvm.ptr type.
',3))]),e("details",Bc,[e("summary",null,[t[2070]||(t[2070]=e("a",{id:"Reactant.MLIR.API.mlirLLVMPointerTypeGetAddressSpace-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMPointerTypeGetAddressSpace-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMPointerTypeGetAddressSpace")],-1)),t[2071]||(t[2071]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2072]||(t[2072]=l('mlirLLVMPointerTypeGetAddressSpace(pointerType)
Returns address space of llvm.ptr
',3))]),e("details",Gc,[e("summary",null,[t[2073]||(t[2073]=e("a",{id:"Reactant.MLIR.API.mlirLLVMStructTypeGetElementType-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirLLVMStructTypeGetElementType-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMStructTypeGetElementType")],-1)),t[2074]||(t[2074]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2075]||(t[2075]=l('mlirLLVMStructTypeGetElementType(type, position)
Returns the positions
-th field of the struct. Asserts if the struct is opaque, not yet initialized or if the position is out of range.
mlirLLVMStructTypeGetIdentifier(type)
Returns the identifier of the identified struct. Asserts that the struct is identified, i.e., not literal.
',3))]),e("details",wc,[e("summary",null,[t[2079]||(t[2079]=e("a",{id:"Reactant.MLIR.API.mlirLLVMStructTypeGetNumElementTypes-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMStructTypeGetNumElementTypes-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMStructTypeGetNumElementTypes")],-1)),t[2080]||(t[2080]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2081]||(t[2081]=l('mlirLLVMStructTypeGetNumElementTypes(type)
Returns the number of fields in the struct. Asserts if the struct is opaque or not yet initialized.
',3))]),e("details",Sc,[e("summary",null,[t[2082]||(t[2082]=e("a",{id:"Reactant.MLIR.API.mlirLLVMStructTypeIdentifiedGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirLLVMStructTypeIdentifiedGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMStructTypeIdentifiedGet")],-1)),t[2083]||(t[2083]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2084]||(t[2084]=l('mlirLLVMStructTypeIdentifiedGet(ctx, name)
Creates an LLVM identified struct type with no body. If a struct type with this name already exists in the context, returns that type. Use mlirLLVMStructTypeIdentifiedNewGet
to create a fresh struct type, potentially renaming it. The body should be set separatelty by calling mlirLLVMStructTypeSetBody
, if it isn't set already.
mlirLLVMStructTypeIdentifiedNewGet(ctx, name, nFieldTypes, fieldTypes, isPacked)
Creates an LLVM identified struct type with no body and a name starting with the given prefix. If a struct with the exact name as the given prefix already exists, appends an unspecified suffix to the name so that the name is unique in context.
',3))]),e("details",Vc,[e("summary",null,[t[2088]||(t[2088]=e("a",{id:"Reactant.MLIR.API.mlirLLVMStructTypeIsLiteral-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMStructTypeIsLiteral-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMStructTypeIsLiteral")],-1)),t[2089]||(t[2089]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2090]||(t[2090]=l('mlirLLVMStructTypeIsLiteral(type)
Returns true
if the type is a literal (unnamed) LLVM struct type.
mlirLLVMStructTypeIsOpaque(type)
Returns true
is the struct is explicitly opaque (will not have a body) or uninitialized (will eventually have a body).
mlirLLVMStructTypeIsPacked(type)
Returns true
if the struct is packed.
mlirLLVMStructTypeLiteralGet(ctx, nFieldTypes, fieldTypes, isPacked)
Creates an LLVM literal (unnamed) struct type. This may assert if the fields have types not compatible with the LLVM dialect. For a graceful failure, use the checked version.
',3))]),e("details",Wc,[e("summary",null,[t[2100]||(t[2100]=e("a",{id:"Reactant.MLIR.API.mlirLLVMStructTypeLiteralGetChecked-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirLLVMStructTypeLiteralGetChecked-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMStructTypeLiteralGetChecked")],-1)),t[2101]||(t[2101]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2102]||(t[2102]=l('mlirLLVMStructTypeLiteralGetChecked(loc, nFieldTypes, fieldTypes, isPacked)
Creates an LLVM literal (unnamed) struct type if possible. Emits a diagnostic at the given location and returns null otherwise.
',3))]),e("details",Hc,[e("summary",null,[t[2103]||(t[2103]=e("a",{id:"Reactant.MLIR.API.mlirLLVMStructTypeSetBody-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirLLVMStructTypeSetBody-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMStructTypeSetBody")],-1)),t[2104]||(t[2104]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2105]||(t[2105]=l('mlirLLVMStructTypeSetBody(structType, nFieldTypes, fieldTypes, isPacked)
Sets the body of the identified struct if it hasn't been set yet. Returns whether the operation was successful.
',3))]),e("details",Zc,[e("summary",null,[t[2106]||(t[2106]=e("a",{id:"Reactant.MLIR.API.mlirLLVMVoidTypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLLVMVoidTypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLLVMVoidTypeGet")],-1)),t[2107]||(t[2107]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2108]||(t[2108]=l('mlirLLVMVoidTypeGet(ctx)
Creates an llmv.void type.
',3))]),e("details",Jc,[e("summary",null,[t[2109]||(t[2109]=e("a",{id:"Reactant.MLIR.API.mlirLinalgFillBuiltinNamedOpRegion-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLinalgFillBuiltinNamedOpRegion-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLinalgFillBuiltinNamedOpRegion")],-1)),t[2110]||(t[2110]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2111]||(t[2111]=l('mlirLinalgFillBuiltinNamedOpRegion(mlirOp)
Apply the special region builder for the builtin named Linalg op. Assert that mlirOp
is a builtin named Linalg op.
mlirLlvmThreadPoolCreate()
Create an LLVM thread pool. This is reexported here to avoid directly pulling in the LLVM headers directly.
',3))]),e("details",$c,[e("summary",null,[t[2115]||(t[2115]=e("a",{id:"Reactant.MLIR.API.mlirLlvmThreadPoolDestroy-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLlvmThreadPoolDestroy-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLlvmThreadPoolDestroy")],-1)),t[2116]||(t[2116]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2117]||(t[2117]=l('mlirLlvmThreadPoolDestroy(pool)
Destroy an LLVM thread pool.
',3))]),e("details",Xc,[e("summary",null,[t[2118]||(t[2118]=e("a",{id:"Reactant.MLIR.API.mlirLoadIRDLDialects-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLoadIRDLDialects-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLoadIRDLDialects")],-1)),t[2119]||(t[2119]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2120]||(t[2120]=l('mlirLoadIRDLDialects(_module)
Loads all IRDL dialects in the provided module, registering the dialects in the module's associated context.
',3))]),e("details",Yc,[e("summary",null,[t[2121]||(t[2121]=e("a",{id:"Reactant.MLIR.API.mlirLocationCallSiteGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirLocationCallSiteGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLocationCallSiteGet")],-1)),t[2122]||(t[2122]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2123]||(t[2123]=l('mlirLocationCallSiteGet(callee, caller)
Creates a call site location with a callee and a caller.
',3))]),e("details",_c,[e("summary",null,[t[2124]||(t[2124]=e("a",{id:"Reactant.MLIR.API.mlirLocationEqual-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirLocationEqual-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLocationEqual")],-1)),t[2125]||(t[2125]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2126]||(t[2126]=l('mlirLocationEqual(l1, l2)
Checks if two locations are equal.
',3))]),e("details",th,[e("summary",null,[t[2127]||(t[2127]=e("a",{id:"Reactant.MLIR.API.mlirLocationFileLineColGet-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirLocationFileLineColGet-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLocationFileLineColGet")],-1)),t[2128]||(t[2128]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2129]||(t[2129]=l('mlirLocationFileLineColGet(context, filename, line, col)
Creates an File/Line/Column location owned by the given context.
',3))]),e("details",eh,[e("summary",null,[t[2130]||(t[2130]=e("a",{id:"Reactant.MLIR.API.mlirLocationFromAttribute-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLocationFromAttribute-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLocationFromAttribute")],-1)),t[2131]||(t[2131]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2132]||(t[2132]=l('mlirLocationFromAttribute(attribute)
Creates a location from a location attribute.
',3))]),e("details",sh,[e("summary",null,[t[2133]||(t[2133]=e("a",{id:"Reactant.MLIR.API.mlirLocationFusedGet-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirLocationFusedGet-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLocationFusedGet")],-1)),t[2134]||(t[2134]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2135]||(t[2135]=l('mlirLocationFusedGet(ctx, nLocations, locations, metadata)
Creates a fused location with an array of locations and metadata.
',3))]),e("details",ah,[e("summary",null,[t[2136]||(t[2136]=e("a",{id:"Reactant.MLIR.API.mlirLocationGetAttribute-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLocationGetAttribute-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLocationGetAttribute")],-1)),t[2137]||(t[2137]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2138]||(t[2138]=l('mlirLocationGetAttribute(location)
Returns the underlying location attribute of this location.
',3))]),e("details",ih,[e("summary",null,[t[2139]||(t[2139]=e("a",{id:"Reactant.MLIR.API.mlirLocationGetContext-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLocationGetContext-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLocationGetContext")],-1)),t[2140]||(t[2140]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2141]||(t[2141]=l('mlirLocationGetContext(location)
Gets the context that a location was created with.
',3))]),e("details",lh,[e("summary",null,[t[2142]||(t[2142]=e("a",{id:"Reactant.MLIR.API.mlirLocationIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLocationIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLocationIsNull")],-1)),t[2143]||(t[2143]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2144]||(t[2144]=l('mlirLocationIsNull(location)
Checks if the location is null.
',3))]),e("details",nh,[e("summary",null,[t[2145]||(t[2145]=e("a",{id:"Reactant.MLIR.API.mlirLocationNameGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirLocationNameGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLocationNameGet")],-1)),t[2146]||(t[2146]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2147]||(t[2147]=l('mlirLocationNameGet(context, name, childLoc)
Creates a name location owned by the given context. Providing null location for childLoc is allowed and if childLoc is null location, then the behavior is the same as having unknown child location.
',3))]),e("details",ph,[e("summary",null,[t[2148]||(t[2148]=e("a",{id:"Reactant.MLIR.API.mlirLocationPrint-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirLocationPrint-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLocationPrint")],-1)),t[2149]||(t[2149]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2150]||(t[2150]=l('mlirLocationPrint(location, callback, userData)
Prints a location by sending chunks of the string representation and forwarding userData to
callback`. Note that the callback may be called several times with consecutive chunks of the string.
mlirLocationUnknownGet(context)
Creates a location with unknown position owned by the given context.
',3))]),e("details",oh,[e("summary",null,[t[2154]||(t[2154]=e("a",{id:"Reactant.MLIR.API.mlirLogicalResultFailure-Tuple{}",href:"#Reactant.MLIR.API.mlirLogicalResultFailure-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLogicalResultFailure")],-1)),t[2155]||(t[2155]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2156]||(t[2156]=l('mlirLogicalResultFailure()
Creates a logical result representing a failure.
',3))]),e("details",dh,[e("summary",null,[t[2157]||(t[2157]=e("a",{id:"Reactant.MLIR.API.mlirLogicalResultIsFailure-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLogicalResultIsFailure-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLogicalResultIsFailure")],-1)),t[2158]||(t[2158]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2159]||(t[2159]=l('mlirLogicalResultIsFailure(res)
Checks if the given logical result represents a failure.
',3))]),e("details",ch,[e("summary",null,[t[2160]||(t[2160]=e("a",{id:"Reactant.MLIR.API.mlirLogicalResultIsSuccess-Tuple{Any}",href:"#Reactant.MLIR.API.mlirLogicalResultIsSuccess-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLogicalResultIsSuccess")],-1)),t[2161]||(t[2161]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2162]||(t[2162]=l('mlirLogicalResultIsSuccess(res)
Checks if the given logical result represents a success.
',3))]),e("details",hh,[e("summary",null,[t[2163]||(t[2163]=e("a",{id:"Reactant.MLIR.API.mlirLogicalResultSuccess-Tuple{}",href:"#Reactant.MLIR.API.mlirLogicalResultSuccess-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirLogicalResultSuccess")],-1)),t[2164]||(t[2164]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2165]||(t[2165]=l('mlirLogicalResultSuccess()
Creates a logical result representing a success.
',3))]),e("details",uh,[e("summary",null,[t[2166]||(t[2166]=e("a",{id:"Reactant.MLIR.API.mlirMemRefTypeContiguousGet-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirMemRefTypeContiguousGet-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirMemRefTypeContiguousGet")],-1)),t[2167]||(t[2167]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2168]||(t[2168]=l('mlirMemRefTypeContiguousGet(elementType, rank, shape, memorySpace)
Creates a MemRef type with the given rank, shape, memory space and element type in the same context as the element type. The type has no affine maps, i.e. represents a default row-major contiguous memref. The type is owned by the context.
',3))]),e("details",bh,[e("summary",null,[t[2169]||(t[2169]=e("a",{id:"Reactant.MLIR.API.mlirMemRefTypeContiguousGetChecked-NTuple{5, Any}",href:"#Reactant.MLIR.API.mlirMemRefTypeContiguousGetChecked-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirMemRefTypeContiguousGetChecked")],-1)),t[2170]||(t[2170]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2171]||(t[2171]=l('mlirMemRefTypeContiguousGetChecked(loc, elementType, rank, shape, memorySpace)
Same as "mlirMemRefTypeContiguousGet
" but returns a nullptr wrapping MlirType
on illegal arguments, emitting appropriate diagnostics.
mlirMemRefTypeGet(elementType, rank, shape, layout, memorySpace)
Creates a MemRef type with the given rank and shape, a potentially empty list of affine layout maps, the given memory space and element type, in the same context as element type. The type is owned by the context.
',3))]),e("details",yh,[e("summary",null,[t[2175]||(t[2175]=e("a",{id:"Reactant.MLIR.API.mlirMemRefTypeGetAffineMap-Tuple{Any}",href:"#Reactant.MLIR.API.mlirMemRefTypeGetAffineMap-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirMemRefTypeGetAffineMap")],-1)),t[2176]||(t[2176]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2177]||(t[2177]=l('mlirMemRefTypeGetAffineMap(type)
Returns the affine map of the given MemRef type.
',3))]),e("details",mh,[e("summary",null,[t[2178]||(t[2178]=e("a",{id:"Reactant.MLIR.API.mlirMemRefTypeGetChecked-NTuple{6, Any}",href:"#Reactant.MLIR.API.mlirMemRefTypeGetChecked-NTuple{6, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirMemRefTypeGetChecked")],-1)),t[2179]||(t[2179]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2180]||(t[2180]=l('mlirMemRefTypeGetChecked(loc, elementType, rank, shape, layout, memorySpace)
Same as "mlirMemRefTypeGet
" but returns a nullptr-wrapping MlirType
o illegal arguments, emitting appropriate diagnostics.
mlirMemRefTypeGetLayout(type)
Returns the layout of the given MemRef type.
',3))]),e("details",fh,[e("summary",null,[t[2184]||(t[2184]=e("a",{id:"Reactant.MLIR.API.mlirMemRefTypeGetMemorySpace-Tuple{Any}",href:"#Reactant.MLIR.API.mlirMemRefTypeGetMemorySpace-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirMemRefTypeGetMemorySpace")],-1)),t[2185]||(t[2185]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2186]||(t[2186]=l('mlirMemRefTypeGetMemorySpace(type)
Returns the memory space of the given MemRef type.
',3))]),e("details",Rh,[e("summary",null,[t[2187]||(t[2187]=e("a",{id:"Reactant.MLIR.API.mlirMemRefTypeGetStridesAndOffset-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirMemRefTypeGetStridesAndOffset-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirMemRefTypeGetStridesAndOffset")],-1)),t[2188]||(t[2188]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2189]||(t[2189]=l('mlirMemRefTypeGetStridesAndOffset(type, strides, offset)
Returns the strides of the MemRef if the layout map is in strided form. Both strides and offset are out params. strides must point to pre-allocated memory of length equal to the rank of the memref.
',3))]),e("details",Ih,[e("summary",null,[t[2190]||(t[2190]=e("a",{id:"Reactant.MLIR.API.mlirMemRefTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirMemRefTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirMemRefTypeGetTypeID")],-1)),t[2191]||(t[2191]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2192]||(t[2192]=l('mlirMemRefTypeGetTypeID()
Returns the typeID of an MemRef type.
',3))]),e("details",jh,[e("summary",null,[t[2193]||(t[2193]=e("a",{id:"Reactant.MLIR.API.mlirMergeSymbolsIntoFromClone-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirMergeSymbolsIntoFromClone-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirMergeSymbolsIntoFromClone")],-1)),t[2194]||(t[2194]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2195]||(t[2195]=l('mlirMergeSymbolsIntoFromClone(target, other)
Merge the symbols from other
into target
, potentially renaming them to avoid conflicts. Private symbols may be renamed during the merge, public symbols must have at most one declaration. A name conflict in public symbols is reported as an error before returning a failure.
Note that this clones the other
operation unlike the C++ counterpart that takes ownership.
mlirModuleCreateEmpty(location)
Creates a new, empty module and transfers ownership to the caller.
',3))]),e("details",Ah,[e("summary",null,[t[2199]||(t[2199]=e("a",{id:"Reactant.MLIR.API.mlirModuleCreateParse-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirModuleCreateParse-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirModuleCreateParse")],-1)),t[2200]||(t[2200]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2201]||(t[2201]=l('mlirModuleCreateParse(context, _module)
Parses a module from the string and transfers ownership to the caller.
',3))]),e("details",Lh,[e("summary",null,[t[2202]||(t[2202]=e("a",{id:"Reactant.MLIR.API.mlirModuleDestroy-Tuple{Any}",href:"#Reactant.MLIR.API.mlirModuleDestroy-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirModuleDestroy")],-1)),t[2203]||(t[2203]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2204]||(t[2204]=l('mlirModuleDestroy(_module)
Takes a module owned by the caller and deletes it.
',3))]),e("details",Eh,[e("summary",null,[t[2205]||(t[2205]=e("a",{id:"Reactant.MLIR.API.mlirModuleFromOperation-Tuple{Any}",href:"#Reactant.MLIR.API.mlirModuleFromOperation-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirModuleFromOperation")],-1)),t[2206]||(t[2206]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2207]||(t[2207]=l('mlirModuleFromOperation(op)
Views the generic operation as a module. The returned module is null when the input operation was not a ModuleOp.
',3))]),e("details",vh,[e("summary",null,[t[2208]||(t[2208]=e("a",{id:"Reactant.MLIR.API.mlirModuleGetBody-Tuple{Any}",href:"#Reactant.MLIR.API.mlirModuleGetBody-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirModuleGetBody")],-1)),t[2209]||(t[2209]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2210]||(t[2210]=l('mlirModuleGetBody(_module)
Gets the body of the module, i.e. the only block it contains.
',3))]),e("details",Th,[e("summary",null,[t[2211]||(t[2211]=e("a",{id:"Reactant.MLIR.API.mlirModuleGetContext-Tuple{Any}",href:"#Reactant.MLIR.API.mlirModuleGetContext-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirModuleGetContext")],-1)),t[2212]||(t[2212]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2213]||(t[2213]=l('mlirModuleGetContext(_module)
Gets the context that a module was created with.
',3))]),e("details",Ch,[e("summary",null,[t[2214]||(t[2214]=e("a",{id:"Reactant.MLIR.API.mlirModuleGetOperation-Tuple{Any}",href:"#Reactant.MLIR.API.mlirModuleGetOperation-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirModuleGetOperation")],-1)),t[2215]||(t[2215]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2216]||(t[2216]=l('mlirModuleGetOperation(_module)
Views the module as a generic operation.
',3))]),e("details",xh,[e("summary",null,[t[2217]||(t[2217]=e("a",{id:"Reactant.MLIR.API.mlirModuleIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirModuleIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirModuleIsNull")],-1)),t[2218]||(t[2218]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2219]||(t[2219]=l('mlirModuleIsNull(_module)
Checks whether a module is null.
',3))]),e("details",Fh,[e("summary",null,[t[2220]||(t[2220]=e("a",{id:"Reactant.MLIR.API.mlirNamedAttributeGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirNamedAttributeGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirNamedAttributeGet")],-1)),t[2221]||(t[2221]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2222]||(t[2222]=l('mlirNamedAttributeGet(name, attr)
Associates an attribute with the name. Takes ownership of neither.
',3))]),e("details",Ph,[e("summary",null,[t[2223]||(t[2223]=e("a",{id:"Reactant.MLIR.API.mlirNoneTypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirNoneTypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirNoneTypeGet")],-1)),t[2224]||(t[2224]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2225]||(t[2225]=l('mlirNoneTypeGet(ctx)
Creates a None type in the given context. The type is owned by the context.
',3))]),e("details",Dh,[e("summary",null,[t[2226]||(t[2226]=e("a",{id:"Reactant.MLIR.API.mlirNoneTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirNoneTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirNoneTypeGetTypeID")],-1)),t[2227]||(t[2227]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2228]||(t[2228]=l('mlirNoneTypeGetTypeID()
Returns the typeID of an None type.
',3))]),e("details",Oh,[e("summary",null,[t[2229]||(t[2229]=e("a",{id:"Reactant.MLIR.API.mlirOpOperandGetNextUse-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOpOperandGetNextUse-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpOperandGetNextUse")],-1)),t[2230]||(t[2230]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2231]||(t[2231]=l('mlirOpOperandGetNextUse(opOperand)
Returns an op operand representing the next use of the value, or a null op operand if there is no next use.
',3))]),e("details",Bh,[e("summary",null,[t[2232]||(t[2232]=e("a",{id:"Reactant.MLIR.API.mlirOpOperandGetOperandNumber-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOpOperandGetOperandNumber-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpOperandGetOperandNumber")],-1)),t[2233]||(t[2233]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2234]||(t[2234]=l('mlirOpOperandGetOperandNumber(opOperand)
Returns the operand number of an op operand.
',3))]),e("details",Gh,[e("summary",null,[t[2235]||(t[2235]=e("a",{id:"Reactant.MLIR.API.mlirOpOperandGetOwner-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOpOperandGetOwner-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpOperandGetOwner")],-1)),t[2236]||(t[2236]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2237]||(t[2237]=l('mlirOpOperandGetOwner(opOperand)
Returns the owner operation of an op operand.
',3))]),e("details",zh,[e("summary",null,[t[2238]||(t[2238]=e("a",{id:"Reactant.MLIR.API.mlirOpOperandGetValue-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOpOperandGetValue-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpOperandGetValue")],-1)),t[2239]||(t[2239]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2240]||(t[2240]=l('mlirOpOperandGetValue(opOperand)
Returns the value of an op operand.
',3))]),e("details",wh,[e("summary",null,[t[2241]||(t[2241]=e("a",{id:"Reactant.MLIR.API.mlirOpOperandIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOpOperandIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpOperandIsNull")],-1)),t[2242]||(t[2242]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2243]||(t[2243]=l('mlirOpOperandIsNull(opOperand)
Returns whether the op operand is null.
',3))]),e("details",Sh,[e("summary",null,[t[2244]||(t[2244]=e("a",{id:"Reactant.MLIR.API.mlirOpPassManagerAddOwnedPass-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOpPassManagerAddOwnedPass-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpPassManagerAddOwnedPass")],-1)),t[2245]||(t[2245]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2246]||(t[2246]=l('mlirOpPassManagerAddOwnedPass(passManager, pass)
Add a pass and transfer ownership to the provided mlirOpPassManager. If the pass is not a generic operation pass or matching the type of the provided PassManager, a new OpPassManager is implicitly nested under the provided PassManager.
',3))]),e("details",Nh,[e("summary",null,[t[2247]||(t[2247]=e("a",{id:"Reactant.MLIR.API.mlirOpPassManagerAddPipeline-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirOpPassManagerAddPipeline-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpPassManagerAddPipeline")],-1)),t[2248]||(t[2248]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2249]||(t[2249]=l('mlirOpPassManagerAddPipeline(passManager, pipelineElements, callback, userData)
Parse a sequence of textual MLIR pass pipeline elements and add them to the provided OpPassManager. If parsing fails an error message is reported using the provided callback.
',3))]),e("details",Vh,[e("summary",null,[t[2250]||(t[2250]=e("a",{id:"Reactant.MLIR.API.mlirOpPassManagerGetNestedUnder-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOpPassManagerGetNestedUnder-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpPassManagerGetNestedUnder")],-1)),t[2251]||(t[2251]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2252]||(t[2252]=l('mlirOpPassManagerGetNestedUnder(passManager, operationName)
Nest an OpPassManager under the provided OpPassManager, the nested passmanager will only run on operations matching the provided name. The returned OpPassManager will be destroyed when the parent is destroyed.
',3))]),e("details",qh,[e("summary",null,[t[2253]||(t[2253]=e("a",{id:"Reactant.MLIR.API.mlirOpPrintingFlagsAssumeVerified-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOpPrintingFlagsAssumeVerified-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpPrintingFlagsAssumeVerified")],-1)),t[2254]||(t[2254]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2255]||(t[2255]=l('mlirOpPrintingFlagsAssumeVerified(flags)
Do not verify the operation when using custom operation printers.
',3))]),e("details",Uh,[e("summary",null,[t[2256]||(t[2256]=e("a",{id:"Reactant.MLIR.API.mlirOpPrintingFlagsCreate-Tuple{}",href:"#Reactant.MLIR.API.mlirOpPrintingFlagsCreate-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpPrintingFlagsCreate")],-1)),t[2257]||(t[2257]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2258]||(t[2258]=l('mlirOpPrintingFlagsCreate()
Creates new printing flags with defaults, intended for customization. Must be freed with a call to mlirOpPrintingFlagsDestroy
().
mlirOpPrintingFlagsDestroy(flags)
Destroys printing flags created with mlirOpPrintingFlagsCreate
.
mlirOpPrintingFlagsElideLargeElementsAttrs(flags, largeElementLimit)
Enables the elision of large elements attributes by printing a lexically valid but otherwise meaningless form instead of the element data. The largeElementLimit
is used to configure what is considered to be a "large" ElementsAttr by providing an upper limit to the number of elements.
mlirOpPrintingFlagsElideLargeResourceString(flags, largeResourceLimit)
Enables the elision of large resources strings by omitting them from the dialect_resources
section. The largeResourceLimit
is used to configure what is considered to be a "large" resource by providing an upper limit to the string size.
mlirOpPrintingFlagsEnableDebugInfo(flags, enable, prettyForm)
Enable or disable printing of debug information (based on enable
). If 'prettyForm' is set to true, debug information is printed in a more readable 'pretty' form. Note: The IR generated with 'prettyForm' is not parsable.
mlirOpPrintingFlagsPrintGenericOpForm(flags)
Always print operations in the generic form.
',3))]),e("details",Kh,[e("summary",null,[t[2274]||(t[2274]=e("a",{id:"Reactant.MLIR.API.mlirOpPrintingFlagsSkipRegions-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOpPrintingFlagsSkipRegions-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpPrintingFlagsSkipRegions")],-1)),t[2275]||(t[2275]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2276]||(t[2276]=l('mlirOpPrintingFlagsSkipRegions(flags)
Skip printing regions.
',3))]),e("details",$h,[e("summary",null,[t[2277]||(t[2277]=e("a",{id:"Reactant.MLIR.API.mlirOpPrintingFlagsUseLocalScope-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOpPrintingFlagsUseLocalScope-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpPrintingFlagsUseLocalScope")],-1)),t[2278]||(t[2278]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2279]||(t[2279]=l('mlirOpPrintingFlagsUseLocalScope(flags)
Use local scope when printing the operation. This allows for using the printer in a more localized and thread-safe setting, but may not necessarily be identical to what the IR will look like when dumping the full module.
',3))]),e("details",Xh,[e("summary",null,[t[2280]||(t[2280]=e("a",{id:"Reactant.MLIR.API.mlirOpResultGetOwner-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOpResultGetOwner-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpResultGetOwner")],-1)),t[2281]||(t[2281]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2282]||(t[2282]=l('mlirOpResultGetOwner(value)
Returns an operation that produced this value as its result. Asserts if the value is not an op result.
',3))]),e("details",Yh,[e("summary",null,[t[2283]||(t[2283]=e("a",{id:"Reactant.MLIR.API.mlirOpResultGetResultNumber-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOpResultGetResultNumber-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpResultGetResultNumber")],-1)),t[2284]||(t[2284]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2285]||(t[2285]=l('mlirOpResultGetResultNumber(value)
Returns the position of the value in the list of results of the operation that produced it.
',3))]),e("details",_h,[e("summary",null,[t[2286]||(t[2286]=e("a",{id:"Reactant.MLIR.API.mlirOpaqueAttrGet-NTuple{5, Any}",href:"#Reactant.MLIR.API.mlirOpaqueAttrGet-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpaqueAttrGet")],-1)),t[2287]||(t[2287]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2288]||(t[2288]=l('mlirOpaqueAttrGet(ctx, dialectNamespace, dataLength, data, type)
Creates an opaque attribute in the given context associated with the dialect identified by its namespace. The attribute contains opaque byte data of the specified length (data need not be null-terminated).
',3))]),e("details",tu,[e("summary",null,[t[2289]||(t[2289]=e("a",{id:"Reactant.MLIR.API.mlirOpaqueAttrGetData-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOpaqueAttrGetData-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpaqueAttrGetData")],-1)),t[2290]||(t[2290]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2291]||(t[2291]=l('mlirOpaqueAttrGetData(attr)
Returns the raw data as a string reference. The data remains live as long as the context in which the attribute lives.
',3))]),e("details",eu,[e("summary",null,[t[2292]||(t[2292]=e("a",{id:"Reactant.MLIR.API.mlirOpaqueAttrGetDialectNamespace-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOpaqueAttrGetDialectNamespace-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpaqueAttrGetDialectNamespace")],-1)),t[2293]||(t[2293]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2294]||(t[2294]=l('mlirOpaqueAttrGetDialectNamespace(attr)
Returns the namespace of the dialect with which the given opaque attribute is associated. The namespace string is owned by the context.
',3))]),e("details",su,[e("summary",null,[t[2295]||(t[2295]=e("a",{id:"Reactant.MLIR.API.mlirOpaqueAttrGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirOpaqueAttrGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpaqueAttrGetTypeID")],-1)),t[2296]||(t[2296]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2297]||(t[2297]=l('mlirOpaqueAttrGetTypeID()
Returns the typeID of an Opaque attribute.
',3))]),e("details",au,[e("summary",null,[t[2298]||(t[2298]=e("a",{id:"Reactant.MLIR.API.mlirOpaqueTypeGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirOpaqueTypeGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpaqueTypeGet")],-1)),t[2299]||(t[2299]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2300]||(t[2300]=l('mlirOpaqueTypeGet(ctx, dialectNamespace, typeData)
Creates an opaque type in the given context associated with the dialect identified by its namespace. The type contains opaque byte data of the specified length (data need not be null-terminated).
',3))]),e("details",iu,[e("summary",null,[t[2301]||(t[2301]=e("a",{id:"Reactant.MLIR.API.mlirOpaqueTypeGetData-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOpaqueTypeGetData-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpaqueTypeGetData")],-1)),t[2302]||(t[2302]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2303]||(t[2303]=l('mlirOpaqueTypeGetData(type)
Returns the raw data as a string reference. The data remains live as long as the context in which the type lives.
',3))]),e("details",lu,[e("summary",null,[t[2304]||(t[2304]=e("a",{id:"Reactant.MLIR.API.mlirOpaqueTypeGetDialectNamespace-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOpaqueTypeGetDialectNamespace-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpaqueTypeGetDialectNamespace")],-1)),t[2305]||(t[2305]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2306]||(t[2306]=l('mlirOpaqueTypeGetDialectNamespace(type)
Returns the namespace of the dialect with which the given opaque type is associated. The namespace string is owned by the context.
',3))]),e("details",nu,[e("summary",null,[t[2307]||(t[2307]=e("a",{id:"Reactant.MLIR.API.mlirOpaqueTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirOpaqueTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOpaqueTypeGetTypeID")],-1)),t[2308]||(t[2308]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2309]||(t[2309]=l('mlirOpaqueTypeGetTypeID()
Returns the typeID of an Opaque type.
',3))]),e("details",pu,[e("summary",null,[t[2310]||(t[2310]=e("a",{id:"Reactant.MLIR.API.mlirOperationClone-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationClone-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationClone")],-1)),t[2311]||(t[2311]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2312]||(t[2312]=l('mlirOperationClone(op)
Creates a deep copy of an operation. The operation is not inserted and ownership is transferred to the caller.
',3))]),e("details",ru,[e("summary",null,[t[2313]||(t[2313]=e("a",{id:"Reactant.MLIR.API.mlirOperationCreate-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationCreate-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationCreate")],-1)),t[2314]||(t[2314]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2315]||(t[2315]=l('mlirOperationCreate(state)
Creates an operation and transfers ownership to the caller. Note that caller owned child objects are transferred in this call and must not be further used. Particularly, this applies to any regions added to the state (the implementation may invalidate any such pointers).
This call can fail under the following conditions, in which case, it will return a null operation and emit diagnostics: - Result type inference is enabled and cannot be performed.
',4))]),e("details",ou,[e("summary",null,[t[2316]||(t[2316]=e("a",{id:"Reactant.MLIR.API.mlirOperationCreateParse-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirOperationCreateParse-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationCreateParse")],-1)),t[2317]||(t[2317]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2318]||(t[2318]=l('mlirOperationCreateParse(context, sourceStr, sourceName)
Parses an operation, giving ownership to the caller. If parsing fails a null operation will be returned, and an error diagnostic emitted.
sourceStr
may be either the text assembly format, or binary bytecode format. sourceName
is used as the file name of the source; any IR without locations will get a FileLineColLoc
location with sourceName
as the file name.
mlirOperationDestroy(op)
Takes an operation owned by the caller and destroys it.
',3))]),e("details",cu,[e("summary",null,[t[2322]||(t[2322]=e("a",{id:"Reactant.MLIR.API.mlirOperationDump-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationDump-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationDump")],-1)),t[2323]||(t[2323]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2324]||(t[2324]=l('mlirOperationDump(op)
Prints an operation to stderr.
',3))]),e("details",hu,[e("summary",null,[t[2325]||(t[2325]=e("a",{id:"Reactant.MLIR.API.mlirOperationEqual-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOperationEqual-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationEqual")],-1)),t[2326]||(t[2326]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2327]||(t[2327]=l('mlirOperationEqual(op, other)
Checks whether two operation handles point to the same operation. This does not perform deep comparison.
',3))]),e("details",uu,[e("summary",null,[t[2328]||(t[2328]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetAttribute-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOperationGetAttribute-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetAttribute")],-1)),t[2329]||(t[2329]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2330]||(t[2330]=l('mlirOperationGetAttribute(op, pos)
Return pos
-th attribute of the operation. Deprecated, please use mlirOperationGetInherentAttribute
or mlirOperationGetDiscardableAttribute
.
mlirOperationGetAttributeByName(op, name)
Returns an attribute attached to the operation given its name. Deprecated, please use mlirOperationGetInherentAttributeByName
or mlirOperationGetDiscardableAttributeByName
.
mlirOperationGetBlock(op)
Gets the block that owns this operation, returning null if the operation is not owned.
',3))]),e("details",yu,[e("summary",null,[t[2337]||(t[2337]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetContext-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationGetContext-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetContext")],-1)),t[2338]||(t[2338]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2339]||(t[2339]=l('mlirOperationGetContext(op)
Gets the context this operation is associated with
',3))]),e("details",mu,[e("summary",null,[t[2340]||(t[2340]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetDiscardableAttribute-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOperationGetDiscardableAttribute-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetDiscardableAttribute")],-1)),t[2341]||(t[2341]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2342]||(t[2342]=l('mlirOperationGetDiscardableAttribute(op, pos)
Return pos
-th discardable attribute of the operation.
mlirOperationGetDiscardableAttributeByName(op, name)
Returns a discardable attribute attached to the operation given its name.
',3))]),e("details",fu,[e("summary",null,[t[2346]||(t[2346]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetFirstRegion-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationGetFirstRegion-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetFirstRegion")],-1)),t[2347]||(t[2347]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2348]||(t[2348]=l('mlirOperationGetFirstRegion(op)
Returns first region attached to the operation.
',3))]),e("details",Ru,[e("summary",null,[t[2349]||(t[2349]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetInherentAttributeByName-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOperationGetInherentAttributeByName-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetInherentAttributeByName")],-1)),t[2350]||(t[2350]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2351]||(t[2351]=l('mlirOperationGetInherentAttributeByName(op, name)
Returns an inherent attribute attached to the operation given its name.
',3))]),e("details",Iu,[e("summary",null,[t[2352]||(t[2352]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetLocation-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationGetLocation-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetLocation")],-1)),t[2353]||(t[2353]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2354]||(t[2354]=l('mlirOperationGetLocation(op)
Gets the location of the operation.
',3))]),e("details",ju,[e("summary",null,[t[2355]||(t[2355]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetName-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationGetName-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetName")],-1)),t[2356]||(t[2356]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2357]||(t[2357]=l('mlirOperationGetName(op)
Gets the name of the operation as an identifier.
',3))]),e("details",Mu,[e("summary",null,[t[2358]||(t[2358]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetNextInBlock-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationGetNextInBlock-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetNextInBlock")],-1)),t[2359]||(t[2359]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2360]||(t[2360]=l('mlirOperationGetNextInBlock(op)
Returns an operation immediately following the given operation it its enclosing block.
',3))]),e("details",Au,[e("summary",null,[t[2361]||(t[2361]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetNumAttributes-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationGetNumAttributes-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetNumAttributes")],-1)),t[2362]||(t[2362]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2363]||(t[2363]=l('mlirOperationGetNumAttributes(op)
Returns the number of attributes attached to the operation. Deprecated, please use mlirOperationGetNumInherentAttributes
or mlirOperationGetNumDiscardableAttributes
.
mlirOperationGetNumDiscardableAttributes(op)
Returns the number of discardable attributes attached to the operation.
',3))]),e("details",Eu,[e("summary",null,[t[2367]||(t[2367]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetNumOperands-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationGetNumOperands-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetNumOperands")],-1)),t[2368]||(t[2368]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2369]||(t[2369]=l('mlirOperationGetNumOperands(op)
Returns the number of operands of the operation.
',3))]),e("details",vu,[e("summary",null,[t[2370]||(t[2370]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetNumRegions-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationGetNumRegions-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetNumRegions")],-1)),t[2371]||(t[2371]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2372]||(t[2372]=l('mlirOperationGetNumRegions(op)
Returns the number of regions attached to the given operation.
',3))]),e("details",Tu,[e("summary",null,[t[2373]||(t[2373]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetNumResults-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationGetNumResults-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetNumResults")],-1)),t[2374]||(t[2374]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2375]||(t[2375]=l('mlirOperationGetNumResults(op)
Returns the number of results of the operation.
',3))]),e("details",Cu,[e("summary",null,[t[2376]||(t[2376]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetNumSuccessors-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationGetNumSuccessors-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetNumSuccessors")],-1)),t[2377]||(t[2377]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2378]||(t[2378]=l('mlirOperationGetNumSuccessors(op)
Returns the number of successor blocks of the operation.
',3))]),e("details",xu,[e("summary",null,[t[2379]||(t[2379]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetOperand-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOperationGetOperand-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetOperand")],-1)),t[2380]||(t[2380]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2381]||(t[2381]=l('mlirOperationGetOperand(op, pos)
Returns pos
-th operand of the operation.
mlirOperationGetParentOperation(op)
Gets the operation that owns this operation, returning null if the operation is not owned.
',3))]),e("details",Pu,[e("summary",null,[t[2385]||(t[2385]=e("a",{id:"Reactant.MLIR.API.mlirOperationGetRegion-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOperationGetRegion-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationGetRegion")],-1)),t[2386]||(t[2386]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2387]||(t[2387]=l('mlirOperationGetRegion(op, pos)
Returns pos
-th region attached to the operation.
mlirOperationGetResult(op, pos)
Returns pos
-th result of the operation.
mlirOperationGetSuccessor(op, pos)
Returns pos
-th successor of the operation.
mlirOperationGetTypeID(op)
Gets the type id of the operation. Returns null if the operation does not have a registered operation description.
',3))]),e("details",Gu,[e("summary",null,[t[2397]||(t[2397]=e("a",{id:"Reactant.MLIR.API.mlirOperationHasInherentAttributeByName-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOperationHasInherentAttributeByName-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationHasInherentAttributeByName")],-1)),t[2398]||(t[2398]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2399]||(t[2399]=l('mlirOperationHasInherentAttributeByName(op, name)
Returns true if this operation defines an inherent attribute with this name. Note: the attribute can be optional, so mlirOperationGetInherentAttributeByName
can still return a null attribute.
mlirOperationImplementsInterface(operation, interfaceTypeID)
Returns true
if the given operation implements an interface identified by its TypeID.
mlirOperationImplementsInterfaceStatic(operationName, context, interfaceTypeID)
Returns true
if the operation identified by its canonical string name implements the interface identified by its TypeID in the given context. Note that interfaces may be attached to operations in some contexts and not others.
mlirOperationIsNull(op)
Checks whether the underlying operation is null.
',3))]),e("details",Nu,[e("summary",null,[t[2409]||(t[2409]=e("a",{id:"Reactant.MLIR.API.mlirOperationMoveAfter-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOperationMoveAfter-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationMoveAfter")],-1)),t[2410]||(t[2410]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2411]||(t[2411]=l('mlirOperationMoveAfter(op, other)
Moves the given operation immediately after the other operation in its parent block. The given operation may be owned by the caller or by its current block. The other operation must belong to a block. In any case, the ownership is transferred to the block of the other operation.
',3))]),e("details",Vu,[e("summary",null,[t[2412]||(t[2412]=e("a",{id:"Reactant.MLIR.API.mlirOperationMoveBefore-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirOperationMoveBefore-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationMoveBefore")],-1)),t[2413]||(t[2413]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2414]||(t[2414]=l('mlirOperationMoveBefore(op, other)
Moves the given operation immediately before the other operation in its parent block. The given operation may be owner by the caller or by its current block. The other operation must belong to a block. In any case, the ownership is transferred to the block of the other operation.
',3))]),e("details",qu,[e("summary",null,[t[2415]||(t[2415]=e("a",{id:"Reactant.MLIR.API.mlirOperationPrint-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirOperationPrint-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationPrint")],-1)),t[2416]||(t[2416]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2417]||(t[2417]=l('mlirOperationPrint(op, callback, userData)
Prints an operation by sending chunks of the string representation and forwarding userData to
callback`. Note that the callback may be called several times with consecutive chunks of the string.
mlirOperationPrintWithFlags(op, flags, callback, userData)
Same as mlirOperationPrint
but accepts flags controlling the printing behavior.
mlirOperationPrintWithState(op, state, callback, userData)
Same as mlirOperationPrint
but accepts AsmState controlling the printing behavior as well as caching computed names.
mlirOperationRemoveAttributeByName(op, name)
Removes an attribute by name. Returns false if the attribute was not found and true if removed. Deprecated, please use mlirOperationRemoveInherentAttributeByName
or mlirOperationRemoveDiscardableAttributeByName
.
mlirOperationRemoveDiscardableAttributeByName(op, name)
Removes a discardable attribute by name. Returns false if the attribute was not found and true if removed.
',3))]),e("details",Zu,[e("summary",null,[t[2430]||(t[2430]=e("a",{id:"Reactant.MLIR.API.mlirOperationRemoveFromParent-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationRemoveFromParent-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationRemoveFromParent")],-1)),t[2431]||(t[2431]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2432]||(t[2432]=l('mlirOperationRemoveFromParent(op)
Removes the given operation from its parent block. The operation is not destroyed. The ownership of the operation is transferred to the caller.
',3))]),e("details",Ju,[e("summary",null,[t[2433]||(t[2433]=e("a",{id:"Reactant.MLIR.API.mlirOperationSetAttributeByName-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirOperationSetAttributeByName-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationSetAttributeByName")],-1)),t[2434]||(t[2434]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2435]||(t[2435]=l('mlirOperationSetAttributeByName(op, name, attr)
Sets an attribute by name, replacing the existing if it exists or adding a new one otherwise. Deprecated, please use mlirOperationSetInherentAttributeByName
or mlirOperationSetDiscardableAttributeByName
.
mlirOperationSetDiscardableAttributeByName(op, name, attr)
Sets a discardable attribute by name, replacing the existing if it exists or adding a new one otherwise. The new attr
Attribute is not allowed to be null, use mlirOperationRemoveDiscardableAttributeByName
to remove an Attribute instead.
mlirOperationSetInherentAttributeByName(op, name, attr)
Sets an inherent attribute by name, replacing the existing if it exists. This has no effect if "name" does not match an inherent attribute.
',3))]),e("details",Xu,[e("summary",null,[t[2442]||(t[2442]=e("a",{id:"Reactant.MLIR.API.mlirOperationSetOperand-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirOperationSetOperand-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationSetOperand")],-1)),t[2443]||(t[2443]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2444]||(t[2444]=l('mlirOperationSetOperand(op, pos, newValue)
Sets the pos
-th operand of the operation.
mlirOperationSetOperands(op, nOperands, operands)
Replaces the operands of the operation.
',3))]),e("details",_u,[e("summary",null,[t[2448]||(t[2448]=e("a",{id:"Reactant.MLIR.API.mlirOperationSetSuccessor-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirOperationSetSuccessor-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationSetSuccessor")],-1)),t[2449]||(t[2449]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2450]||(t[2450]=l('mlirOperationSetSuccessor(op, pos, block)
Set pos
-th successor of the operation.
mlirOperationStateAddResults(state, n, results)
Adds a list of components to the operation state.
',3))]),e("details",eb,[e("summary",null,[t[2454]||(t[2454]=e("a",{id:"Reactant.MLIR.API.mlirOperationStateEnableResultTypeInference-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationStateEnableResultTypeInference-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationStateEnableResultTypeInference")],-1)),t[2455]||(t[2455]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2456]||(t[2456]=l('mlirOperationStateEnableResultTypeInference(state)
Enables result type inference for the operation under construction. If enabled, then the caller must not have called mlirOperationStateAddResults
(). Note that if enabled, the mlirOperationCreate
() call is failable: it will return a null operation on inference failure and will emit diagnostics.
mlirOperationStateGet(name, loc)
Constructs an operation state from a name and a location.
',3))]),e("details",ab,[e("summary",null,[t[2460]||(t[2460]=e("a",{id:"Reactant.MLIR.API.mlirOperationVerify-Tuple{Any}",href:"#Reactant.MLIR.API.mlirOperationVerify-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationVerify")],-1)),t[2461]||(t[2461]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2462]||(t[2462]=l('mlirOperationVerify(op)
Verify the operation and return true if it passes, false if it fails.
',3))]),e("details",ib,[e("summary",null,[t[2463]||(t[2463]=e("a",{id:"Reactant.MLIR.API.mlirOperationWalk-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirOperationWalk-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirOperationWalk")],-1)),t[2464]||(t[2464]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2465]||(t[2465]=l('mlirOperationWalk(op, callback, userData, walkOrder)
Walks operation op
in walkOrder
and calls callback
on that operation. *userData
is passed to the callback as well and can be used to tunnel some context or other data into the callback.
mlirOperationWriteBytecode(op, callback, userData)
Same as mlirOperationPrint
but writing the bytecode format.
mlirOperationWriteBytecodeWithConfig(op, config, callback, userData)
Same as mlirOperationWriteBytecode
but with writer config and returns failure only if desired bytecode could not be honored.
mlirParsePassPipeline(passManager, pipeline, callback, userData)
Parse a textual MLIR pass pipeline and assign it to the provided OpPassManager. If parsing fails an error message is reported using the provided callback.
',3))]),e("details",rb,[e("summary",null,[t[2475]||(t[2475]=e("a",{id:"Reactant.MLIR.API.mlirPassManagerAddOwnedPass-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirPassManagerAddOwnedPass-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirPassManagerAddOwnedPass")],-1)),t[2476]||(t[2476]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2477]||(t[2477]=l('mlirPassManagerAddOwnedPass(passManager, pass)
Add a pass and transfer ownership to the provided top-level mlirPassManager. If the pass is not a generic operation pass or a ModulePass, a new OpPassManager is implicitly nested under the provided PassManager.
',3))]),e("details",ob,[e("summary",null,[t[2478]||(t[2478]=e("a",{id:"Reactant.MLIR.API.mlirPassManagerCreate-Tuple{Any}",href:"#Reactant.MLIR.API.mlirPassManagerCreate-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirPassManagerCreate")],-1)),t[2479]||(t[2479]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2480]||(t[2480]=l('mlirPassManagerCreate(ctx)
Create a new top-level PassManager with the default anchor.
',3))]),e("details",db,[e("summary",null,[t[2481]||(t[2481]=e("a",{id:"Reactant.MLIR.API.mlirPassManagerCreateOnOperation-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirPassManagerCreateOnOperation-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirPassManagerCreateOnOperation")],-1)),t[2482]||(t[2482]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2483]||(t[2483]=l('mlirPassManagerCreateOnOperation(ctx, anchorOp)
Create a new top-level PassManager anchored on anchorOp
.
mlirPassManagerDestroy(passManager)
Destroy the provided PassManager.
',3))]),e("details",hb,[e("summary",null,[t[2487]||(t[2487]=e("a",{id:"Reactant.MLIR.API.mlirPassManagerEnableIRPrinting-NTuple{6, Any}",href:"#Reactant.MLIR.API.mlirPassManagerEnableIRPrinting-NTuple{6, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirPassManagerEnableIRPrinting")],-1)),t[2488]||(t[2488]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2489]||(t[2489]=l('mlirPassManagerEnableIRPrinting(passManager, printBeforeAll, printAfterAll, printModuleScope, printAfterOnlyOnChange, printAfterOnlyOnFailure)
Enable IR printing.
',3))]),e("details",ub,[e("summary",null,[t[2490]||(t[2490]=e("a",{id:"Reactant.MLIR.API.mlirPassManagerEnableVerifier-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirPassManagerEnableVerifier-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirPassManagerEnableVerifier")],-1)),t[2491]||(t[2491]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2492]||(t[2492]=l('mlirPassManagerEnableVerifier(passManager, enable)
Enable / disable verify-each.
',3))]),e("details",bb,[e("summary",null,[t[2493]||(t[2493]=e("a",{id:"Reactant.MLIR.API.mlirPassManagerGetAsOpPassManager-Tuple{Any}",href:"#Reactant.MLIR.API.mlirPassManagerGetAsOpPassManager-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirPassManagerGetAsOpPassManager")],-1)),t[2494]||(t[2494]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2495]||(t[2495]=l('mlirPassManagerGetAsOpPassManager(passManager)
Cast a top-level PassManager to a generic OpPassManager.
',3))]),e("details",gb,[e("summary",null,[t[2496]||(t[2496]=e("a",{id:"Reactant.MLIR.API.mlirPassManagerGetNestedUnder-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirPassManagerGetNestedUnder-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirPassManagerGetNestedUnder")],-1)),t[2497]||(t[2497]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2498]||(t[2498]=l('mlirPassManagerGetNestedUnder(passManager, operationName)
Nest an OpPassManager under the top-level PassManager, the nested passmanager will only run on operations matching the provided name. The returned OpPassManager will be destroyed when the parent is destroyed. To further nest more OpPassManager under the newly returned one, see mlirOpPassManagerNest
below.
mlirPassManagerIsNull(passManager)
Checks if a PassManager is null.
',3))]),e("details",mb,[e("summary",null,[t[2502]||(t[2502]=e("a",{id:"Reactant.MLIR.API.mlirPassManagerRunOnOp-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirPassManagerRunOnOp-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirPassManagerRunOnOp")],-1)),t[2503]||(t[2503]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2504]||(t[2504]=l('mlirPassManagerRunOnOp(passManager, op)
Run the provided passManager
on the given op
.
mlirPrintPassPipeline(passManager, callback, userData)
Print a textual MLIR pass pipeline by sending chunks of the string representation and forwarding userData to
callback`. Note that the callback may be called several times with consecutive chunks of the string.
mlirQuantizedTypeCastExpressedToStorageType(type, candidate)
Casts from a type based on the expressed type of the given quantized type to equivalent type based on storage type of the same quantized type.
',3))]),e("details",Rb,[e("summary",null,[t[2511]||(t[2511]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeCastFromExpressedType-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirQuantizedTypeCastFromExpressedType-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeCastFromExpressedType")],-1)),t[2512]||(t[2512]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2513]||(t[2513]=l('mlirQuantizedTypeCastFromExpressedType(type, candidate)
Casts from a type based on the expressed type of the given type to a corresponding type based on the given type. Returns a null type if the cast is not valid.
',3))]),e("details",Ib,[e("summary",null,[t[2514]||(t[2514]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeCastFromStorageType-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirQuantizedTypeCastFromStorageType-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeCastFromStorageType")],-1)),t[2515]||(t[2515]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2516]||(t[2516]=l('mlirQuantizedTypeCastFromStorageType(type, candidate)
Casts from a type based on the storage type of the given type to a corresponding type based on the given type. Returns a null type if the cast is not valid.
',3))]),e("details",jb,[e("summary",null,[t[2517]||(t[2517]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeCastToExpressedType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirQuantizedTypeCastToExpressedType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeCastToExpressedType")],-1)),t[2518]||(t[2518]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2519]||(t[2519]=l('mlirQuantizedTypeCastToExpressedType(type)
Casts from a type based on a quantized type to a corresponding typed based on the expressed type. Returns a null type if the cast is not valid.
',3))]),e("details",Mb,[e("summary",null,[t[2520]||(t[2520]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeCastToStorageType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirQuantizedTypeCastToStorageType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeCastToStorageType")],-1)),t[2521]||(t[2521]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2522]||(t[2522]=l('mlirQuantizedTypeCastToStorageType(type)
Casts from a type based on a quantized type to a corresponding typed based on the storage type. Returns a null type if the cast is not valid.
',3))]),e("details",Ab,[e("summary",null,[t[2523]||(t[2523]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeGetDefaultMaximumForInteger-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirQuantizedTypeGetDefaultMaximumForInteger-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeGetDefaultMaximumForInteger")],-1)),t[2524]||(t[2524]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2525]||(t[2525]=l('mlirQuantizedTypeGetDefaultMaximumForInteger(isSigned, integralWidth)
Returns the maximum possible value stored by a quantized type.
',3))]),e("details",Lb,[e("summary",null,[t[2526]||(t[2526]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeGetDefaultMinimumForInteger-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirQuantizedTypeGetDefaultMinimumForInteger-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeGetDefaultMinimumForInteger")],-1)),t[2527]||(t[2527]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2528]||(t[2528]=l('mlirQuantizedTypeGetDefaultMinimumForInteger(isSigned, integralWidth)
Returns the minimum possible value stored by a quantized type.
',3))]),e("details",Eb,[e("summary",null,[t[2529]||(t[2529]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeGetExpressedType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirQuantizedTypeGetExpressedType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeGetExpressedType")],-1)),t[2530]||(t[2530]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2531]||(t[2531]=l('mlirQuantizedTypeGetExpressedType(type)
Gets the original type approximated by the given quantized type.
',3))]),e("details",vb,[e("summary",null,[t[2532]||(t[2532]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeGetFlags-Tuple{Any}",href:"#Reactant.MLIR.API.mlirQuantizedTypeGetFlags-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeGetFlags")],-1)),t[2533]||(t[2533]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2534]||(t[2534]=l('mlirQuantizedTypeGetFlags(type)
Gets the flags associated with the given quantized type.
',3))]),e("details",Tb,[e("summary",null,[t[2535]||(t[2535]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeGetQuantizedElementType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirQuantizedTypeGetQuantizedElementType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeGetQuantizedElementType")],-1)),t[2536]||(t[2536]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2537]||(t[2537]=l('mlirQuantizedTypeGetQuantizedElementType(type)
Returns the element type of the given quantized type as another quantized type.
',3))]),e("details",Cb,[e("summary",null,[t[2538]||(t[2538]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeGetSignedFlag-Tuple{}",href:"#Reactant.MLIR.API.mlirQuantizedTypeGetSignedFlag-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeGetSignedFlag")],-1)),t[2539]||(t[2539]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2540]||(t[2540]=l('mlirQuantizedTypeGetSignedFlag()
Returns the bit flag used to indicate signedness of a quantized type.
',3))]),e("details",xb,[e("summary",null,[t[2541]||(t[2541]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeGetStorageType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirQuantizedTypeGetStorageType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeGetStorageType")],-1)),t[2542]||(t[2542]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2543]||(t[2543]=l('mlirQuantizedTypeGetStorageType(type)
Returns the underlying type used to store the values.
',3))]),e("details",Fb,[e("summary",null,[t[2544]||(t[2544]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeGetStorageTypeIntegralWidth-Tuple{Any}",href:"#Reactant.MLIR.API.mlirQuantizedTypeGetStorageTypeIntegralWidth-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeGetStorageTypeIntegralWidth")],-1)),t[2545]||(t[2545]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2546]||(t[2546]=l('mlirQuantizedTypeGetStorageTypeIntegralWidth(type)
Returns the integral bitwidth that the storage type of the given quantized type can represent exactly.
',3))]),e("details",Pb,[e("summary",null,[t[2547]||(t[2547]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeGetStorageTypeMax-Tuple{Any}",href:"#Reactant.MLIR.API.mlirQuantizedTypeGetStorageTypeMax-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeGetStorageTypeMax")],-1)),t[2548]||(t[2548]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2549]||(t[2549]=l('mlirQuantizedTypeGetStorageTypeMax(type)
Returns the maximum value that the storage type of the given quantized type can take.
',3))]),e("details",Db,[e("summary",null,[t[2550]||(t[2550]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeGetStorageTypeMin-Tuple{Any}",href:"#Reactant.MLIR.API.mlirQuantizedTypeGetStorageTypeMin-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeGetStorageTypeMin")],-1)),t[2551]||(t[2551]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2552]||(t[2552]=l('mlirQuantizedTypeGetStorageTypeMin(type)
Returns the minimum value that the storage type of the given quantized type can take.
',3))]),e("details",Ob,[e("summary",null,[t[2553]||(t[2553]=e("a",{id:"Reactant.MLIR.API.mlirQuantizedTypeIsCompatibleExpressedType-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirQuantizedTypeIsCompatibleExpressedType-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirQuantizedTypeIsCompatibleExpressedType")],-1)),t[2554]||(t[2554]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2555]||(t[2555]=l('mlirQuantizedTypeIsCompatibleExpressedType(type, candidate)
Returns true
if the candidate
type is compatible with the given quantized type
.
mlirQuantizedTypeIsSigned(type)
Returns true
if the given type is signed, false
otherwise.
mlirRankedTensorTypeGet(rank, shape, elementType, encoding)
Creates a tensor type of a fixed rank with the given shape, element type, and optional encoding in the same context as the element type. The type is owned by the context. Tensor types without any specific encoding field should assign mlirAttributeGetNull
() to this parameter.
mlirRankedTensorTypeGetChecked(loc, rank, shape, elementType, encoding)
Same as "mlirRankedTensorTypeGet
" but returns a nullptr wrapping MlirType
on illegal arguments, emitting appropriate diagnostics.
mlirRankedTensorTypeGetEncoding(type)
Gets the 'encoding' attribute from the ranked tensor type, returning a null attribute if none.
',3))]),e("details",Sb,[e("summary",null,[t[2568]||(t[2568]=e("a",{id:"Reactant.MLIR.API.mlirRankedTensorTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirRankedTensorTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRankedTensorTypeGetTypeID")],-1)),t[2569]||(t[2569]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2570]||(t[2570]=l('mlirRankedTensorTypeGetTypeID()
Returns the typeID of an RankedTensor type.
',3))]),e("details",Nb,[e("summary",null,[t[2571]||(t[2571]=e("a",{id:"Reactant.MLIR.API.mlirRegionAppendOwnedBlock-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirRegionAppendOwnedBlock-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRegionAppendOwnedBlock")],-1)),t[2572]||(t[2572]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2573]||(t[2573]=l('mlirRegionAppendOwnedBlock(region, block)
Takes a block owned by the caller and appends it to the given region.
',3))]),e("details",Vb,[e("summary",null,[t[2574]||(t[2574]=e("a",{id:"Reactant.MLIR.API.mlirRegionCreate-Tuple{}",href:"#Reactant.MLIR.API.mlirRegionCreate-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRegionCreate")],-1)),t[2575]||(t[2575]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2576]||(t[2576]=l('mlirRegionCreate()
Creates a new empty region and transfers ownership to the caller.
',3))]),e("details",qb,[e("summary",null,[t[2577]||(t[2577]=e("a",{id:"Reactant.MLIR.API.mlirRegionDestroy-Tuple{Any}",href:"#Reactant.MLIR.API.mlirRegionDestroy-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRegionDestroy")],-1)),t[2578]||(t[2578]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2579]||(t[2579]=l('mlirRegionDestroy(region)
Takes a region owned by the caller and destroys it.
',3))]),e("details",Ub,[e("summary",null,[t[2580]||(t[2580]=e("a",{id:"Reactant.MLIR.API.mlirRegionEqual-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirRegionEqual-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRegionEqual")],-1)),t[2581]||(t[2581]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2582]||(t[2582]=l('mlirRegionEqual(region, other)
Checks whether two region handles point to the same region. This does not perform deep comparison.
',3))]),e("details",Qb,[e("summary",null,[t[2583]||(t[2583]=e("a",{id:"Reactant.MLIR.API.mlirRegionGetFirstBlock-Tuple{Any}",href:"#Reactant.MLIR.API.mlirRegionGetFirstBlock-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRegionGetFirstBlock")],-1)),t[2584]||(t[2584]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2585]||(t[2585]=l('mlirRegionGetFirstBlock(region)
Gets the first block in the region.
',3))]),e("details",Wb,[e("summary",null,[t[2586]||(t[2586]=e("a",{id:"Reactant.MLIR.API.mlirRegionGetNextInOperation-Tuple{Any}",href:"#Reactant.MLIR.API.mlirRegionGetNextInOperation-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRegionGetNextInOperation")],-1)),t[2587]||(t[2587]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2588]||(t[2588]=l('mlirRegionGetNextInOperation(region)
Returns the region immediately following the given region in its parent operation.
',3))]),e("details",Hb,[e("summary",null,[t[2589]||(t[2589]=e("a",{id:"Reactant.MLIR.API.mlirRegionInsertOwnedBlock-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirRegionInsertOwnedBlock-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRegionInsertOwnedBlock")],-1)),t[2590]||(t[2590]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2591]||(t[2591]=l('mlirRegionInsertOwnedBlock(region, pos, block)
Takes a block owned by the caller and inserts it at pos
to the given region. This is an expensive operation that linearly scans the region, prefer insertAfter/Before instead.
mlirRegionInsertOwnedBlockAfter(region, reference, block)
Takes a block owned by the caller and inserts it after the (non-owned) reference block in the given region. The reference block must belong to the region. If the reference block is null, prepends the block to the region.
',3))]),e("details",Jb,[e("summary",null,[t[2595]||(t[2595]=e("a",{id:"Reactant.MLIR.API.mlirRegionInsertOwnedBlockBefore-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirRegionInsertOwnedBlockBefore-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRegionInsertOwnedBlockBefore")],-1)),t[2596]||(t[2596]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2597]||(t[2597]=l('mlirRegionInsertOwnedBlockBefore(region, reference, block)
Takes a block owned by the caller and inserts it before the (non-owned) reference block in the given region. The reference block must belong to the region. If the reference block is null, appends the block to the region.
',3))]),e("details",Kb,[e("summary",null,[t[2598]||(t[2598]=e("a",{id:"Reactant.MLIR.API.mlirRegionIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirRegionIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRegionIsNull")],-1)),t[2599]||(t[2599]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2600]||(t[2600]=l('mlirRegionIsNull(region)
Checks whether a region is null.
',3))]),e("details",$b,[e("summary",null,[t[2601]||(t[2601]=e("a",{id:"Reactant.MLIR.API.mlirRegionTakeBody-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirRegionTakeBody-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRegionTakeBody")],-1)),t[2602]||(t[2602]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2603]||(t[2603]=l('mlirRegionTakeBody(target, source)
Moves the entire content of the source region to the target region.
',3))]),e("details",Xb,[e("summary",null,[t[2604]||(t[2604]=e("a",{id:"Reactant.MLIR.API.mlirRegisterAllDialects-Tuple{Any}",href:"#Reactant.MLIR.API.mlirRegisterAllDialects-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRegisterAllDialects")],-1)),t[2605]||(t[2605]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2606]||(t[2606]=l('mlirRegisterAllDialects(registry)
Appends all upstream dialects and extensions to the dialect registry.
',3))]),e("details",Yb,[e("summary",null,[t[2607]||(t[2607]=e("a",{id:"Reactant.MLIR.API.mlirRegisterAllLLVMTranslations-Tuple{Any}",href:"#Reactant.MLIR.API.mlirRegisterAllLLVMTranslations-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRegisterAllLLVMTranslations")],-1)),t[2608]||(t[2608]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2609]||(t[2609]=l('mlirRegisterAllLLVMTranslations(context)
Register all translations to LLVM IR for dialects that can support it.
',3))]),e("details",_b,[e("summary",null,[t[2610]||(t[2610]=e("a",{id:"Reactant.MLIR.API.mlirRegisterAllPasses-Tuple{}",href:"#Reactant.MLIR.API.mlirRegisterAllPasses-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRegisterAllPasses")],-1)),t[2611]||(t[2611]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2612]||(t[2612]=l('mlirRegisterAllPasses()
Register all compiler passes of MLIR.
',3))]),e("details",tg,[e("summary",null,[t[2613]||(t[2613]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseCancelOpModification-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseCancelOpModification-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseCancelOpModification")],-1)),t[2614]||(t[2614]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2615]||(t[2615]=l('mlirRewriterBaseCancelOpModification(rewriter, op)
This method cancels a pending in-place modification. This can only be called on operations that were provided to a call to startOpModification
.
mlirRewriterBaseClearInsertionPoint(rewriter)
Reset the insertion point to no location. Creating an operation without a set insertion point is an error, but this can still be useful when the current insertion point a builder refers to is being removed.
',3))]),e("details",sg,[e("summary",null,[t[2619]||(t[2619]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseClone-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseClone-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseClone")],-1)),t[2620]||(t[2620]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2621]||(t[2621]=l('mlirRewriterBaseClone(rewriter, op)
Creates a deep copy of the specified operation.
',3))]),e("details",ag,[e("summary",null,[t[2622]||(t[2622]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseCloneRegionBefore-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseCloneRegionBefore-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseCloneRegionBefore")],-1)),t[2623]||(t[2623]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2624]||(t[2624]=l('mlirRewriterBaseCloneRegionBefore(rewriter, region, before)
Clone the blocks that belong to "region" before the given position in another region "parent".
',3))]),e("details",ig,[e("summary",null,[t[2625]||(t[2625]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseCloneWithoutRegions-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseCloneWithoutRegions-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseCloneWithoutRegions")],-1)),t[2626]||(t[2626]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2627]||(t[2627]=l('mlirRewriterBaseCloneWithoutRegions(rewriter, op)
Creates a deep copy of this operation but keep the operation regions empty.
',3))]),e("details",lg,[e("summary",null,[t[2628]||(t[2628]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseCreateBlockBefore-NTuple{5, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseCreateBlockBefore-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseCreateBlockBefore")],-1)),t[2629]||(t[2629]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2630]||(t[2630]=l('mlirRewriterBaseCreateBlockBefore(rewriter, insertBefore, nArgTypes, argTypes, locations)
Add new block with 'argTypes' arguments and set the insertion point to the end of it. The block is placed before 'insertBefore'. locs
contains the locations of the inserted arguments, and should match the size of argTypes
.
mlirRewriterBaseEraseBlock(rewriter, block)
Erases a block along with all operations inside it.
',3))]),e("details",pg,[e("summary",null,[t[2634]||(t[2634]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseEraseOp-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseEraseOp-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseEraseOp")],-1)),t[2635]||(t[2635]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2636]||(t[2636]=l('mlirRewriterBaseEraseOp(rewriter, op)
Erases an operation that is known to have no uses.
',3))]),e("details",rg,[e("summary",null,[t[2637]||(t[2637]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseFinalizeOpModification-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseFinalizeOpModification-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseFinalizeOpModification")],-1)),t[2638]||(t[2638]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2639]||(t[2639]=l('mlirRewriterBaseFinalizeOpModification(rewriter, op)
This method is used to signal the end of an in-place modification of the given operation. This can only be called on operations that were provided to a call to startOpModification
.
mlirRewriterBaseGetBlock(rewriter)
Returns the current block of the rewriter.
',3))]),e("details",dg,[e("summary",null,[t[2643]||(t[2643]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseGetContext-Tuple{Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseGetContext-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseGetContext")],-1)),t[2644]||(t[2644]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2645]||(t[2645]=l('mlirRewriterBaseGetContext(rewriter)
Get the MLIR context referenced by the rewriter.
',3))]),e("details",cg,[e("summary",null,[t[2646]||(t[2646]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseGetInsertionBlock-Tuple{Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseGetInsertionBlock-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseGetInsertionBlock")],-1)),t[2647]||(t[2647]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2648]||(t[2648]=l('mlirRewriterBaseGetInsertionBlock(rewriter)
Return the block the current insertion point belongs to. Note that the insertion point is not necessarily the end of the block.
',3))]),e("details",hg,[e("summary",null,[t[2649]||(t[2649]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseInlineBlockBefore-NTuple{5, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseInlineBlockBefore-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseInlineBlockBefore")],-1)),t[2650]||(t[2650]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2651]||(t[2651]=l('mlirRewriterBaseInlineBlockBefore(rewriter, source, op, nArgValues, argValues)
Inline the operations of block 'source' before the operation 'op'. The source block will be deleted and must have no uses. 'argValues' is used to replace the block arguments of 'source'
The source block must have no successors. Otherwise, the resulting IR would have unreachable operations.
',4))]),e("details",ug,[e("summary",null,[t[2652]||(t[2652]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseInlineRegionBefore-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseInlineRegionBefore-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseInlineRegionBefore")],-1)),t[2653]||(t[2653]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2654]||(t[2654]=l('mlirRewriterBaseInlineRegionBefore(rewriter, region, before)
Move the blocks that belong to "region" before the given position in another region "parent". The two regions must be different. The caller is responsible for creating or updating the operation transferring flow of control to the region and passing it the correct block arguments.
',3))]),e("details",bg,[e("summary",null,[t[2655]||(t[2655]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseInsert-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseInsert-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseInsert")],-1)),t[2656]||(t[2656]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2657]||(t[2657]=l('mlirRewriterBaseInsert(rewriter, op)
Insert the given operation at the current insertion point and return it.
',3))]),e("details",gg,[e("summary",null,[t[2658]||(t[2658]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseMergeBlocks-NTuple{5, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseMergeBlocks-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseMergeBlocks")],-1)),t[2659]||(t[2659]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2660]||(t[2660]=l('mlirRewriterBaseMergeBlocks(rewriter, source, dest, nArgValues, argValues)
Inline the operations of block 'source' into the end of block 'dest'. The source block will be deleted and must have no uses. 'argValues' is used to replace the block arguments of 'source'
The dest block must have no successors. Otherwise, the resulting IR would have unreachable operation.
',4))]),e("details",yg,[e("summary",null,[t[2661]||(t[2661]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseMoveBlockBefore-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseMoveBlockBefore-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseMoveBlockBefore")],-1)),t[2662]||(t[2662]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2663]||(t[2663]=l('mlirRewriterBaseMoveBlockBefore(rewriter, block, existingBlock)
Unlink this block and insert it right before existingBlock
.
mlirRewriterBaseMoveOpAfter(rewriter, op, existingOp)
Unlink this operation from its current block and insert it right after existingOp
which may be in the same or another block in the same function.
mlirRewriterBaseMoveOpBefore(rewriter, op, existingOp)
Unlink this operation from its current block and insert it right before existingOp
which may be in the same or another block in the same function.
mlirRewriterBaseReplaceAllOpUsesWithOperation(rewriter, from, to)
Find uses of from
and replace them with to
. Also notify the listener about every in-place op modification (for every use that was replaced) and that the from
operation is about to be replaced.
mlirRewriterBaseReplaceAllOpUsesWithValueRange(rewriter, from, nTo, to)
Find uses of from
and replace them with to
. Also notify the listener about every in-place op modification (for every use that was replaced) and that the from
operation is about to be replaced.
mlirRewriterBaseReplaceAllUsesExcept(rewriter, from, to, exceptedUser)
Find uses of from
and replace them with to
except if the user is exceptedUser
. Also notify the listener about every in-place op modification (for every use that was replaced).
mlirRewriterBaseReplaceAllUsesWith(rewriter, from, to)
Find uses of from
and replace them with to
. Also notify the listener about every in-place op modification (for every use that was replaced).
mlirRewriterBaseReplaceAllValueRangeUsesWith(rewriter, nValues, from, to)
Find uses of from
and replace them with to
. Also notify the listener about every in-place op modification (for every use that was replaced).
mlirRewriterBaseReplaceOpUsesWithinBlock(rewriter, op, nNewValues, newValues, block)
Find uses of from
within block
and replace them with to
. Also notify the listener about every in-place op modification (for every use that was replaced). The optional allUsesReplaced
flag is set to "true" if all uses were replaced.
mlirRewriterBaseReplaceOpWithOperation(rewriter, op, newOp)
Replace the results of the given (original) operation with the specified new op (replacement). The result types of the two ops must match. The original op is erased.
',3))]),e("details",Eg,[e("summary",null,[t[2691]||(t[2691]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseReplaceOpWithValues-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseReplaceOpWithValues-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseReplaceOpWithValues")],-1)),t[2692]||(t[2692]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2693]||(t[2693]=l('mlirRewriterBaseReplaceOpWithValues(rewriter, op, nValues, values)
Replace the results of the given (original) operation with the specified list of values (replacements). The result types of the given op and the replacements must match. The original op is erased.
',3))]),e("details",vg,[e("summary",null,[t[2694]||(t[2694]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointAfter-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointAfter-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointAfter")],-1)),t[2695]||(t[2695]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2696]||(t[2696]=l('mlirRewriterBaseSetInsertionPointAfter(rewriter, op)
Sets the insertion point to the node after the specified operation, which will cause subsequent insertions to go right after it.
',3))]),e("details",Tg,[e("summary",null,[t[2697]||(t[2697]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointAfterValue-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointAfterValue-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointAfterValue")],-1)),t[2698]||(t[2698]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2699]||(t[2699]=l('mlirRewriterBaseSetInsertionPointAfterValue(rewriter, value)
Sets the insertion point to the node after the specified value. If value has a defining operation, sets the insertion point to the node after such defining operation. This will cause subsequent insertions to go right after it. Otherwise, value is a BlockArgument. Sets the insertion point to the start of its block.
',3))]),e("details",Cg,[e("summary",null,[t[2700]||(t[2700]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointBefore-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointBefore-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointBefore")],-1)),t[2701]||(t[2701]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2702]||(t[2702]=l('mlirRewriterBaseSetInsertionPointBefore(rewriter, op)
Sets the insertion point to the specified operation, which will cause subsequent insertions to go right before it.
',3))]),e("details",xg,[e("summary",null,[t[2703]||(t[2703]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointToEnd-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointToEnd-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointToEnd")],-1)),t[2704]||(t[2704]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2705]||(t[2705]=l('mlirRewriterBaseSetInsertionPointToEnd(rewriter, block)
Sets the insertion point to the end of the specified block.
',3))]),e("details",Fg,[e("summary",null,[t[2706]||(t[2706]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointToStart-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointToStart-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseSetInsertionPointToStart")],-1)),t[2707]||(t[2707]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2708]||(t[2708]=l('mlirRewriterBaseSetInsertionPointToStart(rewriter, block)
Sets the insertion point to the start of the specified block.
',3))]),e("details",Pg,[e("summary",null,[t[2709]||(t[2709]=e("a",{id:"Reactant.MLIR.API.mlirRewriterBaseStartOpModification-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirRewriterBaseStartOpModification-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirRewriterBaseStartOpModification")],-1)),t[2710]||(t[2710]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2711]||(t[2711]=l('mlirRewriterBaseStartOpModification(rewriter, op)
This method is used to notify the rewriter that an in-place operation modification is about to happen. A call to this function must be followed by a call to either finalizeOpModification
or cancelOpModification
. This is a minor efficiency win (it avoids creating a new operation and removing the old one) but also often allows simpler code in the client.
mlirSetGlobalDebugType(type)
Sets the current debug type, similarly to -debug-only=type
in the command-line tools. Note that global debug should be enabled for any output to be produced.
mlirSetGlobalDebugTypes(types, n)
Sets multiple current debug types, similarly to `-debug-only=type1,type2" in the command-line tools. Note that global debug should be enabled for any output to be produced.
',3))]),e("details",Bg,[e("summary",null,[t[2718]||(t[2718]=e("a",{id:"Reactant.MLIR.API.mlirShapedTypeGetDimSize-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirShapedTypeGetDimSize-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirShapedTypeGetDimSize")],-1)),t[2719]||(t[2719]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2720]||(t[2720]=l('mlirShapedTypeGetDimSize(type, dim)
Returns the dim-th dimension of the given ranked shaped type.
',3))]),e("details",Gg,[e("summary",null,[t[2721]||(t[2721]=e("a",{id:"Reactant.MLIR.API.mlirShapedTypeGetDynamicSize-Tuple{}",href:"#Reactant.MLIR.API.mlirShapedTypeGetDynamicSize-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirShapedTypeGetDynamicSize")],-1)),t[2722]||(t[2722]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2723]||(t[2723]=l('mlirShapedTypeGetDynamicSize()
Returns the value indicating a dynamic size in a shaped type. Prefer mlirShapedTypeIsDynamicSize
to direct comparisons with this value.
mlirShapedTypeGetDynamicStrideOrOffset()
Returns the value indicating a dynamic stride or offset in a shaped type. Prefer mlirShapedTypeGetDynamicStrideOrOffset
to direct comparisons with this value.
mlirShapedTypeGetElementType(type)
Returns the element type of the shaped type.
',3))]),e("details",Sg,[e("summary",null,[t[2730]||(t[2730]=e("a",{id:"Reactant.MLIR.API.mlirShapedTypeGetRank-Tuple{Any}",href:"#Reactant.MLIR.API.mlirShapedTypeGetRank-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirShapedTypeGetRank")],-1)),t[2731]||(t[2731]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2732]||(t[2732]=l('mlirShapedTypeGetRank(type)
Returns the rank of the given ranked shaped type.
',3))]),e("details",Ng,[e("summary",null,[t[2733]||(t[2733]=e("a",{id:"Reactant.MLIR.API.mlirShapedTypeHasRank-Tuple{Any}",href:"#Reactant.MLIR.API.mlirShapedTypeHasRank-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirShapedTypeHasRank")],-1)),t[2734]||(t[2734]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2735]||(t[2735]=l('mlirShapedTypeHasRank(type)
Checks whether the given shaped type is ranked.
',3))]),e("details",Vg,[e("summary",null,[t[2736]||(t[2736]=e("a",{id:"Reactant.MLIR.API.mlirShapedTypeHasStaticShape-Tuple{Any}",href:"#Reactant.MLIR.API.mlirShapedTypeHasStaticShape-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirShapedTypeHasStaticShape")],-1)),t[2737]||(t[2737]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2738]||(t[2738]=l('mlirShapedTypeHasStaticShape(type)
Checks whether the given shaped type has a static shape.
',3))]),e("details",qg,[e("summary",null,[t[2739]||(t[2739]=e("a",{id:"Reactant.MLIR.API.mlirShapedTypeIsDynamicDim-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirShapedTypeIsDynamicDim-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirShapedTypeIsDynamicDim")],-1)),t[2740]||(t[2740]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2741]||(t[2741]=l('mlirShapedTypeIsDynamicDim(type, dim)
Checks wither the dim-th dimension of the given shaped type is dynamic.
',3))]),e("details",Ug,[e("summary",null,[t[2742]||(t[2742]=e("a",{id:"Reactant.MLIR.API.mlirShapedTypeIsDynamicSize-Tuple{Any}",href:"#Reactant.MLIR.API.mlirShapedTypeIsDynamicSize-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirShapedTypeIsDynamicSize")],-1)),t[2743]||(t[2743]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2744]||(t[2744]=l('mlirShapedTypeIsDynamicSize(size)
Checks whether the given value is used as a placeholder for dynamic sizes in shaped types.
',3))]),e("details",Qg,[e("summary",null,[t[2745]||(t[2745]=e("a",{id:"Reactant.MLIR.API.mlirShapedTypeIsDynamicStrideOrOffset-Tuple{Any}",href:"#Reactant.MLIR.API.mlirShapedTypeIsDynamicStrideOrOffset-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirShapedTypeIsDynamicStrideOrOffset")],-1)),t[2746]||(t[2746]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2747]||(t[2747]=l('mlirShapedTypeIsDynamicStrideOrOffset(val)
Checks whether the given value is used as a placeholder for dynamic strides and offsets in shaped types.
',3))]),e("details",Wg,[e("summary",null,[t[2748]||(t[2748]=e("a",{id:"Reactant.MLIR.API.mlirSparseElementsAttrGetIndices-Tuple{Any}",href:"#Reactant.MLIR.API.mlirSparseElementsAttrGetIndices-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSparseElementsAttrGetIndices")],-1)),t[2749]||(t[2749]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2750]||(t[2750]=l('mlirSparseElementsAttrGetIndices(attr)
Returns the dense elements attribute containing 64-bit integer indices of non-null elements in the given sparse elements attribute.
',3))]),e("details",Hg,[e("summary",null,[t[2751]||(t[2751]=e("a",{id:"Reactant.MLIR.API.mlirSparseElementsAttrGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirSparseElementsAttrGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSparseElementsAttrGetTypeID")],-1)),t[2752]||(t[2752]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2753]||(t[2753]=l('mlirSparseElementsAttrGetTypeID()
Returns the typeID of a SparseElements attribute.
',3))]),e("details",Zg,[e("summary",null,[t[2754]||(t[2754]=e("a",{id:"Reactant.MLIR.API.mlirSparseElementsAttrGetValues-Tuple{Any}",href:"#Reactant.MLIR.API.mlirSparseElementsAttrGetValues-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSparseElementsAttrGetValues")],-1)),t[2755]||(t[2755]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2756]||(t[2756]=l('mlirSparseElementsAttrGetValues(attr)
Returns the dense elements attribute containing the non-null elements in the given sparse elements attribute.
',3))]),e("details",Jg,[e("summary",null,[t[2757]||(t[2757]=e("a",{id:"Reactant.MLIR.API.mlirSparseElementsAttribute-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirSparseElementsAttribute-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSparseElementsAttribute")],-1)),t[2758]||(t[2758]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2759]||(t[2759]=l('mlirSparseElementsAttribute(shapedType, denseIndices, denseValues)
Creates a sparse elements attribute of the given shape from a list of indices and a list of associated values. Both lists are expected to be dense elements attributes with the same number of elements. The list of indices is expected to contain 64-bit integers. The attribute is created in the same context as the type.
',3))]),e("details",Kg,[e("summary",null,[t[2760]||(t[2760]=e("a",{id:"Reactant.MLIR.API.mlirSparseTensorEncodingAttrGet-NTuple{9, Any}",href:"#Reactant.MLIR.API.mlirSparseTensorEncodingAttrGet-NTuple{9, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSparseTensorEncodingAttrGet")],-1)),t[2761]||(t[2761]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2762]||(t[2762]=l('mlirSparseTensorEncodingAttrGet(ctx, lvlRank, lvlTypes, dimToLvl, lvlTodim, posWidth, crdWidth, explicitVal, implicitVal)
Creates a sparse\\_tensor.encoding
attribute with the given parameters.
mlirSparseTensorEncodingAttrGetCrdWidth(attr)
Returns the coordinate bitwidth of the sparse\\_tensor.encoding
attribute.
mlirSparseTensorEncodingAttrGetDimToLvl(attr)
Returns the dimension-to-level mapping of the sparse\\_tensor.encoding
attribute.
mlirSparseTensorEncodingAttrGetExplicitVal(attr)
Returns the explicit value of the sparse\\_tensor.encoding
attribute.
mlirSparseTensorEncodingAttrGetImplicitVal(attr)
Returns the implicit value of the sparse\\_tensor.encoding
attribute.
mlirSparseTensorEncodingAttrGetLvlFmt(attr, lvl)
Returns a specified level-format of the sparse\\_tensor.encoding
attribute.
mlirSparseTensorEncodingAttrGetLvlToDim(attr)
Returns the level-to-dimension mapping of the sparse\\_tensor.encoding
attribute.
mlirSparseTensorEncodingAttrGetLvlType(attr, lvl)
Returns a specified level-type of the sparse\\_tensor.encoding
attribute.
mlirSparseTensorEncodingAttrGetPosWidth(attr)
Returns the position bitwidth of the sparse\\_tensor.encoding
attribute.
mlirSparseTensorEncodingGetLvlRank(attr)
Returns the level-rank of the sparse\\_tensor.encoding
attribute.
mlirStridedLayoutAttrGetTypeID()
Returns the typeID of a StridedLayout attribute.
',3))]),e("details",ny,[e("summary",null,[t[2793]||(t[2793]=e("a",{id:"Reactant.MLIR.API.mlirStringAttrGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirStringAttrGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirStringAttrGet")],-1)),t[2794]||(t[2794]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2795]||(t[2795]=l('mlirStringAttrGet(ctx, str)
Creates a string attribute in the given context containing the given string.
',3))]),e("details",py,[e("summary",null,[t[2796]||(t[2796]=e("a",{id:"Reactant.MLIR.API.mlirStringAttrGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirStringAttrGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirStringAttrGetTypeID")],-1)),t[2797]||(t[2797]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2798]||(t[2798]=l('mlirStringAttrGetTypeID()
Returns the typeID of a String attribute.
',3))]),e("details",ry,[e("summary",null,[t[2799]||(t[2799]=e("a",{id:"Reactant.MLIR.API.mlirStringAttrGetValue-Tuple{Any}",href:"#Reactant.MLIR.API.mlirStringAttrGetValue-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirStringAttrGetValue")],-1)),t[2800]||(t[2800]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2801]||(t[2801]=l('mlirStringAttrGetValue(attr)
Returns the attribute values as a string reference. The data remains live as long as the context in which the attribute lives.
',3))]),e("details",oy,[e("summary",null,[t[2802]||(t[2802]=e("a",{id:"Reactant.MLIR.API.mlirStringAttrTypedGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirStringAttrTypedGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirStringAttrTypedGet")],-1)),t[2803]||(t[2803]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2804]||(t[2804]=l('mlirStringAttrTypedGet(type, str)
Creates a string attribute in the given context containing the given string. Additionally, the attribute has the given type.
',3))]),e("details",dy,[e("summary",null,[t[2805]||(t[2805]=e("a",{id:"Reactant.MLIR.API.mlirStringRefCreate-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirStringRefCreate-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirStringRefCreate")],-1)),t[2806]||(t[2806]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2807]||(t[2807]=l('mlirStringRefCreate(str, length)
Constructs a string reference from the pointer and length. The pointer need not reference to a null-terminated string.
',3))]),e("details",cy,[e("summary",null,[t[2808]||(t[2808]=e("a",{id:"Reactant.MLIR.API.mlirStringRefCreateFromCString-Tuple{Any}",href:"#Reactant.MLIR.API.mlirStringRefCreateFromCString-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirStringRefCreateFromCString")],-1)),t[2809]||(t[2809]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2810]||(t[2810]=l('mlirStringRefCreateFromCString(str)
Constructs a string reference from a null-terminated C string. Prefer mlirStringRefCreate
if the length of the string is known.
mlirStringRefEqual(string, other)
Returns true if two string references are equal, false otherwise.
',3))]),e("details",uy,[e("summary",null,[t[2814]||(t[2814]=e("a",{id:"Reactant.MLIR.API.mlirSymbolRefAttrGet-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirSymbolRefAttrGet-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSymbolRefAttrGet")],-1)),t[2815]||(t[2815]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2816]||(t[2816]=l('mlirSymbolRefAttrGet(ctx, symbol, numReferences, references)
Creates a symbol reference attribute in the given context referencing a symbol identified by the given string inside a list of nested references. Each of the references in the list must not be nested.
',3))]),e("details",by,[e("summary",null,[t[2817]||(t[2817]=e("a",{id:"Reactant.MLIR.API.mlirSymbolRefAttrGetLeafReference-Tuple{Any}",href:"#Reactant.MLIR.API.mlirSymbolRefAttrGetLeafReference-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSymbolRefAttrGetLeafReference")],-1)),t[2818]||(t[2818]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2819]||(t[2819]=l('mlirSymbolRefAttrGetLeafReference(attr)
Returns the string reference to the leaf referenced symbol. The data remains live as long as the context in which the attribute lives.
',3))]),e("details",gy,[e("summary",null,[t[2820]||(t[2820]=e("a",{id:"Reactant.MLIR.API.mlirSymbolRefAttrGetNestedReference-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirSymbolRefAttrGetNestedReference-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSymbolRefAttrGetNestedReference")],-1)),t[2821]||(t[2821]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2822]||(t[2822]=l('mlirSymbolRefAttrGetNestedReference(attr, pos)
Returns pos-th reference nested in the given symbol reference attribute.
',3))]),e("details",yy,[e("summary",null,[t[2823]||(t[2823]=e("a",{id:"Reactant.MLIR.API.mlirSymbolRefAttrGetNumNestedReferences-Tuple{Any}",href:"#Reactant.MLIR.API.mlirSymbolRefAttrGetNumNestedReferences-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSymbolRefAttrGetNumNestedReferences")],-1)),t[2824]||(t[2824]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2825]||(t[2825]=l('mlirSymbolRefAttrGetNumNestedReferences(attr)
Returns the number of references nested in the given symbol reference attribute.
',3))]),e("details",my,[e("summary",null,[t[2826]||(t[2826]=e("a",{id:"Reactant.MLIR.API.mlirSymbolRefAttrGetRootReference-Tuple{Any}",href:"#Reactant.MLIR.API.mlirSymbolRefAttrGetRootReference-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSymbolRefAttrGetRootReference")],-1)),t[2827]||(t[2827]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2828]||(t[2828]=l('mlirSymbolRefAttrGetRootReference(attr)
Returns the string reference to the root referenced symbol. The data remains live as long as the context in which the attribute lives.
',3))]),e("details",ky,[e("summary",null,[t[2829]||(t[2829]=e("a",{id:"Reactant.MLIR.API.mlirSymbolRefAttrGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirSymbolRefAttrGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSymbolRefAttrGetTypeID")],-1)),t[2830]||(t[2830]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2831]||(t[2831]=l('mlirSymbolRefAttrGetTypeID()
Returns the typeID of an SymbolRef attribute.
',3))]),e("details",fy,[e("summary",null,[t[2832]||(t[2832]=e("a",{id:"Reactant.MLIR.API.mlirSymbolTableCreate-Tuple{Any}",href:"#Reactant.MLIR.API.mlirSymbolTableCreate-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSymbolTableCreate")],-1)),t[2833]||(t[2833]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2834]||(t[2834]=l('mlirSymbolTableCreate(operation)
Creates a symbol table for the given operation. If the operation does not have the SymbolTable trait, returns a null symbol table.
',3))]),e("details",Ry,[e("summary",null,[t[2835]||(t[2835]=e("a",{id:"Reactant.MLIR.API.mlirSymbolTableDestroy-Tuple{Any}",href:"#Reactant.MLIR.API.mlirSymbolTableDestroy-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSymbolTableDestroy")],-1)),t[2836]||(t[2836]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2837]||(t[2837]=l('mlirSymbolTableDestroy(symbolTable)
Destroys the symbol table created with mlirSymbolTableCreate
. This does not affect the operations in the table.
mlirSymbolTableErase(symbolTable, operation)
Removes the given operation from the symbol table and erases it.
',3))]),e("details",jy,[e("summary",null,[t[2841]||(t[2841]=e("a",{id:"Reactant.MLIR.API.mlirSymbolTableGetSymbolAttributeName-Tuple{}",href:"#Reactant.MLIR.API.mlirSymbolTableGetSymbolAttributeName-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSymbolTableGetSymbolAttributeName")],-1)),t[2842]||(t[2842]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2843]||(t[2843]=l('mlirSymbolTableGetSymbolAttributeName()
Returns the name of the attribute used to store symbol names compatible with symbol tables.
',3))]),e("details",My,[e("summary",null,[t[2844]||(t[2844]=e("a",{id:"Reactant.MLIR.API.mlirSymbolTableGetVisibilityAttributeName-Tuple{}",href:"#Reactant.MLIR.API.mlirSymbolTableGetVisibilityAttributeName-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSymbolTableGetVisibilityAttributeName")],-1)),t[2845]||(t[2845]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2846]||(t[2846]=l('mlirSymbolTableGetVisibilityAttributeName()
Returns the name of the attribute used to store symbol visibility.
',3))]),e("details",Ay,[e("summary",null,[t[2847]||(t[2847]=e("a",{id:"Reactant.MLIR.API.mlirSymbolTableInsert-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirSymbolTableInsert-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSymbolTableInsert")],-1)),t[2848]||(t[2848]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2849]||(t[2849]=l('mlirSymbolTableInsert(symbolTable, operation)
Inserts the given operation into the given symbol table. The operation must have the symbol trait. If the symbol table already has a symbol with the same name, renames the symbol being inserted to ensure name uniqueness. Note that this does not move the operation itself into the block of the symbol table operation, this should be done separately. Returns the name of the symbol after insertion.
',3))]),e("details",Ly,[e("summary",null,[t[2850]||(t[2850]=e("a",{id:"Reactant.MLIR.API.mlirSymbolTableIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirSymbolTableIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSymbolTableIsNull")],-1)),t[2851]||(t[2851]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2852]||(t[2852]=l('mlirSymbolTableIsNull(symbolTable)
Returns true if the symbol table is null.
',3))]),e("details",Ey,[e("summary",null,[t[2853]||(t[2853]=e("a",{id:"Reactant.MLIR.API.mlirSymbolTableLookup-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirSymbolTableLookup-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSymbolTableLookup")],-1)),t[2854]||(t[2854]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2855]||(t[2855]=l('mlirSymbolTableLookup(symbolTable, name)
Looks up a symbol with the given name in the given symbol table and returns the operation that corresponds to the symbol. If the symbol cannot be found, returns a null operation.
',3))]),e("details",vy,[e("summary",null,[t[2856]||(t[2856]=e("a",{id:"Reactant.MLIR.API.mlirSymbolTableReplaceAllSymbolUses-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirSymbolTableReplaceAllSymbolUses-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSymbolTableReplaceAllSymbolUses")],-1)),t[2857]||(t[2857]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2858]||(t[2858]=l('mlirSymbolTableReplaceAllSymbolUses(oldSymbol, newSymbol, from)
Attempt to replace all uses that are nested within the given operation of the given symbol 'oldSymbol' with the provided 'newSymbol'. This does not traverse into nested symbol tables. Will fail atomically if there are any unknown operations that may be potential symbol tables.
',3))]),e("details",Ty,[e("summary",null,[t[2859]||(t[2859]=e("a",{id:"Reactant.MLIR.API.mlirSymbolTableWalkSymbolTables-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirSymbolTableWalkSymbolTables-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirSymbolTableWalkSymbolTables")],-1)),t[2860]||(t[2860]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2861]||(t[2861]=l('mlirSymbolTableWalkSymbolTables(from, allSymUsesVisible, callback, userData)
Walks all symbol table operations nested within, and including, op
. For each symbol table operation, the provided callback is invoked with the op and a boolean signifying if the symbols within that symbol table can be treated as if all uses within the IR are visible to the caller. allSymUsesVisible
identifies whether all of the symbol uses of symbols within op
are visible.
mlirTF32TypeGet(ctx)
Creates a TF32 type in the given context. The type is owned by the context.
',3))]),e("details",xy,[e("summary",null,[t[2865]||(t[2865]=e("a",{id:"Reactant.MLIR.API.mlirTransformApplyNamedSequence-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirTransformApplyNamedSequence-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTransformApplyNamedSequence")],-1)),t[2866]||(t[2866]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2867]||(t[2867]=l('mlirTransformApplyNamedSequence(payload, transformRoot, transformModule, transformOptions)
Applies the transformation script starting at the given transform root operation to the given payload operation. The module containing the transform root as well as the transform options should be provided. The transform operation must implement TransformOpInterface and the module must be a ModuleOp. Returns the status of the application.
',3))]),e("details",Fy,[e("summary",null,[t[2868]||(t[2868]=e("a",{id:"Reactant.MLIR.API.mlirTransformOptionsCreate-Tuple{}",href:"#Reactant.MLIR.API.mlirTransformOptionsCreate-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTransformOptionsCreate")],-1)),t[2869]||(t[2869]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2870]||(t[2870]=l('mlirTransformOptionsCreate()
Creates a default-initialized transform options object.
',3))]),e("details",Py,[e("summary",null,[t[2871]||(t[2871]=e("a",{id:"Reactant.MLIR.API.mlirTransformOptionsDestroy-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTransformOptionsDestroy-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTransformOptionsDestroy")],-1)),t[2872]||(t[2872]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2873]||(t[2873]=l('mlirTransformOptionsDestroy(transformOptions)
Destroys a transform options object previously created by mlirTransformOptionsCreate
.
mlirTransformOptionsEnableExpensiveChecks(transformOptions, enable)
Enables or disables expensive checks in transform options.
',3))]),e("details",Oy,[e("summary",null,[t[2877]||(t[2877]=e("a",{id:"Reactant.MLIR.API.mlirTransformOptionsEnforceSingleTopLevelTransformOp-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirTransformOptionsEnforceSingleTopLevelTransformOp-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTransformOptionsEnforceSingleTopLevelTransformOp")],-1)),t[2878]||(t[2878]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2879]||(t[2879]=l('mlirTransformOptionsEnforceSingleTopLevelTransformOp(transformOptions, enable)
Enables or disables the enforcement of the top-level transform op being single in transform options.
',3))]),e("details",By,[e("summary",null,[t[2880]||(t[2880]=e("a",{id:"Reactant.MLIR.API.mlirTransformOptionsGetEnforceSingleTopLevelTransformOp-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTransformOptionsGetEnforceSingleTopLevelTransformOp-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTransformOptionsGetEnforceSingleTopLevelTransformOp")],-1)),t[2881]||(t[2881]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2882]||(t[2882]=l('mlirTransformOptionsGetEnforceSingleTopLevelTransformOp(transformOptions)
Returns true if the enforcement of the top-level transform op being single is enabled in transform options.
',3))]),e("details",Gy,[e("summary",null,[t[2883]||(t[2883]=e("a",{id:"Reactant.MLIR.API.mlirTransformOptionsGetExpensiveChecksEnabled-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTransformOptionsGetExpensiveChecksEnabled-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTransformOptionsGetExpensiveChecksEnabled")],-1)),t[2884]||(t[2884]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2885]||(t[2885]=l('mlirTransformOptionsGetExpensiveChecksEnabled(transformOptions)
Returns true if expensive checks are enabled in transform options.
',3))]),e("details",zy,[e("summary",null,[t[2886]||(t[2886]=e("a",{id:"Reactant.MLIR.API.mlirTranslateModuleToLLVMIR-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirTranslateModuleToLLVMIR-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTranslateModuleToLLVMIR")],-1)),t[2887]||(t[2887]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2888]||(t[2888]=l('mlirTranslateModuleToLLVMIR(_module, context)
Translate operation that satisfies LLVM dialect module requirements into an LLVM IR module living in the given context. This translates operations from any dilalect that has a registered implementation of LLVMTranslationDialectInterface.
Returns
the generated LLVM IR Module from the translated MLIR module, it is owned by the caller.
',5))]),e("details",wy,[e("summary",null,[t[2889]||(t[2889]=e("a",{id:"Reactant.MLIR.API.mlirTupleTypeGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirTupleTypeGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTupleTypeGet")],-1)),t[2890]||(t[2890]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2891]||(t[2891]=l('mlirTupleTypeGet(ctx, numElements, elements)
Creates a tuple type that consists of the given list of elemental types. The type is owned by the context.
',3))]),e("details",Sy,[e("summary",null,[t[2892]||(t[2892]=e("a",{id:"Reactant.MLIR.API.mlirTupleTypeGetNumTypes-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTupleTypeGetNumTypes-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTupleTypeGetNumTypes")],-1)),t[2893]||(t[2893]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2894]||(t[2894]=l('mlirTupleTypeGetNumTypes(type)
Returns the number of types contained in a tuple.
',3))]),e("details",Ny,[e("summary",null,[t[2895]||(t[2895]=e("a",{id:"Reactant.MLIR.API.mlirTupleTypeGetType-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirTupleTypeGetType-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTupleTypeGetType")],-1)),t[2896]||(t[2896]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2897]||(t[2897]=l('mlirTupleTypeGetType(type, pos)
Returns the pos-th type in the tuple type.
',3))]),e("details",Vy,[e("summary",null,[t[2898]||(t[2898]=e("a",{id:"Reactant.MLIR.API.mlirTupleTypeGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirTupleTypeGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTupleTypeGetTypeID")],-1)),t[2899]||(t[2899]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2900]||(t[2900]=l('mlirTupleTypeGetTypeID()
Returns the typeID of an Tuple type.
',3))]),e("details",qy,[e("summary",null,[t[2901]||(t[2901]=e("a",{id:"Reactant.MLIR.API.mlirTypeAttrGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeAttrGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeAttrGet")],-1)),t[2902]||(t[2902]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2903]||(t[2903]=l('mlirTypeAttrGet(type)
Creates a type attribute wrapping the given type in the same context as the type.
',3))]),e("details",Uy,[e("summary",null,[t[2904]||(t[2904]=e("a",{id:"Reactant.MLIR.API.mlirTypeAttrGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirTypeAttrGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeAttrGetTypeID")],-1)),t[2905]||(t[2905]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2906]||(t[2906]=l('mlirTypeAttrGetTypeID()
Returns the typeID of a Type attribute.
',3))]),e("details",Qy,[e("summary",null,[t[2907]||(t[2907]=e("a",{id:"Reactant.MLIR.API.mlirTypeAttrGetValue-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeAttrGetValue-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeAttrGetValue")],-1)),t[2908]||(t[2908]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2909]||(t[2909]=l('mlirTypeAttrGetValue(attr)
Returns the type stored in the given type attribute.
',3))]),e("details",Wy,[e("summary",null,[t[2910]||(t[2910]=e("a",{id:"Reactant.MLIR.API.mlirTypeDump-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeDump-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeDump")],-1)),t[2911]||(t[2911]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2912]||(t[2912]=l('mlirTypeDump(type)
Prints the type to the standard error stream.
',3))]),e("details",Hy,[e("summary",null,[t[2913]||(t[2913]=e("a",{id:"Reactant.MLIR.API.mlirTypeEqual-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirTypeEqual-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeEqual")],-1)),t[2914]||(t[2914]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2915]||(t[2915]=l('mlirTypeEqual(t1, t2)
Checks if two types are equal.
',3))]),e("details",Zy,[e("summary",null,[t[2916]||(t[2916]=e("a",{id:"Reactant.MLIR.API.mlirTypeGetContext-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeGetContext-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeGetContext")],-1)),t[2917]||(t[2917]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2918]||(t[2918]=l('mlirTypeGetContext(type)
Gets the context that a type was created with.
',3))]),e("details",Jy,[e("summary",null,[t[2919]||(t[2919]=e("a",{id:"Reactant.MLIR.API.mlirTypeGetDialect-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeGetDialect-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeGetDialect")],-1)),t[2920]||(t[2920]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2921]||(t[2921]=l('mlirTypeGetDialect(type)
Gets the dialect a type belongs to.
',3))]),e("details",Ky,[e("summary",null,[t[2922]||(t[2922]=e("a",{id:"Reactant.MLIR.API.mlirTypeGetTypeID-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeGetTypeID-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeGetTypeID")],-1)),t[2923]||(t[2923]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2924]||(t[2924]=l('mlirTypeGetTypeID(type)
Gets the type ID of the type.
',3))]),e("details",$y,[e("summary",null,[t[2925]||(t[2925]=e("a",{id:"Reactant.MLIR.API.mlirTypeIDAllocatorAllocateTypeID-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIDAllocatorAllocateTypeID-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIDAllocatorAllocateTypeID")],-1)),t[2926]||(t[2926]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2927]||(t[2927]=l('mlirTypeIDAllocatorAllocateTypeID(allocator)
Allocates a type id that is valid for the lifetime of the allocator
',3))]),e("details",Xy,[e("summary",null,[t[2928]||(t[2928]=e("a",{id:"Reactant.MLIR.API.mlirTypeIDAllocatorCreate-Tuple{}",href:"#Reactant.MLIR.API.mlirTypeIDAllocatorCreate-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIDAllocatorCreate")],-1)),t[2929]||(t[2929]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2930]||(t[2930]=l('mlirTypeIDAllocatorCreate()
Creates a type id allocator for dynamic type id creation
',3))]),e("details",Yy,[e("summary",null,[t[2931]||(t[2931]=e("a",{id:"Reactant.MLIR.API.mlirTypeIDAllocatorDestroy-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIDAllocatorDestroy-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIDAllocatorDestroy")],-1)),t[2932]||(t[2932]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2933]||(t[2933]=l('mlirTypeIDAllocatorDestroy(allocator)
Deallocates the allocator and all allocated type ids
',3))]),e("details",_y,[e("summary",null,[t[2934]||(t[2934]=e("a",{id:"Reactant.MLIR.API.mlirTypeIDCreate-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIDCreate-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIDCreate")],-1)),t[2935]||(t[2935]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2936]||(t[2936]=l('mlirTypeIDCreate(ptr)
ptr
must be 8 byte aligned and unique to a type valid for the duration of the returned type id's usage
mlirTypeIDEqual(typeID1, typeID2)
Checks if two type ids are equal.
',3))]),e("details",em,[e("summary",null,[t[2940]||(t[2940]=e("a",{id:"Reactant.MLIR.API.mlirTypeIDHashValue-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIDHashValue-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIDHashValue")],-1)),t[2941]||(t[2941]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2942]||(t[2942]=l('mlirTypeIDHashValue(typeID)
Returns the hash value of the type id.
',3))]),e("details",sm,[e("summary",null,[t[2943]||(t[2943]=e("a",{id:"Reactant.MLIR.API.mlirTypeIDIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIDIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIDIsNull")],-1)),t[2944]||(t[2944]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2945]||(t[2945]=l('mlirTypeIDIsNull(typeID)
Checks whether a type id is null.
',3))]),e("details",am,[e("summary",null,[t[2946]||(t[2946]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAAnyQuantizedType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAAnyQuantizedType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAAnyQuantizedType")],-1)),t[2947]||(t[2947]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2948]||(t[2948]=l('mlirTypeIsAAnyQuantizedType(type)
Returns true
if the given type is an AnyQuantizedType.
mlirTypeIsABF16(type)
Checks whether the given type is a bf16 type.
',3))]),e("details",lm,[e("summary",null,[t[2952]||(t[2952]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsACalibratedQuantizedType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsACalibratedQuantizedType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsACalibratedQuantizedType")],-1)),t[2953]||(t[2953]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2954]||(t[2954]=l('mlirTypeIsACalibratedQuantizedType(type)
Returns true
if the given type is a CalibratedQuantizedType.
mlirTypeIsAComplex(type)
Checks whether the given type is a Complex type.
',3))]),e("details",pm,[e("summary",null,[t[2958]||(t[2958]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAF16-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAF16-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAF16")],-1)),t[2959]||(t[2959]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2960]||(t[2960]=l('mlirTypeIsAF16(type)
Checks whether the given type is an f16 type.
',3))]),e("details",rm,[e("summary",null,[t[2961]||(t[2961]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAF32-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAF32-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAF32")],-1)),t[2962]||(t[2962]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2963]||(t[2963]=l('mlirTypeIsAF32(type)
Checks whether the given type is an f32 type.
',3))]),e("details",om,[e("summary",null,[t[2964]||(t[2964]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAF64-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAF64-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAF64")],-1)),t[2965]||(t[2965]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2966]||(t[2966]=l('mlirTypeIsAF64(type)
Checks whether the given type is an f64 type.
',3))]),e("details",dm,[e("summary",null,[t[2967]||(t[2967]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAFloat-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAFloat-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAFloat")],-1)),t[2968]||(t[2968]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2969]||(t[2969]=l('mlirTypeIsAFloat(type)
Checks whether the given type is a floating-point type.
',3))]),e("details",cm,[e("summary",null,[t[2970]||(t[2970]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAFloat4E2M1FN-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAFloat4E2M1FN-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAFloat4E2M1FN")],-1)),t[2971]||(t[2971]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2972]||(t[2972]=l('mlirTypeIsAFloat4E2M1FN(type)
Checks whether the given type is an f4E2M1FN type.
',3))]),e("details",hm,[e("summary",null,[t[2973]||(t[2973]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAFloat6E2M3FN-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAFloat6E2M3FN-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAFloat6E2M3FN")],-1)),t[2974]||(t[2974]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2975]||(t[2975]=l('mlirTypeIsAFloat6E2M3FN(type)
Checks whether the given type is an f6E2M3FN type.
',3))]),e("details",um,[e("summary",null,[t[2976]||(t[2976]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAFloat6E3M2FN-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAFloat6E3M2FN-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAFloat6E3M2FN")],-1)),t[2977]||(t[2977]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2978]||(t[2978]=l('mlirTypeIsAFloat6E3M2FN(type)
Checks whether the given type is an f6E3M2FN type.
',3))]),e("details",bm,[e("summary",null,[t[2979]||(t[2979]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAFloat8E3M4-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAFloat8E3M4-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAFloat8E3M4")],-1)),t[2980]||(t[2980]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2981]||(t[2981]=l('mlirTypeIsAFloat8E3M4(type)
Checks whether the given type is an f8E3M4 type.
',3))]),e("details",gm,[e("summary",null,[t[2982]||(t[2982]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAFloat8E4M3-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAFloat8E4M3-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAFloat8E4M3")],-1)),t[2983]||(t[2983]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2984]||(t[2984]=l('mlirTypeIsAFloat8E4M3(type)
Checks whether the given type is an f8E4M3 type.
',3))]),e("details",ym,[e("summary",null,[t[2985]||(t[2985]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAFloat8E4M3B11FNUZ-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAFloat8E4M3B11FNUZ-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAFloat8E4M3B11FNUZ")],-1)),t[2986]||(t[2986]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2987]||(t[2987]=l('mlirTypeIsAFloat8E4M3B11FNUZ(type)
Checks whether the given type is an f8E4M3B11FNUZ type.
',3))]),e("details",mm,[e("summary",null,[t[2988]||(t[2988]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAFloat8E4M3FN-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAFloat8E4M3FN-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAFloat8E4M3FN")],-1)),t[2989]||(t[2989]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2990]||(t[2990]=l('mlirTypeIsAFloat8E4M3FN(type)
Checks whether the given type is an f8E4M3FN type.
',3))]),e("details",km,[e("summary",null,[t[2991]||(t[2991]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAFloat8E4M3FNUZ-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAFloat8E4M3FNUZ-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAFloat8E4M3FNUZ")],-1)),t[2992]||(t[2992]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2993]||(t[2993]=l('mlirTypeIsAFloat8E4M3FNUZ(type)
Checks whether the given type is an f8E4M3FNUZ type.
',3))]),e("details",fm,[e("summary",null,[t[2994]||(t[2994]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAFloat8E5M2-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAFloat8E5M2-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAFloat8E5M2")],-1)),t[2995]||(t[2995]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2996]||(t[2996]=l('mlirTypeIsAFloat8E5M2(type)
Checks whether the given type is an f8E5M2 type.
',3))]),e("details",Rm,[e("summary",null,[t[2997]||(t[2997]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAFloat8E5M2FNUZ-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAFloat8E5M2FNUZ-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAFloat8E5M2FNUZ")],-1)),t[2998]||(t[2998]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2999]||(t[2999]=l('mlirTypeIsAFloat8E5M2FNUZ(type)
Checks whether the given type is an f8E5M2FNUZ type.
',3))]),e("details",Im,[e("summary",null,[t[3e3]||(t[3e3]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAFloat8E8M0FNU-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAFloat8E8M0FNU-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAFloat8E8M0FNU")],-1)),t[3001]||(t[3001]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3002]||(t[3002]=l('mlirTypeIsAFloat8E8M0FNU(type)
Checks whether the given type is an f8E8M0FNU type.
',3))]),e("details",jm,[e("summary",null,[t[3003]||(t[3003]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAFunction-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAFunction-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAFunction")],-1)),t[3004]||(t[3004]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3005]||(t[3005]=l('mlirTypeIsAFunction(type)
Checks whether the given type is a function type.
',3))]),e("details",Mm,[e("summary",null,[t[3006]||(t[3006]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAIndex-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAIndex-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAIndex")],-1)),t[3007]||(t[3007]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3008]||(t[3008]=l('mlirTypeIsAIndex(type)
Checks whether the given type is an index type.
',3))]),e("details",Am,[e("summary",null,[t[3009]||(t[3009]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAInteger-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAInteger-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAInteger")],-1)),t[3010]||(t[3010]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3011]||(t[3011]=l('mlirTypeIsAInteger(type)
Checks whether the given type is an integer type.
',3))]),e("details",Lm,[e("summary",null,[t[3012]||(t[3012]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsALLVMPointerType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsALLVMPointerType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsALLVMPointerType")],-1)),t[3013]||(t[3013]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3014]||(t[3014]=l('mlirTypeIsALLVMPointerType(type)
Returns true
if the type is an LLVM dialect pointer type.
mlirTypeIsALLVMStructType(type)
Returns true
if the type is an LLVM dialect struct type.
mlirTypeIsAMemRef(type)
Checks whether the given type is a MemRef type.
',3))]),e("details",Tm,[e("summary",null,[t[3021]||(t[3021]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsANone-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsANone-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsANone")],-1)),t[3022]||(t[3022]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3023]||(t[3023]=l('mlirTypeIsANone(type)
Checks whether the given type is a None type.
',3))]),e("details",Cm,[e("summary",null,[t[3024]||(t[3024]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAOpaque-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAOpaque-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAOpaque")],-1)),t[3025]||(t[3025]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3026]||(t[3026]=l('mlirTypeIsAOpaque(type)
Checks whether the given type is an opaque type.
',3))]),e("details",xm,[e("summary",null,[t[3027]||(t[3027]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAQuantizedType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAQuantizedType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAQuantizedType")],-1)),t[3028]||(t[3028]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3029]||(t[3029]=l('mlirTypeIsAQuantizedType(type)
Returns true
if the given type is a quantization dialect type.
mlirTypeIsARankedTensor(type)
Checks whether the given type is a ranked tensor type.
',3))]),e("details",Pm,[e("summary",null,[t[3033]||(t[3033]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAShaped-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAShaped-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAShaped")],-1)),t[3034]||(t[3034]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3035]||(t[3035]=l('mlirTypeIsAShaped(type)
Checks whether the given type is a Shaped type.
',3))]),e("details",Dm,[e("summary",null,[t[3036]||(t[3036]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsATF32-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsATF32-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsATF32")],-1)),t[3037]||(t[3037]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3038]||(t[3038]=l('mlirTypeIsATF32(type)
Checks whether the given type is an TF32 type.
',3))]),e("details",Om,[e("summary",null,[t[3039]||(t[3039]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsATensor-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsATensor-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsATensor")],-1)),t[3040]||(t[3040]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3041]||(t[3041]=l('mlirTypeIsATensor(type)
Checks whether the given type is a Tensor type.
',3))]),e("details",Bm,[e("summary",null,[t[3042]||(t[3042]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsATuple-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsATuple-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsATuple")],-1)),t[3043]||(t[3043]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3044]||(t[3044]=l('mlirTypeIsATuple(type)
Checks whether the given type is a tuple type.
',3))]),e("details",Gm,[e("summary",null,[t[3045]||(t[3045]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAUniformQuantizedPerAxisType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAUniformQuantizedPerAxisType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAUniformQuantizedPerAxisType")],-1)),t[3046]||(t[3046]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3047]||(t[3047]=l('mlirTypeIsAUniformQuantizedPerAxisType(type)
Returns true
if the given type is a UniformQuantizedPerAxisType.
mlirTypeIsAUniformQuantizedType(type)
Returns true
if the given type is a UniformQuantizedType.
mlirTypeIsAUnrankedMemRef(type)
Checks whether the given type is an UnrankedMemRef type.
',3))]),e("details",Sm,[e("summary",null,[t[3054]||(t[3054]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAUnrankedTensor-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAUnrankedTensor-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAUnrankedTensor")],-1)),t[3055]||(t[3055]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3056]||(t[3056]=l('mlirTypeIsAUnrankedTensor(type)
Checks whether the given type is an unranked tensor type.
',3))]),e("details",Nm,[e("summary",null,[t[3057]||(t[3057]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsAVector-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsAVector-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsAVector")],-1)),t[3058]||(t[3058]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3059]||(t[3059]=l('mlirTypeIsAVector(type)
Checks whether the given type is a Vector type.
',3))]),e("details",Vm,[e("summary",null,[t[3060]||(t[3060]=e("a",{id:"Reactant.MLIR.API.mlirTypeIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirTypeIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeIsNull")],-1)),t[3061]||(t[3061]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3062]||(t[3062]=l('mlirTypeIsNull(type)
Checks whether a type is null.
',3))]),e("details",qm,[e("summary",null,[t[3063]||(t[3063]=e("a",{id:"Reactant.MLIR.API.mlirTypeParseGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirTypeParseGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypeParseGet")],-1)),t[3064]||(t[3064]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3065]||(t[3065]=l('mlirTypeParseGet(context, type)
Parses a type. The type is owned by the context.
',3))]),e("details",Um,[e("summary",null,[t[3066]||(t[3066]=e("a",{id:"Reactant.MLIR.API.mlirTypePrint-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirTypePrint-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirTypePrint")],-1)),t[3067]||(t[3067]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3068]||(t[3068]=l('mlirTypePrint(type, callback, userData)
Prints a location by sending chunks of the string representation and forwarding userData to
callback`. Note that the callback may be called several times with consecutive chunks of the string.
mlirUniformQuantizedPerAxisTypeGet(flags, storageType, expressedType, nDims, scales, zeroPoints, quantizedDimension, storageTypeMin, storageTypeMax)
Creates an instance of UniformQuantizedPerAxisType with the given parameters in the same context as storageType
and returns it. scales
and zeroPoints
point to nDims
number of elements. The instance is owned by the context.
mlirUniformQuantizedPerAxisTypeGetNumDims(type)
Returns the number of axes in the given quantized per-axis type.
',3))]),e("details",Hm,[e("summary",null,[t[3075]||(t[3075]=e("a",{id:"Reactant.MLIR.API.mlirUniformQuantizedPerAxisTypeGetQuantizedDimension-Tuple{Any}",href:"#Reactant.MLIR.API.mlirUniformQuantizedPerAxisTypeGetQuantizedDimension-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirUniformQuantizedPerAxisTypeGetQuantizedDimension")],-1)),t[3076]||(t[3076]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3077]||(t[3077]=l('mlirUniformQuantizedPerAxisTypeGetQuantizedDimension(type)
Returns the index of the quantized dimension in the given quantized per-axis type.
',3))]),e("details",Zm,[e("summary",null,[t[3078]||(t[3078]=e("a",{id:"Reactant.MLIR.API.mlirUniformQuantizedPerAxisTypeGetScale-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirUniformQuantizedPerAxisTypeGetScale-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirUniformQuantizedPerAxisTypeGetScale")],-1)),t[3079]||(t[3079]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3080]||(t[3080]=l('mlirUniformQuantizedPerAxisTypeGetScale(type, pos)
Returns pos
-th scale of the given quantized per-axis type.
mlirUniformQuantizedPerAxisTypeGetZeroPoint(type, pos)
Returns pos
-th zero point of the given quantized per-axis type.
mlirUniformQuantizedPerAxisTypeIsFixedPoint(type)
Returns true
if the given uniform quantized per-axis type is fixed-point.
mlirUniformQuantizedTypeGet(flags, storageType, expressedType, scale, zeroPoint, storageTypeMin, storageTypeMax)
Creates an instance of UniformQuantizedType with the given parameters in the same context as storageType
and returns it. The instance is owned by the context.
mlirUniformQuantizedTypeGetScale(type)
Returns the scale of the given uniform quantized type.
',3))]),e("details",Ym,[e("summary",null,[t[3093]||(t[3093]=e("a",{id:"Reactant.MLIR.API.mlirUniformQuantizedTypeGetZeroPoint-Tuple{Any}",href:"#Reactant.MLIR.API.mlirUniformQuantizedTypeGetZeroPoint-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirUniformQuantizedTypeGetZeroPoint")],-1)),t[3094]||(t[3094]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3095]||(t[3095]=l('mlirUniformQuantizedTypeGetZeroPoint(type)
Returns the zero point of the given uniform quantized type.
',3))]),e("details",_m,[e("summary",null,[t[3096]||(t[3096]=e("a",{id:"Reactant.MLIR.API.mlirUniformQuantizedTypeIsFixedPoint-Tuple{Any}",href:"#Reactant.MLIR.API.mlirUniformQuantizedTypeIsFixedPoint-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirUniformQuantizedTypeIsFixedPoint")],-1)),t[3097]||(t[3097]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3098]||(t[3098]=l('mlirUniformQuantizedTypeIsFixedPoint(type)
Returns true
if the given uniform quantized type is fixed-point.
mlirUnitAttrGet(ctx)
Creates a unit attribute in the given context.
',3))]),e("details",ek,[e("summary",null,[t[3102]||(t[3102]=e("a",{id:"Reactant.MLIR.API.mlirUnitAttrGetTypeID-Tuple{}",href:"#Reactant.MLIR.API.mlirUnitAttrGetTypeID-Tuple{}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirUnitAttrGetTypeID")],-1)),t[3103]||(t[3103]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3104]||(t[3104]=l('mlirUnitAttrGetTypeID()
Returns the typeID of a Unit attribute.
',3))]),e("details",sk,[e("summary",null,[t[3105]||(t[3105]=e("a",{id:"Reactant.MLIR.API.mlirUnmanagedDenseResourceElementsAttrGet-NTuple{8, Any}",href:"#Reactant.MLIR.API.mlirUnmanagedDenseResourceElementsAttrGet-NTuple{8, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirUnmanagedDenseResourceElementsAttrGet")],-1)),t[3106]||(t[3106]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3107]||(t[3107]=l('mlirUnmanagedDenseResourceElementsAttrGet(shapedType, name, data, dataLength, dataAlignment, dataIsMutable, deleter, userData)
Unlike the typed accessors below, constructs the attribute with a raw data buffer and no type/alignment checking. Use a more strongly typed accessor if possible. If dataIsMutable is false, then an immutable AsmResourceBlob will be created and that passed data contents will be treated as const. If the deleter is non NULL, then it will be called when the data buffer can no longer be accessed (passing userData to it).
',3))]),e("details",ak,[e("summary",null,[t[3108]||(t[3108]=e("a",{id:"Reactant.MLIR.API.mlirUnrankedMemRefTypeGet-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirUnrankedMemRefTypeGet-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirUnrankedMemRefTypeGet")],-1)),t[3109]||(t[3109]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3110]||(t[3110]=l('mlirUnrankedMemRefTypeGet(elementType, memorySpace)
Creates an Unranked MemRef type with the given element type and in the given memory space. The type is owned by the context of element type.
',3))]),e("details",ik,[e("summary",null,[t[3111]||(t[3111]=e("a",{id:"Reactant.MLIR.API.mlirUnrankedMemRefTypeGetChecked-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirUnrankedMemRefTypeGetChecked-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirUnrankedMemRefTypeGetChecked")],-1)),t[3112]||(t[3112]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3113]||(t[3113]=l('mlirUnrankedMemRefTypeGetChecked(loc, elementType, memorySpace)
Same as "mlirUnrankedMemRefTypeGet
" but returns a nullptr wrapping MlirType
on illegal arguments, emitting appropriate diagnostics.
mlirUnrankedMemRefTypeGetTypeID()
Returns the typeID of an UnrankedMemRef type.
',3))]),e("details",nk,[e("summary",null,[t[3117]||(t[3117]=e("a",{id:"Reactant.MLIR.API.mlirUnrankedMemrefGetMemorySpace-Tuple{Any}",href:"#Reactant.MLIR.API.mlirUnrankedMemrefGetMemorySpace-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirUnrankedMemrefGetMemorySpace")],-1)),t[3118]||(t[3118]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3119]||(t[3119]=l('mlirUnrankedMemrefGetMemorySpace(type)
Returns the memory spcae of the given Unranked MemRef type.
',3))]),e("details",pk,[e("summary",null,[t[3120]||(t[3120]=e("a",{id:"Reactant.MLIR.API.mlirUnrankedTensorTypeGet-Tuple{Any}",href:"#Reactant.MLIR.API.mlirUnrankedTensorTypeGet-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirUnrankedTensorTypeGet")],-1)),t[3121]||(t[3121]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3122]||(t[3122]=l('mlirUnrankedTensorTypeGet(elementType)
Creates an unranked tensor type with the given element type in the same context as the element type. The type is owned by the context.
',3))]),e("details",rk,[e("summary",null,[t[3123]||(t[3123]=e("a",{id:"Reactant.MLIR.API.mlirUnrankedTensorTypeGetChecked-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirUnrankedTensorTypeGetChecked-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirUnrankedTensorTypeGetChecked")],-1)),t[3124]||(t[3124]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3125]||(t[3125]=l('mlirUnrankedTensorTypeGetChecked(loc, elementType)
Same as "mlirUnrankedTensorTypeGet
" but returns a nullptr wrapping MlirType
on illegal arguments, emitting appropriate diagnostics.
mlirUnrankedTensorTypeGetTypeID()
Returns the typeID of an UnrankedTensor type.
',3))]),e("details",dk,[e("summary",null,[t[3129]||(t[3129]=e("a",{id:"Reactant.MLIR.API.mlirValueDump-Tuple{Any}",href:"#Reactant.MLIR.API.mlirValueDump-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirValueDump")],-1)),t[3130]||(t[3130]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3131]||(t[3131]=l('mlirValueDump(value)
Prints the value to the standard error stream.
',3))]),e("details",ck,[e("summary",null,[t[3132]||(t[3132]=e("a",{id:"Reactant.MLIR.API.mlirValueEqual-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirValueEqual-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirValueEqual")],-1)),t[3133]||(t[3133]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3134]||(t[3134]=l('mlirValueEqual(value1, value2)
Returns 1 if two values are equal, 0 otherwise.
',3))]),e("details",hk,[e("summary",null,[t[3135]||(t[3135]=e("a",{id:"Reactant.MLIR.API.mlirValueGetFirstUse-Tuple{Any}",href:"#Reactant.MLIR.API.mlirValueGetFirstUse-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirValueGetFirstUse")],-1)),t[3136]||(t[3136]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3137]||(t[3137]=l('mlirValueGetFirstUse(value)
Returns an op operand representing the first use of the value, or a null op operand if there are no uses.
',3))]),e("details",uk,[e("summary",null,[t[3138]||(t[3138]=e("a",{id:"Reactant.MLIR.API.mlirValueGetType-Tuple{Any}",href:"#Reactant.MLIR.API.mlirValueGetType-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirValueGetType")],-1)),t[3139]||(t[3139]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3140]||(t[3140]=l('mlirValueGetType(value)
Returns the type of the value.
',3))]),e("details",bk,[e("summary",null,[t[3141]||(t[3141]=e("a",{id:"Reactant.MLIR.API.mlirValueIsABlockArgument-Tuple{Any}",href:"#Reactant.MLIR.API.mlirValueIsABlockArgument-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirValueIsABlockArgument")],-1)),t[3142]||(t[3142]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3143]||(t[3143]=l('mlirValueIsABlockArgument(value)
Returns 1 if the value is a block argument, 0 otherwise.
',3))]),e("details",gk,[e("summary",null,[t[3144]||(t[3144]=e("a",{id:"Reactant.MLIR.API.mlirValueIsAOpResult-Tuple{Any}",href:"#Reactant.MLIR.API.mlirValueIsAOpResult-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirValueIsAOpResult")],-1)),t[3145]||(t[3145]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3146]||(t[3146]=l('mlirValueIsAOpResult(value)
Returns 1 if the value is an operation result, 0 otherwise.
',3))]),e("details",yk,[e("summary",null,[t[3147]||(t[3147]=e("a",{id:"Reactant.MLIR.API.mlirValueIsNull-Tuple{Any}",href:"#Reactant.MLIR.API.mlirValueIsNull-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirValueIsNull")],-1)),t[3148]||(t[3148]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3149]||(t[3149]=l('mlirValueIsNull(value)
Returns whether the value is null.
',3))]),e("details",mk,[e("summary",null,[t[3150]||(t[3150]=e("a",{id:"Reactant.MLIR.API.mlirValuePrint-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirValuePrint-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirValuePrint")],-1)),t[3151]||(t[3151]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3152]||(t[3152]=l('mlirValuePrint(value, callback, userData)
Prints a value by sending chunks of the string representation and forwarding userData to
callback`. Note that the callback may be called several times with consecutive chunks of the string.
mlirValuePrintAsOperand(value, state, callback, userData)
Prints a value as an operand (i.e., the ValueID).
',3))]),e("details",fk,[e("summary",null,[t[3156]||(t[3156]=e("a",{id:"Reactant.MLIR.API.mlirValueReplaceAllUsesOfWith-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirValueReplaceAllUsesOfWith-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirValueReplaceAllUsesOfWith")],-1)),t[3157]||(t[3157]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3158]||(t[3158]=l('mlirValueReplaceAllUsesOfWith(of, with)
Replace all uses of 'of' value with the 'with' value, updating anything in the IR that uses 'of' to use the other value instead. When this returns there are zero uses of 'of'.
',3))]),e("details",Rk,[e("summary",null,[t[3159]||(t[3159]=e("a",{id:"Reactant.MLIR.API.mlirValueSetType-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirValueSetType-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirValueSetType")],-1)),t[3160]||(t[3160]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3161]||(t[3161]=l('mlirValueSetType(value, type)
Set the type of the value.
',3))]),e("details",Ik,[e("summary",null,[t[3162]||(t[3162]=e("a",{id:"Reactant.MLIR.API.mlirVectorTypeGet-Tuple{Any, Any, Any}",href:"#Reactant.MLIR.API.mlirVectorTypeGet-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirVectorTypeGet")],-1)),t[3163]||(t[3163]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3164]||(t[3164]=l('mlirVectorTypeGet(rank, shape, elementType)
Creates a vector type of the shape identified by its rank and dimensions, with the given element type in the same context as the element type. The type is owned by the context.
',3))]),e("details",jk,[e("summary",null,[t[3165]||(t[3165]=e("a",{id:"Reactant.MLIR.API.mlirVectorTypeGetChecked-NTuple{4, Any}",href:"#Reactant.MLIR.API.mlirVectorTypeGetChecked-NTuple{4, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirVectorTypeGetChecked")],-1)),t[3166]||(t[3166]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3167]||(t[3167]=l('mlirVectorTypeGetChecked(loc, rank, shape, elementType)
Same as "mlirVectorTypeGet
" but returns a nullptr wrapping MlirType
on illegal arguments, emitting appropriate diagnostics.
mlirVectorTypeGetScalable(rank, shape, scalable, elementType)
Creates a scalable vector type with the shape identified by its rank and dimensions. A subset of dimensions may be marked as scalable via the corresponding flag list, which is expected to have as many entries as the rank of the vector. The vector is created in the same context as the element type.
',3))]),e("details",Ak,[e("summary",null,[t[3171]||(t[3171]=e("a",{id:"Reactant.MLIR.API.mlirVectorTypeGetScalableChecked-NTuple{5, Any}",href:"#Reactant.MLIR.API.mlirVectorTypeGetScalableChecked-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirVectorTypeGetScalableChecked")],-1)),t[3172]||(t[3172]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3173]||(t[3173]=l('mlirVectorTypeGetScalableChecked(loc, rank, shape, scalable, elementType)
Same as "mlirVectorTypeGetScalable
" but returns a nullptr wrapping MlirType
on illegal arguments, emitting appropriate diagnostics.
mlirVectorTypeGetTypeID()
Returns the typeID of an Vector type.
',3))]),e("details",Ek,[e("summary",null,[t[3177]||(t[3177]=e("a",{id:"Reactant.MLIR.API.mlirVectorTypeIsDimScalable-Tuple{Any, Any}",href:"#Reactant.MLIR.API.mlirVectorTypeIsDimScalable-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirVectorTypeIsDimScalable")],-1)),t[3178]||(t[3178]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3179]||(t[3179]=l('mlirVectorTypeIsDimScalable(type, dim)
Checks whether the "dim"-th dimension of the given vector is scalable.
',3))]),e("details",vk,[e("summary",null,[t[3180]||(t[3180]=e("a",{id:"Reactant.MLIR.API.mlirVectorTypeIsScalable-Tuple{Any}",href:"#Reactant.MLIR.API.mlirVectorTypeIsScalable-Tuple{Any}"},[e("span",{class:"jlbinding"},"Reactant.MLIR.API.mlirVectorTypeIsScalable")],-1)),t[3181]||(t[3181]=s()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[3182]||(t[3182]=l('mlirVectorTypeIsScalable(type)
Checks whether the given vector type is scalable, i.e., has at least one scalable dimension.
',3))]),t[3185]||(t[3185]=e("h1",{id:"Other-Functions",tabindex:"-1"},[s("Other Functions "),e("a",{class:"header-anchor",href:"#Other-Functions","aria-label":'Permalink to "Other Functions {#Other-Functions}"'},"")],-1))])}const Gk=n(d,[["render",Tk]]);export{Bk as __pageData,Gk as default}; diff --git a/previews/PR363/assets/api_ops.md.D2WkrkEn.js b/previews/PR363/assets/api_ops.md.D2WkrkEn.js new file mode 100644 index 00000000..a972477f --- /dev/null +++ b/previews/PR363/assets/api_ops.md.D2WkrkEn.js @@ -0,0 +1,15 @@ +import{_ as n,c as l,j as i,a,G as e,a2 as h,B as p,o as k}from"./chunks/framework.2yyKLD8d.js";const C=JSON.parse('{"title":"Reactant.Ops API","description":"","frontmatter":{},"headers":[],"relativePath":"api/ops.md","filePath":"api/ops.md","lastUpdated":null}'),r={name:"api/ops.md"},d={class:"jldocstring custom-block"};function E(o,s,g,c,y,F){const t=p("Badge");return k(),l("div",null,[s[3]||(s[3]=i("h1",{id:"Reactant.Ops-API",tabindex:"-1"},[i("code",null,"Reactant.Ops"),a(" API "),i("a",{class:"header-anchor",href:"#Reactant.Ops-API","aria-label":'Permalink to "`Reactant.Ops` API {#Reactant.Ops-API}"'},"")],-1)),s[4]||(s[4]=i("p",null,[i("code",null,"Reactant.Ops"),a(" module provides a high-level API to construct MLIR operations without having to directly interact with the different dialects.")],-1)),s[5]||(s[5]=i("p",null,[a("Currently we haven't documented all the functions in "),i("code",null,"Reactant.Ops"),a(".")],-1)),i("details",d,[i("summary",null,[s[0]||(s[0]=i("a",{id:"Reactant.Ops.hlo_call-Tuple{Any, Vararg{Any}}",href:"#Reactant.Ops.hlo_call-Tuple{Any, Vararg{Any}}"},[i("span",{class:"jlbinding"},"Reactant.Ops.hlo_call")],-1)),s[1]||(s[1]=a()),e(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[2]||(s[2]=h(`Ops.hlo_call(mlir_code::String, args::Vararg{AnyTracedRArray}...; func_name::String="main") -> NTuple{N, AnyTracedRArray}
Given a MLIR module given as a string, calls the function identified by the func_name
keyword parameter (default "main") with the provided arguments and return a tuple for each result of the call.
julia> Reactant.@jit(
+ Ops.hlo_call(
+ """
+ module {
+ func.func @main(%arg0: tensor<3xf32>, %arg1: tensor<3xf32>) -> tensor<3xf32> {
+ %0 = stablehlo.add %arg0, %arg1 : tensor<3xf32>
+ return %0 : tensor<3xf32>
+ }
+ }
+ """,
+ Reactant.to_rarray(Float32[1, 2, 3]),
+ Reactant.to_rarray(Float32[1, 2, 3]),
+ )
+ )
+(ConcreteRArray{Float32, 1}(Float32[2.0, 4.0, 6.0]),)
Ops.hlo_call(mlir_code::String, args::Vararg{AnyTracedRArray}...; func_name::String="main") -> NTuple{N, AnyTracedRArray}
Given a MLIR module given as a string, calls the function identified by the func_name
keyword parameter (default "main") with the provided arguments and return a tuple for each result of the call.
julia> Reactant.@jit(
+ Ops.hlo_call(
+ """
+ module {
+ func.func @main(%arg0: tensor<3xf32>, %arg1: tensor<3xf32>) -> tensor<3xf32> {
+ %0 = stablehlo.add %arg0, %arg1 : tensor<3xf32>
+ return %0 : tensor<3xf32>
+ }
+ }
+ """,
+ Reactant.to_rarray(Float32[1, 2, 3]),
+ Reactant.to_rarray(Float32[1, 2, 3]),
+ )
+ )
+(ConcreteRArray{Float32, 1}(Float32[2.0, 4.0, 6.0]),)
abs
Performs element-wise abs operation on operand
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#abs
Example
%result = stablehlo.abs %operand : tensor<3xi32>
add
Performs element-wise addition of two tensors lhs
and rhs
and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#add
Example
%result = stablehlo.add %lhs, %rhs : tensor<2x2xi32>
after_all
Ensures that the operations producing the inputs
are executed before any operations that depend on result
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#after_all
Example
%result = stablehlo.after_all %input0, %input1 : !stablehlo.token
all_gather
Within each process group in the process grid, concatenates the values of the operand
tensor from each process along all_gather_dim
and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#all_gather
Example
%result:2 = "stablehlo.all_gather"(%operand0, %operand1) {
+ all_gather_dim = 1 : i64,
+ replica_groups = dense<[[0, 1]]> : tensor<1x2xi64>,
+ channel_handle = #stablehlo.channel_handle<handle = 0, type = 0>
+} : (tensor<2x2xi64>, tensor<2x2xi64>) -> (tensor<2x4xi64>, tensor<2x4xi64>)
all_reduce
Within each process group in the process grid, applies a reduction function computation
to the values of the operand
tensor from each process and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#all_reduce
Example
%result:2 = "stablehlo.all_reduce"(%operand0, %operand0) ({
+ ^bb0(%arg0: tensor<i64>, %arg1: tensor<i64>):
+ %0 = "stablehlo.add"(%arg0, %arg1) : (tensor<i64>, tensor<i64>) -> tensor<i64>
+ "stablehlo.return"(%0) : (tensor<i64>) -> ()
+}) {
+ replica_groups = dense<[[0, 1]]> : tensor<1x2xi64>,
+ channel_handle = #stablehlo.channel_handle<handle = 0, type = 0>
+} : (tensor<4xi64>, tensor<4xi64>) -> (tensor<4xi64>, tensor<4xi64>)
all_to_all
Within each process group in the process grid, splits the values of the operand
tensor along split_dimension
into parts, scatters the split parts between the processes, concatenates the scattered parts along concat_dimension
and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#all_to_all
Example
%result:2 = "stablehlo.all_to_all"(%operand1, %operand2) {
+ split_dimension = 1 : i64,
+ concat_dimension = 0 : i64,
+ split_count = 2 : i64,
+ replica_groups = dense<[[0, 1]]> : tensor<1x2xi64>
+} : (tensor<2x4xi64>, tensor<2x4xi64>) -> (tensor<4x2xi64>, tensor<4x2xi64>)
and
Performs element-wise AND of two tensors lhs
and rhs
and produces a result
tensor
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#and
Example
%result = stablehlo.and %lhs, %rhs : tensor<2x2xi32>
atan2
Performs element-wise atan2 operation on lhs
and rhs
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#atan2
Example
%result = stablehlo.atan2 %lhs, %rhs : tensor<3xf64>
batch_norm_grad
Computes gradients of several inputs of BatchNormTrainingOp backpropagating from grad_output
, and produces grad_operand
, grad_scale
and grad_offset
tensors.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#batch_norm_grad
Example
%grad_operand, %grad_scale, %grad_offset =
+"stablehlo.batch_norm_grad"(%operand, %scale, %mean, %variance, %grad_output) {
+ epsilon = 0.0 : f32,
+ feature_index = 2 : i64
+} : (tensor<2x2x2xf64>, tensor<2xf64>, tensor<2xf64>, tensor<2xf64>,
+ tensor<2x2x2xf64>) -> (tensor<2x2x2xf64>, tensor<2xf64>, tensor<2xf64>)
batch_norm_inference
Normalizes the operand
tensor across all dimensions except for the feature_index
dimension and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#batch_norm_inference
Example
%result = "stablehlo.batch_norm_inference"(%operand, %scale, %offset, %mean, %variance) {
+ epsilon = 0.0 : f32,
+ feature_index = 2 : i64
+} : (tensor<2x2x2xf64>, tensor<2xf64>, tensor<2xf64>, tensor<2xf64>, tensor<2xf64>) -> tensor<2x2x2xf64>
batch_norm_training
Computes mean and variance across batch and spatial dimensions and normalizes the operand
tensor, for each feature in the feature_index
dimension and produces output
, batch_mean
and batch_var
tensors.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#batch_norm_training
Example
%output, %batch_mean, %batch_var = "stablehlo.batch_norm_training"(%operand, %scale, %offset) {
+ epsilon = 0.0 : f32,
+ feature_index = 2 : i64
+} : (tensor<2x2x2xf64>, tensor<2xf64>, tensor<2xf64>) ->
+ (tensor<2x2x2xf64>, tensor<2xf64>, tensor<2xf64>)
bitcast_convert
Performs a bitcast operation on operand
tensor and produces a result
tensor where the bits of the entire operand
tensor are reinterpreted using the type of the result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#bitcast_convert
Example
%result = stablehlo.bitcast_convert %operand : (tensor<f64>) -> tensor<4xf16>
broadcast
This operation is on its way out of StableHLO, so it is not included in the StableHLO specification: https://github.com/openxla/stablehlo/issues/3.
Informally, this operation does the same thing as XLA's Broadcast: https://www.tensorflow.org/xla/operation_semantics#broadcast
Example
%result = stablehlo.broadcast %operand, sizes = [1, 2] : (tensor<3xi32>) -> tensor<1x2x3xi32>
broadcast_in_dim
Expands the dimensions and/or rank of an input tensor by duplicating the data in the operand
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#broadcast_in_dim
Example
%result = stablehlo.broadcast_in_dim %operand, dims = [2, 1] : (tensor<1x3xi32>) -> tensor<2x3x2xi32>
case
Produces the output from executing exactly one function
from branches
depending on the value of index
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#case
Example
%result0, %result1 = "stablehlo.case"(%index) ({
+ stablehlo.return %result_branch0, %result_branch0 : tensor<2xi64>, tensor<2xi64>
+}, {
+ stablehlo.return %result_branch1, %result_branch1 : tensor<2xi64>, tensor<2xi64>
+}) : (tensor<i32>) -> (tensor<2xi64>, tensor<2xi64>)
cbrt
Performs element-wise cubic root operation on operand
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#cbrt
Example
%result = stablehlo.cbrt %operand : tensor<4xf64>
ceil
Performs element-wise ceil of operand
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#ceil
Example
%result = stablehlo.ceil %operand : tensor<5xf32>
cholesky
Computes the Cholesky decomposition of a batch of matrices.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#cholesky
Example
%result = stablehlo.cholesky %a, lower = true : tensor<3x3xf64>
clamp
Clamps every element of the operand
tensor between a minimum and maximum value and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#clamp
Example
%result = stablehlo.clamp %min, %operand, %max : tensor<3xi32>
collective_broadcast
Within each process group in the process grid, send the value of the operand
tensor from the source process to the target processes and produce a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#collective_broadcast
Example
%result = "stablehlo.collective_broadcast"(%operand) {
+ replica_groups = dense<[[0, 1]]> : tensor<1x2xi64>,
+ channel_handle = #stablehlo.channel_handle<handle = 0, type = 0>
+} : (tensor<1x2xi64>) -> tensor<1x2xi64>
collective_permute
Within each process group in the process grid, sends the value of the operand
tensor from the source process to the target process and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#collective_permute
Example
%result = "stablehlo.collective_permute"(%operand) {
+ source_target_pairs = dense<[[0, 1], [1, 2]]> : tensor<2x2xi64>,
+ channel_handle = #stablehlo.channel_handle<handle = 0, type = 0>
+} : (tensor<2x2xi64>) -> tensor<2x2xi64>
compare
Performs element-wise comparison of lhs
and rhs
tensors according to comparison_direction
and compare_type
, and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#compare
Example
%result = stablehlo.compare LT, %lhs, %rhs, FLOAT : (tensor<2xf32>, tensor<2xf32>) -> tensor<2xi1>
complex
Performs element-wise conversion to a complex value from a pair of real and imaginary values, lhs
and rhs
, and produces a result
tensor. See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#complex
Example
%result = stablehlo.complex %lhs, %rhs : tensor<2xcomplex<f64>>
composite
Encapsulates an operation made up (composed) of other StableHLO operations, taking inputs
and composite_attributes
and producing results
. The semantics of the op are implemented by the decomposition
attribute. The composite
op can be replaced with its decomposition without changing program semantics. In cases where inlining the decomposition does not provide the same op semantics, prefer using custom_call
.
The version
field (defaults to 0
) is used to denote when a composite's semantics change.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#composite
Example
%results = stablehlo.composite "my.op" %input0, %input1 {
+ composite_attributes = {
+ my_attribute = "my_value"
+ },
+ decomposition = @my_op,
+ version = 1 : i32
+} : (tensor<f32>, tensor<f32>) -> tensor<f32>
concatenate
Concatenates a variadic number of tensors in inputs
along dimension
dimension in the same order as the given arguments and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#concatenate
Example
%result = stablehlo.concatenate %input0, %input1, dim = 0 : (tensor<3x2xi64>, tensor<1x2xi64>) -> tensor<4x2xi64>
constant
Produces an output
tensor from a constant value
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#constant
Example
%output = stablehlo.constant dense<[[0.0, 1.0], [2.0, 3.0]]> : tensor<2x2xf32>
convert
Performs an element-wise conversion from one element type to another on operand
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#convert
Example
%result = stablehlo.convert %operand : (tensor<3xi64>) -> tensor<3xcomplex<f64>>
convolution
Computes dot products between windows of lhs
and slices of rhs
and produces result
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#convolution
Example
%result = stablehlo.convolution(%lhs, %rhs)
+ dim_numbers = [b, 0, 1, f]x[0, 1, i, o]->[b, 0, 1, f],
+ window = {
+ stride = [4, 4],
+ pad = [[0, 0], [0, 0]],
+ lhs_dilate = [2, 2],
+ rhs_dilate = [1, 1],
+ reverse = [0, 0]
+ } {
+ feature_group_count = 1 : i64,
+ batch_group_count = 1 : i64,
+ precision_config = [#stablehlo<precision DEFAULT>, #stablehlo<precision DEFAULT>]
+ } :
+(tensor<1x4x4x1xi64>, tensor<3x3x1x1xi64>) -> tensor<1x2x2x1xi64>
cosine
Performs element-wise cosine operation on operand
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#cosine
Example
%result = stablehlo.cosine %operand : tensor<2xf32>
count_leading_zeros
Performs element-wise count of the number of leading zero bits in the operand
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#count_leading_zeros
Example
%result = stablehlo.count_leading_zeros %operand : tensor<2x2xi64>
create_token
This operation is on its way out of StableHLO, so it is not included in the StableHLO specification: https://github.com/openxla/stablehlo/issues/3.
Informally, this operation does the same thing as AfterAllOp with 0 inputs: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#after_all
Example
%output = stablehlo.create_token : !stablehlo.token
cross_replica_sum
This operation is on its way out of StableHLO, so it is not included in the StableHLO specification: https://github.com/openxla/stablehlo/issues/3.
Informally, this operation does the same thing as AllReduceOp with channel_id = 0
, use_global_device_ids = false
and computation
implementing addition: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#all_reduce
Example
%result = "stablehlo.cross-replica-sum"(%operand) {
+ replica_groups = dense<[[0, 1]]> : tensor<1x2xi64>
+} : (tensor<4xf32>) -> tensor<4xf32>
custom_call
Encapsulates an implementation-defined operation call_target_name
that takes inputs
and called_computations
and produces results
.
Depending on the API version there are two ways to pass extra bits of static information to the external function:
Use API_VERSION_TYPED_FFI
which allows passing a dictionary attribute.
Use a previous API version with a StringAttr to encode backend config.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#custom_call
Example
%results = stablehlo.custom_call @foo(%input0) {
+ backend_config = {bar = 42 : i32},
+ api_version = 4 : i32,
+ called_computations = [@foo]
+} : (tensor<f64>) -> tensor<f64>
divide
Performs element-wise division of dividend lhs
and divisor rhs
tensors and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#divide
Example
%result = stablehlo.divide %lhs, %rhs : tensor<4xf32>
dot
This operation is on its way out of StableHLO, so it is not included in the StableHLO specification: https://github.com/openxla/stablehlo/issues/3.
Informally, this operation does the same thing as XLA's Dot: https://www.tensorflow.org/xla/operation_semantics#dot
Example
%0 = stablehlo.dot %arg0, %arg1 : (tensor<1x2xi32>, tensor<2x1xi32>) -> tensor<1x1xi32>
dot_general
Computes dot products between slices of lhs
and slices of rhs
and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#dot_general
Example
%result = stablehlo.dot_general %lhs, %rhs,
+ batching_dims = [0] x [0],
+ contracting_dims = [2] x [1],
+ precision = [DEFAULT, DEFAULT],
+ algorithm = <lhs_precision_type = tf32, rhs_precision_type = tf32, accumulation_type = f32, lhs_component_count = 1, rhs_component_count = 1, num_primitive_operations = 1, allow_imprecise_accumulation = false>
+ : (tensor<2x2x2xi64>, tensor<2x2x2xi64>) -> tensor<2x2x2xi64>
dynamic_broadcast_in_dim
This operation is functionally identical to broadcast_in_dim op, but the result shape is specified dynamically via output_dimensions
.
It also accepts optional attributes to express static knowledge about the expanding behavior of dimensions. If not specified, all dimensions are assumed to be possibly expanding. The sets of dimensions that are known to be expanding and the set of dimensions that are known to be non-expanding must be disjoint and they must be a subset of the operand's dimensions.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#dynamic_broadcast_in_dim
Example
%operand = stablehlo.constant dense<[[1, 2, 3]]> : tensor<1x3xi64>
+%output_dimensions = stablehlo.constant dense<[2, 3, 2]> : tensor<3xi64>
+%result = "stablehlo.dynamic_broadcast_in_dim"(%operand, %output_dimensions) {
+ broadcast_dimensions = array<i64: 2, 1>,
+ known_expanding_dimensions = array<i64: 0>,
+ known_nonexpanding_dimensions = array<i64: 1>
+} : (tensor<1x3xi64>, tensor<3xi64>) -> tensor<2x3x2xi64>
dynamic_conv
This operation is functionally identical to convolution op, but the padding is specified dynamically via padding
.
Example
%padding = stablehlo.constant dense<2> : tensor<2x2xi64>
+%result = "stablehlo.dynamic_conv"(%lhs, %rhs, %padding) {
+ window_strides = array<i64: 4, 4>,
+ lhs_dilation = array<i64: 2, 2>,
+ rhs_dilation = array<i64: 1, 1>,
+ window_reversal = array<i1: false, false>,
+ dimension_numbers = #stablehlo.conv<[b, 0, 1, f]x[0, 1, i, o]->[b, 0, 1, f]>,
+ batch_group_count = 1 : i64,
+ feature_group_count = 1 : i64,
+ precision_config = [#stablehlo<precision DEFAULT>, #stablehlo<precision DEFAULT>]
+} : (tensor<1x4x4x1xi64>, tensor<3x3x1x1xi64>, tensor<2x2xi64>) -> tensor<1x2x2x1xi64>
dynamic_gather
This operation is functionally identical to gather op, with the slice_sizes
specified dynamically as an operand.
Example
%slice_sizes = stablehlo.constant dense<[1, 2, 2]> : tensor<3xi64>
+%result = "stablehlo.dynamic_gather"(%operand, %start_indices, %slice_sizes) {
+ dimension_numbers = #stablehlo.gather<
+ offset_dims = [2, 3],
+ collapsed_slice_dims = [0],
+ start_index_map = [0, 2],
+ index_vector_dim = 2>,
+ indices_are_sorted = false
+} : (tensor<3x4x2xi64>, tensor<2x3x2xi64>, tensor<3xi64>) -> tensor<2x3x2x2xi64>
dynamic_iota
This operation is functionally identical to iota op, but the result shape is specified dynamically via output_shape
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#dynamic_iota
Example
%output_shape = stablehlo.constant dense<[4, 5]> : tensor<2xi64>
+%0 = stablehlo.dynamic_iota %output_shape, dim = 0 : (tensor<2xi64>) -> tensor<4x5xi64>
dynamic_pad
This operation is functionally identical to pad https://github.com/openxla/stablehlo/pull/2306#discussion_r1595669709 op, but with edge_padding_low
,edge_padding_high
andinterior_padding
specified dynamically as values.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#dynamic_pad
Example
%edge_padding_low = stablehlo.constant dense<[0, 1]> : tensor<2xi32>
+%edge_padding_high = stablehlo.constant dense<[2, 1]> : tensor<2xi32>
+%interior_padding = stablehlo.constant dense<[1, 2]> : tensor<2xi32>
+%result = stablehlo.dynamic_pad %operand, %padding_value,
+ %edge_padding_low, %edge_padding_high, %interior_padding
+ : (tensor<2x3xi64>, tensor<i64>, tensor<2xi64>, tensor<2xi64>, tensor<2xi64>) -> tensor<5x9xi64>
dynamic_reshape
This operation is functionally identical to reshape op, but the result shape is specified dynamically via output_shape
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#dynamic_reshape
Example
%output_shape = stablehlo.constant dense<[3, 2]> : tensor<2xi64>
+%result = stablehlo.dynamic_reshape %operand, %output_shape : (tensor<2x3xi64>, tensor<2xi64>) -> tensor<3x2xi64>
dynamic_slice
Extracts a slice from the operand
using dynamically-computed starting indices and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#dynamic_slice
Example
%result = stablehlo.dynamic_slice %operand, %start_indices0, %start_indices1, sizes = [2, 2]
+ : (tensor<4x4xi32>, tensor<i64>, tensor<i64>) -> tensor<2x2xi32>
dynamic_update_slice
Produces a result
tensor which is equal to the operand
tensor except that the slice starting at start_indices
is updated with the values in update
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#dynamic_update_slice
Example
%result = stablehlo.dynamic_update_slice %operand, %update, %start_indices0, %start_indices1
+ : (tensor<4x4xi32>, tensor<2x2xi32>, tensor<i64>, tensor<i64>) -> tensor<4x4xi32>
einsum
This operation is on its way out of StableHLO, so it is not included in the StableHLO specification: https://github.com/openxla/stablehlo/issues/3.
Informally, this operation does the same thing as TF's einsum: https://www.tensorflow.org/api_docs/python/tf/einsum
Example
%result = "stablehlo.einsum"(%lhs, %rhs) {
+ einsum_config = "ab,bc->ac"
+} : (tensor<4x16xf32>, tensor<16x4xf32>) -> tensor<4x4xf32>
exponential
Performs element-wise exponential operation on operand
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#exponential
Example
%result = stablehlo.exponential %operand : tensor<2x2xf64>
exponential_minus_one
Performs element-wise exponential minus one operation on operand
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#exponential_minus_one
Example
%result = stablehlo.exponential_minus_one %operand : tensor<2xf64>
fft
Performs the forward and inverse Fourier transforms for real and complex inputs/outputs.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#fft
Example
%result = stablehlo.fft %operand, type = FFT, length = [4] : (tensor<4xcomplex<f32>>) -> tensor<4xcomplex<f32>>
floor
Performs element-wise floor of operand
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#floor
Example
%result = stablehlo.floor %operand : tensor<2xf32>
gather
Gathers slices from operand
tensor from offsets specified in start_indices
and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#gather
Example
%result = "stablehlo.gather"(%operand, %start_indices) {
+ dimension_numbers = #stablehlo.gather<
+ offset_dims = [3, 4],
+ collapsed_slice_dims = [1],
+ operand_batching_dims = [0],
+ start_indices_batching_dims = [1],
+ start_index_map = [2, 1],
+ index_vector_dim = 3>,
+ slice_sizes = array<i64: 1, 1, 2, 2>,
+ indices_are_sorted = false
+} : (tensor<2x3x4x2xi64>, tensor<2x2x3x2xi64>) -> tensor<2x2x3x2x2xi64>
get_dimension_size
Produces the size of the given dimension
of the operand
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#get_dimension_size
Example
%result = stablehlo.get_dimension_size %operand, dim = 1 : (tensor<2x3xi64>) -> tensor<i32>
get_tuple_element
Extracts element at index
position of the operand
tuple and produces a result
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#get_tuple_element
Example
%result = stablehlo.get_tuple_element %operand[0] : (tuple<tensor<2xf64>, tuple<tensor<i64>>>) -> tensor<2xf64>
if_
Produces the output from executing exactly one branch from true_branch
or false_branch
depending on the value of pred
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#if
Example
%result = "stablehlo.if"(%pred) ({ "stablehlo.return"(%result_true_branch) : (tensor<i32>) -> () }, { "stablehlo.return"(%result_false_branch) : (tensor<i32>) -> () }) : (tensor<i1>) -> tensor<i32>
',6))]),t("details",ce,[t("summary",null,[e[159]||(e[159]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.imag-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.imag-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.imag")],-1)),e[160]||(e[160]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[161]||(e[161]=n('imag
Extracts the imaginary part, element-wise, from the operand
and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#imag
Example
%result = stablehlo.imag %operand : (tensor<2xcomplex<f32>>) -> tensor<2xf32>
infeed
Reads data from the infeed and produces results
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#infeed
Example
%results0:2 = "stablehlo.infeed"(%token) :
+ (!stablehlo.token) -> (tensor<2x2xi64>, !stablehlo.token)
iota
Fills an output
tensor with values in increasing order starting from zero along the iota_dimension
dimension.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#iota
Example
%output = stablehlo.iota dim = 0 : tensor<4x5xi32>
is_finite
Performs element-wise check whether the value in x
is finite (i.e. is neither +Inf, -Inf, nor NaN) and produces a y
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#is_finite
Example
%y = stablehlo.is_finite %x : (tensor<7xf64>) -> tensor<7xi1>
log
Performs element-wise logarithm operation on operand
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#log
Example
%result = stablehlo.log %operand : tensor<2x2xf64>
log_plus_one
Performs element-wise logarithm plus one operation on operand
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#log_plus_one
Example
%result = stablehlo.log_plus_one %operand : tensor<5xf64>
logistic
Performs element-wise logistic operation on operand
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#logistic
Example
%result = stablehlo.logistic %operand : tensor<2x2xf64>
map
Applies a map function computation
to inputs
along the dimensions
and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#map
Example
%result = "stablehlo.map"(%input0, %input1) ({
+ ^bb0(%arg0: tensor<i64>, %arg1: tensor<i64>):
+ %0 = stablehlo.multiply %arg0, %arg1 : tensor<i64>
+ stablehlo.return %0 : tensor<i64>
+}) {
+ dimensions = array<i64: 0, 1>
+} : (tensor<2x2xi64>, tensor<2x2xi64>) -> tensor<2x2xi64>
maximum
Performs element-wise max operation on tensors lhs
and rhs
and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#maximum
Example
%result = stablehlo.maximum %lhs, %rhs : tensor<4xf32>
minimum
Performs element-wise min operation on tensors lhs
and rhs
and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#minimum
Example
%result = stablehlo.minimum %lhs, %rhs : tensor<4xf32>
multiply
Performs element-wise product of two tensors lhs
and rhs
and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#multiply
Example
%result = stablehlo.multiply %lhs, %rhs : tensor<2xi32>
negate
Performs element-wise negation of operand
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#negate
Example
%result = stablehlo.negate %operand : tensor<2x3xi32>
not
Performs element-wise NOT of tensor operand
of type integer and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#not
Example
%result = stablehlo.not %operand : tensor<5x3x1xi1>
optimization_barrier
Ensures that the operations that produce the operand
are executed before any operations that depend on the result
and prevents compiler transformations from moving operations across the barrier. Other than that, the operation is an identity, i.e. result
= operand
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#optimization_barrier
Example
%result0, %result1 = stablehlo.optimization_barrier %operand0, %operand1 : tensor<f32>, tensor<f32>
or
Performs element-wise OR of two tensors lhs
and rhs
and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#or
Example
%result = stablehlo.or %lhs, %rhs : tensor<2xi1>
outfeed
Writes inputs
to the outfeed and produces a result
token.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#outfeed
Example
%result = "stablehlo.outfeed"(%input0, %token) :
+ (tensor<2x2x2xi64>, !stablehlo.token) -> !stablehlo.token
pad
Expands operand
by padding around the tensor as well as between the elements of the tensor with the given padding_value
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#pad
Example
%0 = stablehlo.pad %arg0, %arg1, low = [0, 1], high = [2, 1], interior = [1, 2]
+ : (tensor<2x3xi32>, tensor<i32>) -> tensor<5x9xi32>
partition_id
Produces partition_id
of the current process.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#partition_id
Example
%result = stablehlo.partition_id : tensor<ui32>
popcnt
Performs element-wise count of the number of bits set in the operand
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#popcnt
Example
%result = stablehlo.popcnt %operand : tensor<4xi64>
power
Performs element-wise exponentiation of lhs
tensor by rhs
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#power
Example
%result = stablehlo.power %lhs, %rhs : tensor<6xf64>
real
Extracts the real part, element-wise, from the operand
and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#real
Example
%result = stablehlo.real %operand : (tensor<2xcomplex<f32>>) -> tensor<2xf32>
real_dynamic_slice
This operation is a work in progress, so it is not yet included in the StableHLO specification: https://github.com/openxla/stablehlo/issues/8.
Informally, this operation does the same thing as SliceOp except that start_indices
, limit_indices
and strides
are specified dynamically: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#slice
Example
%result = stablehlo.real_dynamic_slice %operand,
+ %start_indices, %limit_indices, %strides
+ : (tensor<256x?xf32>, tensor<2xindex>, tensor<2xindex>, tensor<2xindex>) -> tensor<256x?xf32>
recv
Receives data from a channel with channel_id
and produces results
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#recv
Example
%results:2 = "stablehlo.recv"(%token) {
+ channel_handle = #stablehlo.channel_handle<handle = 1, type = 3>,
+ is_host_transfer = true
+} : (!stablehlo.token) -> (tensor<2x2xi64>, !stablehlo.token)
reduce
Applies a reduction function body
to inputs
and init_values
along the dimensions
and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#reduce
Example
%result = "stablehlo.reduce"(%input, %init_value) ({
+ ^bb0(%arg0: tensor<i64>, %arg1: tensor<i64>):
+ %0 = stablehlo.add %arg0, %arg1 : tensor<i64>
+ stablehlo.return %0 : tensor<i64>
+}) {
+ dimensions = array<i64: 1>
+} : (tensor<1x6xi64>, tensor<i64>) -> tensor<1xi64>
reduce_precision
Performs element-wise conversion of operand
to another floating-point type that uses exponent_bits
and mantissa_bits
and back to the original floating-point type and produces an output
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#reduce_precision
Example
%output = stablehlo.reduce_precision %operand, format = e5m10 : tensor<6xf64>
reduce_scatter
Within each process group in the process grid, performs reduction, using computations
, over the values of the operand
tensor from each process, splits the reduction result along scatter_dimension
into parts, and scatters the split parts between the processes to produce the result
.
See:\nhttps://github.com/openxla/stablehlo/blob/main/docs/spec#reduce_scatter\n\nExample:\n```mlir\n%result = "stablehlo.reduce_scatter"(%operand) ({
^bb0(%arg0: tensor<i64>, %arg1: tensor<i64>): %0 = stablehlo.add %arg0, %arg1 : tensor<i64> stablehlo.return %0 : tensor<i64> }) { scatter_dimension = 1 : i64, replica_groups = dense<[[0, 1]]> : tensor<1x2xi64>, channel_handle = #stablehlo.channel_handle<handle = 0, type = 0> } : (tensor<2x4xi64>) -> tensor<2x2xi64> ```
',5))]),t("details",ze,[t("summary",null,[e[237]||(e[237]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.reduce_window-Tuple{Vector{Reactant.MLIR.IR.Value}, Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.stablehlo.reduce_window-Tuple{Vector{Reactant.MLIR.IR.Value}, Vector{Reactant.MLIR.IR.Value}}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.reduce_window")],-1)),e[238]||(e[238]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[239]||(e[239]=n(`reduce_window
Applies a reduction function body
to windows of inputs
and init_values
and produces results
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#reduce_window
Example
%result = "stablehlo.reduce_window"(%input, %init_value) ({
+ ^bb0(%arg0: tensor<i64>, %arg1: tensor<i64>):
+ %0 = stablehlo.add %arg0, %arg1 : tensor<i64>
+ stablehlo.return %0 : tensor<i64>
+}) {
+ window_dimensions = array<i64: 2, 1>,
+ window_strides = array<i64: 4, 1>,
+ base_dilations = array<i64: 2, 1>,
+ window_dilations = array<i64: 3, 1>,
+ padding = dense<[[2, 1], [0, 0]]> : tensor<2x2xi64>
+} : (tensor<3x2xi64>, tensor<i64>) -> tensor<2x2xi64>
remainder
Performs element-wise remainder of dividend lhs
and divisor rhs
tensors and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#remainder
Example
%result = stablehlo.remainder %lhs, %rhs : tensor<4xi64>
replica_id
Produces replica_id
of the current process.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#replica_id
Example
%result = stablehlo.replica_id : tensor<ui32>
reshape
Performs reshape of operand
tensor to a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#reshape
Example
%result = stablehlo.reshape %operand : (tensor<2xf32>) -> tensor<1x2xf32>
reverse
Reverses the order of elements in the operand
along the specified dimensions
and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#reverse
Example
%result = stablehlo.reverse %operand, dims = [1] : tensor<3x2xi32>
rng
Generates random numbers using the rng_distribution
algorithm and produces a result
tensor of a given shape shape
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#rng
Example
%result = stablehlo.rng %a, %b, %shape, distribution = NORMAL : (tensor<i32>, tensor<i32>, tensor<2xi64>) -> tensor<3x3xi32>
rng_bit_generator
Returns an output
filled with uniform random data and an updated output state output_state
given an initial state initial_state
using the pseudorandom number generator algorithm rng_algorithm
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#rng_bit_generator
Example
%output_state, %output = stablehlo.rng_bit_generator %initial_state, algorithm = THREE_FRY : (tensor<2xui64>) -> (tensor<2xui64>, tensor<2x2xui64>)
round_nearest_afz
Performs element-wise rounding towards the nearest integer, breaking ties away from zero, on the operand
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#round_nearest_afz
Example
%result = stablehlo.round_nearest_afz %operand : tensor<5xf64>
round_nearest_even
Performs element-wise rounding towards the nearest integer, breaking ties towards the even integer, on the operand
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#round_nearest_even
Example
%result = stablehlo.round_nearest_even %operand : tensor<5xf64>
rsqrt
Performs element-wise reciprocal square root operation on operand
tensor and produces a result
tensor, implementing the rSqrt
operation from the IEEE-754 specification.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#rsqrt
Example
%result = stablehlo.rsqrt %operand : tensor<2x2xf32>
scatter
Produces results
tensors which are equal to inputs
tensors except that several slices specified by scatter_indices
are updated with the values updates
using update_computation
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#scatter
Example: mlir %result = "stablehlo.scatter"(%input, %scatter_indices, %update) ({ ^bb0(%arg0: tensor<i64>, %arg1: tensor<i64>): %0 = stablehlo.add %arg0, %arg1 : tensor<i64> stablehlo.return %0 : tensor<i64> }) { scatter_dimension_numbers = #stablehlo.scatter< update_window_dims = [3, 4], inserted_window_dims = [1], input_batching_dims = [0], scatter_indices_batching_dims = [1], scatter_dims_to_operand_dims = [2, 1], index_vector_dim = 3>, indices_are_sorted = false, unique_indices = false } : (tensor<2x3x4x2xi64>, tensor<2x2x3x2xi64>, tensor<2x2x3x2x2xi64>) -> tensor<2x3x4x2xi64>
select
Produces a result
tensor where each element is selected from on_true
or on_false
tensor based on the value of the corresponding element of pred
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#select
Example
%result = stablehlo.select %pred, %on_true, %on_false : tensor<2x2xi1>, tensor<2x2xi32>
select_and_scatter
Scatters the values from the source
tensor using scatter
based on the outcome of reduce_window
of the input
tensor using select
and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#select_and_scatter
Example
%result = "stablehlo.select_and_scatter"(%operand, %source, %init_value) ({
+ ^bb0(%arg0: tensor<i64>, %arg1: tensor<i64>):
+ %0 = stablehlo.compare GE, %arg0, %arg1 : (tensor<i64>, tensor<i64>) -> tensor<i1>
+ stablehlo.return %0 : tensor<i1>
+}, {
+ ^bb0(%arg0: tensor<i64>, %arg1: tensor<i64>):
+ %0 = stablehlo.add %arg0, %arg1 : tensor<i64>
+ stablehlo.return %0 : tensor<i64>
+}) {
+ window_dimensions = dense<[3, 1]> : tensor<2xi64>,
+ window_strides = dense<[2, 1]> : tensor<2xi64>,
+ padding = dense<[[0, 1], [0, 0]]> : tensor<2x2xi64>
+} : (tensor<4x2xi64>, tensor<2x2xi64>, tensor<i64>) -> tensor<4x2xi64>
send
Sends inputs
to a channel channel_id
and produces a result
token.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#send
Example
%result = "stablehlo.send"(%operand, %token) {
+ channel_handle = #stablehlo.channel_handle<handle = 1, type = 2>,
+ is_host_transfer = true
+} : (tensor<2x2xi64>, !stablehlo.token) -> !stablehlo.token
set_dimension_size
This operation is a work in progress, so it is not yet included in the StableHLO specification: https://github.com/openxla/stablehlo/issues/8.
Informally, this operation does the same thing as XLA's SetDimensionSize: https://www.tensorflow.org/xla/operation_semantics#setdimensionsize
Example
%0 = stablehlo.set_dimension_size %arg0, %arg1, dim = 1 : (tensor<4x2xf32>, tensor<i32>) -> tensor<4x2xf32>
shift_left
Performs element-wise left-shift operation on the lhs
tensor by rhs
number of bits and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#shift_left
Example
%result = stablehlo.shift_left %lhs, %rhs : tensor<3xi64>
shift_right_arithmetic
Performs element-wise arithmetic right-shift operation on the lhs
tensor by rhs
number of bits and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#shift_right_arithmetic
Example
%result = stablehlo.shift_right_arithmetic %lhs, %rhs : tensor<3xi64>
shift_right_logical
Performs element-wise logical right-shift operation on the lhs
tensor by rhs
number of bits and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#shift_right_logical
Example
%result = stablehlo.shift_right_logical %lhs, %rhs : tensor<3xi64>
sign
Returns the sign of the operand
element-wise and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#sign
Example
%result = stablehlo.sign %operand : tensor<5xf64>
sine
Performs element-wise sine operation on operand
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#sine
Example
%result = stablehlo.sine %operand : tensor<2xf32>
slice
Extracts a slice from the operand
using statically-computed starting indices and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#slice
Example
%result = stablehlo.slice %operand [1:3, 4:8:2]\n : (tensor<3x8xi64>) -> tensor<2x2xi64>\n\n// Same in generic form: the `1:3` above is mapped to the first entry in\n// `start_indices` and `limit_indices`, while `strides` is implicitly 1.\n// The `4:8:2` above is parsed into the second entry of `start_indices`,\n// `limit_indices` and `strides` respectively.\n%result = "stablehlo.slice" (%operand) {\n start_indices = array<i64: 1, 4>,\n limit_indices = array<i64: 3, 8>,\n strides = array<i64: 1, 2>\n} : (tensor<3x8xi64>) -> tensor<2x2xi64>
sort
Sorts a variadic number of tensors in inputs
together, according to a custom comparator
, along the given dimension
and produces a variadic number of tensors as results
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#sort
Example
+
+[source](https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/StableHLO.jl#L4195-L4215)
+
+</details>
+
+<details class='jldocstring custom-block' >
+<summary><a id='Reactant.MLIR.Dialects.stablehlo.sqrt-Tuple{Reactant.MLIR.IR.Value}' href='#Reactant.MLIR.Dialects.stablehlo.sqrt-Tuple{Reactant.MLIR.IR.Value}'><span class="jlbinding">Reactant.MLIR.Dialects.stablehlo.sqrt</span></a> <Badge type="info" class="jlObjectType jlMethod" text="Method" /></summary>
+
+
+
+\`sqrt\`
+
+Performs element-wise square root operation on \`operand\` tensor and produces a \`result\` tensor.
+
+See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#sqrt
+
+**Example**
+
+\`\`\`mlir
+%result = stablehlo.sqrt %operand : tensor<2x2xf32>
subtract
Performs element-wise subtraction of two tensors lhs
and rhs
and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#subtract
Example
%result = stablehlo.subtract %lhs, %rhs : tensor<2xi32>
tan
Performs element-wise tangent operation on operand
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#tan
Example
%result = stablehlo.tan %operand : tensor<2x2xf64>
tanh
Performs element-wise hyperbolic tangent operation on operand
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#tanh
Example
%result = stablehlo.tanh %operand : tensor<2xf32>
torch_index_select
This operation is on its way out of StableHLO, so it is not included in the StableHLO specification: https://github.com/openxla/stablehlo/issues/3.
Informally, this operation does the same thing as PyTorch's index_select, augmented with support for batch dimensions: https://pytorch.org/docs/stable/generated/torch.index_select.html.
The batch_dims
attribute specifies the number of major batch dimensions (0 or more) that act like a multidimensional loop over both the operand and the index.
Example
%result = "stablehlo.torch_index_select"(%operand, %index) {
+ dim = 2 : i64,
+ batch_dims = 1 : i64
+} : (tensor<8x128x3072x64xf32>, tensor<8x16x1024xi32>) -> tensor<8x128x16x1024x64xf32>
transpose
Permutes the dimensions of operand
tensor using permutation
and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#transpose
Example
%0 = stablehlo.transpose %arg0, dims = [2, 1, 0] : (tensor<1x2x3xi32>) -> tensor<3x2x1xi32>
triangular_solve
Solves batches of systems of linear equations with lower or upper triangular coefficient matrices.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#triangular_solve
Example
%result = "stablehlo.triangular_solve"(%a, %b) {
+ left_side = true,
+ lower = true,
+ unit_diagonal = false,
+ transpose_a = #stablehlo<transpose NO_TRANSPOSE>
+} : (tensor<3x3xf32>, tensor<3x3xf32>) -> tensor<3x3xf32>
tuple
Produces a result
tuple from values val
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#tuple
Example
%result = stablehlo.tuple %val0, %val1 : tuple<tensor<2xf64>, tuple<tensor<i64>>>
unary_einsum
This operation is on its way out of StableHLO, so it is not included in the StableHLO specification: https://github.com/openxla/stablehlo/issues/3.
Informally, this operation does the same thing as TF's einsum: https://www.tensorflow.org/api_docs/python/tf/einsum
Example
%result = "stablehlo.unary_einsum"(%operand) {
+ einsum_config = "ab->a"
+} : (tensor<4x16xf32>) -> tensor<4xf32>
uniform_dequantize
Performs element-wise conversion of quantized tensor operand
to a floating-point tensor result
according to the quantization parameters defined by the operand
type.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#uniform_dequantize
Example
%result = stablehlo.uniform_dequantize %operand : (tensor<2x!quant.uniform<i8:f32:0, {0.1:-30,0.5:-20}>>) -> tensor<2xf32>
uniform_quantize
Performs element-wise conversion of floating-point tensor or quantized tensor operand
to a quantized tensor result
according to the quantization parameters defined by the result
type.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#uniform_quantize
Example
%result = stablehlo.uniform_quantize %operand : (tensor<2xf32>) -> tensor<2x!quant.uniform<i8:f32:0, {0.1:-30,0.5:-20}>>
while_
Produces the output from executing body
function 0 or more times while the cond
function outputs true
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#while
Example
%results0, %results1 = stablehlo.while(%arg0 = %init_i, %arg1 = %init_sum) : tensor<i64>, tensor<i64>
+cond {
+ %cond = stablehlo.compare LT, %arg0, %ten : (tensor<i64>, tensor<i64>) -> tensor<i1>
+ stablehlo.return %cond : tensor<i1>
+} do {
+ %new_sum = stablehlo.add %arg1, %one : tensor<i64>
+ %new_i = stablehlo.add %arg0, %one : tensor<i64>
+ stablehlo.return %new_i, %new_sum : tensor<i64>, tensor<i64>
+}
xor
Performs element-wise XOR of two tensors lhs
and rhs
and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#xor
Example
%result = stablehlo.xor %lhs, %rhs : tensor<2xi32>
abs
Performs element-wise abs operation on operand
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#abs
Example
%result = stablehlo.abs %operand : tensor<3xi32>
add
Performs element-wise addition of two tensors lhs
and rhs
and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#add
Example
%result = stablehlo.add %lhs, %rhs : tensor<2x2xi32>
after_all
Ensures that the operations producing the inputs
are executed before any operations that depend on result
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#after_all
Example
%result = stablehlo.after_all %input0, %input1 : !stablehlo.token
all_gather
Within each process group in the process grid, concatenates the values of the operand
tensor from each process along all_gather_dim
and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#all_gather
Example
%result:2 = "stablehlo.all_gather"(%operand0, %operand1) {
+ all_gather_dim = 1 : i64,
+ replica_groups = dense<[[0, 1]]> : tensor<1x2xi64>,
+ channel_handle = #stablehlo.channel_handle<handle = 0, type = 0>
+} : (tensor<2x2xi64>, tensor<2x2xi64>) -> (tensor<2x4xi64>, tensor<2x4xi64>)
all_reduce
Within each process group in the process grid, applies a reduction function computation
to the values of the operand
tensor from each process and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#all_reduce
Example
%result:2 = "stablehlo.all_reduce"(%operand0, %operand0) ({
+ ^bb0(%arg0: tensor<i64>, %arg1: tensor<i64>):
+ %0 = "stablehlo.add"(%arg0, %arg1) : (tensor<i64>, tensor<i64>) -> tensor<i64>
+ "stablehlo.return"(%0) : (tensor<i64>) -> ()
+}) {
+ replica_groups = dense<[[0, 1]]> : tensor<1x2xi64>,
+ channel_handle = #stablehlo.channel_handle<handle = 0, type = 0>
+} : (tensor<4xi64>, tensor<4xi64>) -> (tensor<4xi64>, tensor<4xi64>)
all_to_all
Within each process group in the process grid, splits the values of the operand
tensor along split_dimension
into parts, scatters the split parts between the processes, concatenates the scattered parts along concat_dimension
and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#all_to_all
Example
%result:2 = "stablehlo.all_to_all"(%operand1, %operand2) {
+ split_dimension = 1 : i64,
+ concat_dimension = 0 : i64,
+ split_count = 2 : i64,
+ replica_groups = dense<[[0, 1]]> : tensor<1x2xi64>
+} : (tensor<2x4xi64>, tensor<2x4xi64>) -> (tensor<4x2xi64>, tensor<4x2xi64>)
and
Performs element-wise AND of two tensors lhs
and rhs
and produces a result
tensor
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#and
Example
%result = stablehlo.and %lhs, %rhs : tensor<2x2xi32>
atan2
Performs element-wise atan2 operation on lhs
and rhs
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#atan2
Example
%result = stablehlo.atan2 %lhs, %rhs : tensor<3xf64>
batch_norm_grad
Computes gradients of several inputs of BatchNormTrainingOp backpropagating from grad_output
, and produces grad_operand
, grad_scale
and grad_offset
tensors.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#batch_norm_grad
Example
%grad_operand, %grad_scale, %grad_offset =
+"stablehlo.batch_norm_grad"(%operand, %scale, %mean, %variance, %grad_output) {
+ epsilon = 0.0 : f32,
+ feature_index = 2 : i64
+} : (tensor<2x2x2xf64>, tensor<2xf64>, tensor<2xf64>, tensor<2xf64>,
+ tensor<2x2x2xf64>) -> (tensor<2x2x2xf64>, tensor<2xf64>, tensor<2xf64>)
batch_norm_inference
Normalizes the operand
tensor across all dimensions except for the feature_index
dimension and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#batch_norm_inference
Example
%result = "stablehlo.batch_norm_inference"(%operand, %scale, %offset, %mean, %variance) {
+ epsilon = 0.0 : f32,
+ feature_index = 2 : i64
+} : (tensor<2x2x2xf64>, tensor<2xf64>, tensor<2xf64>, tensor<2xf64>, tensor<2xf64>) -> tensor<2x2x2xf64>
batch_norm_training
Computes mean and variance across batch and spatial dimensions and normalizes the operand
tensor, for each feature in the feature_index
dimension and produces output
, batch_mean
and batch_var
tensors.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#batch_norm_training
Example
%output, %batch_mean, %batch_var = "stablehlo.batch_norm_training"(%operand, %scale, %offset) {
+ epsilon = 0.0 : f32,
+ feature_index = 2 : i64
+} : (tensor<2x2x2xf64>, tensor<2xf64>, tensor<2xf64>) ->
+ (tensor<2x2x2xf64>, tensor<2xf64>, tensor<2xf64>)
bitcast_convert
Performs a bitcast operation on operand
tensor and produces a result
tensor where the bits of the entire operand
tensor are reinterpreted using the type of the result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#bitcast_convert
Example
%result = stablehlo.bitcast_convert %operand : (tensor<f64>) -> tensor<4xf16>
broadcast
This operation is on its way out of StableHLO, so it is not included in the StableHLO specification: https://github.com/openxla/stablehlo/issues/3.
Informally, this operation does the same thing as XLA's Broadcast: https://www.tensorflow.org/xla/operation_semantics#broadcast
Example
%result = stablehlo.broadcast %operand, sizes = [1, 2] : (tensor<3xi32>) -> tensor<1x2x3xi32>
broadcast_in_dim
Expands the dimensions and/or rank of an input tensor by duplicating the data in the operand
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#broadcast_in_dim
Example
%result = stablehlo.broadcast_in_dim %operand, dims = [2, 1] : (tensor<1x3xi32>) -> tensor<2x3x2xi32>
case
Produces the output from executing exactly one function
from branches
depending on the value of index
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#case
Example
%result0, %result1 = "stablehlo.case"(%index) ({
+ stablehlo.return %result_branch0, %result_branch0 : tensor<2xi64>, tensor<2xi64>
+}, {
+ stablehlo.return %result_branch1, %result_branch1 : tensor<2xi64>, tensor<2xi64>
+}) : (tensor<i32>) -> (tensor<2xi64>, tensor<2xi64>)
cbrt
Performs element-wise cubic root operation on operand
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#cbrt
Example
%result = stablehlo.cbrt %operand : tensor<4xf64>
ceil
Performs element-wise ceil of operand
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#ceil
Example
%result = stablehlo.ceil %operand : tensor<5xf32>
cholesky
Computes the Cholesky decomposition of a batch of matrices.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#cholesky
Example
%result = stablehlo.cholesky %a, lower = true : tensor<3x3xf64>
clamp
Clamps every element of the operand
tensor between a minimum and maximum value and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#clamp
Example
%result = stablehlo.clamp %min, %operand, %max : tensor<3xi32>
collective_broadcast
Within each process group in the process grid, send the value of the operand
tensor from the source process to the target processes and produce a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#collective_broadcast
Example
%result = "stablehlo.collective_broadcast"(%operand) {
+ replica_groups = dense<[[0, 1]]> : tensor<1x2xi64>,
+ channel_handle = #stablehlo.channel_handle<handle = 0, type = 0>
+} : (tensor<1x2xi64>) -> tensor<1x2xi64>
collective_permute
Within each process group in the process grid, sends the value of the operand
tensor from the source process to the target process and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#collective_permute
Example
%result = "stablehlo.collective_permute"(%operand) {
+ source_target_pairs = dense<[[0, 1], [1, 2]]> : tensor<2x2xi64>,
+ channel_handle = #stablehlo.channel_handle<handle = 0, type = 0>
+} : (tensor<2x2xi64>) -> tensor<2x2xi64>
compare
Performs element-wise comparison of lhs
and rhs
tensors according to comparison_direction
and compare_type
, and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#compare
Example
%result = stablehlo.compare LT, %lhs, %rhs, FLOAT : (tensor<2xf32>, tensor<2xf32>) -> tensor<2xi1>
complex
Performs element-wise conversion to a complex value from a pair of real and imaginary values, lhs
and rhs
, and produces a result
tensor. See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#complex
Example
%result = stablehlo.complex %lhs, %rhs : tensor<2xcomplex<f64>>
composite
Encapsulates an operation made up (composed) of other StableHLO operations, taking inputs
and composite_attributes
and producing results
. The semantics of the op are implemented by the decomposition
attribute. The composite
op can be replaced with its decomposition without changing program semantics. In cases where inlining the decomposition does not provide the same op semantics, prefer using custom_call
.
The version
field (defaults to 0
) is used to denote when a composite's semantics change.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#composite
Example
%results = stablehlo.composite "my.op" %input0, %input1 {
+ composite_attributes = {
+ my_attribute = "my_value"
+ },
+ decomposition = @my_op,
+ version = 1 : i32
+} : (tensor<f32>, tensor<f32>) -> tensor<f32>
concatenate
Concatenates a variadic number of tensors in inputs
along dimension
dimension in the same order as the given arguments and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#concatenate
Example
%result = stablehlo.concatenate %input0, %input1, dim = 0 : (tensor<3x2xi64>, tensor<1x2xi64>) -> tensor<4x2xi64>
constant
Produces an output
tensor from a constant value
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#constant
Example
%output = stablehlo.constant dense<[[0.0, 1.0], [2.0, 3.0]]> : tensor<2x2xf32>
convert
Performs an element-wise conversion from one element type to another on operand
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#convert
Example
%result = stablehlo.convert %operand : (tensor<3xi64>) -> tensor<3xcomplex<f64>>
convolution
Computes dot products between windows of lhs
and slices of rhs
and produces result
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#convolution
Example
%result = stablehlo.convolution(%lhs, %rhs)
+ dim_numbers = [b, 0, 1, f]x[0, 1, i, o]->[b, 0, 1, f],
+ window = {
+ stride = [4, 4],
+ pad = [[0, 0], [0, 0]],
+ lhs_dilate = [2, 2],
+ rhs_dilate = [1, 1],
+ reverse = [0, 0]
+ } {
+ feature_group_count = 1 : i64,
+ batch_group_count = 1 : i64,
+ precision_config = [#stablehlo<precision DEFAULT>, #stablehlo<precision DEFAULT>]
+ } :
+(tensor<1x4x4x1xi64>, tensor<3x3x1x1xi64>) -> tensor<1x2x2x1xi64>
cosine
Performs element-wise cosine operation on operand
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#cosine
Example
%result = stablehlo.cosine %operand : tensor<2xf32>
count_leading_zeros
Performs element-wise count of the number of leading zero bits in the operand
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#count_leading_zeros
Example
%result = stablehlo.count_leading_zeros %operand : tensor<2x2xi64>
create_token
This operation is on its way out of StableHLO, so it is not included in the StableHLO specification: https://github.com/openxla/stablehlo/issues/3.
Informally, this operation does the same thing as AfterAllOp with 0 inputs: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#after_all
Example
%output = stablehlo.create_token : !stablehlo.token
cross_replica_sum
This operation is on its way out of StableHLO, so it is not included in the StableHLO specification: https://github.com/openxla/stablehlo/issues/3.
Informally, this operation does the same thing as AllReduceOp with channel_id = 0
, use_global_device_ids = false
and computation
implementing addition: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#all_reduce
Example
%result = "stablehlo.cross-replica-sum"(%operand) {
+ replica_groups = dense<[[0, 1]]> : tensor<1x2xi64>
+} : (tensor<4xf32>) -> tensor<4xf32>
custom_call
Encapsulates an implementation-defined operation call_target_name
that takes inputs
and called_computations
and produces results
.
Depending on the API version there are two ways to pass extra bits of static information to the external function:
Use API_VERSION_TYPED_FFI
which allows passing a dictionary attribute.
Use a previous API version with a StringAttr to encode backend config.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#custom_call
Example
%results = stablehlo.custom_call @foo(%input0) {
+ backend_config = {bar = 42 : i32},
+ api_version = 4 : i32,
+ called_computations = [@foo]
+} : (tensor<f64>) -> tensor<f64>
divide
Performs element-wise division of dividend lhs
and divisor rhs
tensors and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#divide
Example
%result = stablehlo.divide %lhs, %rhs : tensor<4xf32>
dot
This operation is on its way out of StableHLO, so it is not included in the StableHLO specification: https://github.com/openxla/stablehlo/issues/3.
Informally, this operation does the same thing as XLA's Dot: https://www.tensorflow.org/xla/operation_semantics#dot
Example
%0 = stablehlo.dot %arg0, %arg1 : (tensor<1x2xi32>, tensor<2x1xi32>) -> tensor<1x1xi32>
dot_general
Computes dot products between slices of lhs
and slices of rhs
and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#dot_general
Example
%result = stablehlo.dot_general %lhs, %rhs,
+ batching_dims = [0] x [0],
+ contracting_dims = [2] x [1],
+ precision = [DEFAULT, DEFAULT],
+ algorithm = <lhs_precision_type = tf32, rhs_precision_type = tf32, accumulation_type = f32, lhs_component_count = 1, rhs_component_count = 1, num_primitive_operations = 1, allow_imprecise_accumulation = false>
+ : (tensor<2x2x2xi64>, tensor<2x2x2xi64>) -> tensor<2x2x2xi64>
dynamic_broadcast_in_dim
This operation is functionally identical to broadcast_in_dim op, but the result shape is specified dynamically via output_dimensions
.
It also accepts optional attributes to express static knowledge about the expanding behavior of dimensions. If not specified, all dimensions are assumed to be possibly expanding. The sets of dimensions that are known to be expanding and the set of dimensions that are known to be non-expanding must be disjoint and they must be a subset of the operand's dimensions.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#dynamic_broadcast_in_dim
Example
%operand = stablehlo.constant dense<[[1, 2, 3]]> : tensor<1x3xi64>
+%output_dimensions = stablehlo.constant dense<[2, 3, 2]> : tensor<3xi64>
+%result = "stablehlo.dynamic_broadcast_in_dim"(%operand, %output_dimensions) {
+ broadcast_dimensions = array<i64: 2, 1>,
+ known_expanding_dimensions = array<i64: 0>,
+ known_nonexpanding_dimensions = array<i64: 1>
+} : (tensor<1x3xi64>, tensor<3xi64>) -> tensor<2x3x2xi64>
dynamic_conv
This operation is functionally identical to convolution op, but the padding is specified dynamically via padding
.
Example
%padding = stablehlo.constant dense<2> : tensor<2x2xi64>
+%result = "stablehlo.dynamic_conv"(%lhs, %rhs, %padding) {
+ window_strides = array<i64: 4, 4>,
+ lhs_dilation = array<i64: 2, 2>,
+ rhs_dilation = array<i64: 1, 1>,
+ window_reversal = array<i1: false, false>,
+ dimension_numbers = #stablehlo.conv<[b, 0, 1, f]x[0, 1, i, o]->[b, 0, 1, f]>,
+ batch_group_count = 1 : i64,
+ feature_group_count = 1 : i64,
+ precision_config = [#stablehlo<precision DEFAULT>, #stablehlo<precision DEFAULT>]
+} : (tensor<1x4x4x1xi64>, tensor<3x3x1x1xi64>, tensor<2x2xi64>) -> tensor<1x2x2x1xi64>
dynamic_gather
This operation is functionally identical to gather op, with the slice_sizes
specified dynamically as an operand.
Example
%slice_sizes = stablehlo.constant dense<[1, 2, 2]> : tensor<3xi64>
+%result = "stablehlo.dynamic_gather"(%operand, %start_indices, %slice_sizes) {
+ dimension_numbers = #stablehlo.gather<
+ offset_dims = [2, 3],
+ collapsed_slice_dims = [0],
+ start_index_map = [0, 2],
+ index_vector_dim = 2>,
+ indices_are_sorted = false
+} : (tensor<3x4x2xi64>, tensor<2x3x2xi64>, tensor<3xi64>) -> tensor<2x3x2x2xi64>
dynamic_iota
This operation is functionally identical to iota op, but the result shape is specified dynamically via output_shape
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#dynamic_iota
Example
%output_shape = stablehlo.constant dense<[4, 5]> : tensor<2xi64>
+%0 = stablehlo.dynamic_iota %output_shape, dim = 0 : (tensor<2xi64>) -> tensor<4x5xi64>
dynamic_pad
This operation is functionally identical to pad https://github.com/openxla/stablehlo/pull/2306#discussion_r1595669709 op, but with edge_padding_low
,edge_padding_high
andinterior_padding
specified dynamically as values.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#dynamic_pad
Example
%edge_padding_low = stablehlo.constant dense<[0, 1]> : tensor<2xi32>
+%edge_padding_high = stablehlo.constant dense<[2, 1]> : tensor<2xi32>
+%interior_padding = stablehlo.constant dense<[1, 2]> : tensor<2xi32>
+%result = stablehlo.dynamic_pad %operand, %padding_value,
+ %edge_padding_low, %edge_padding_high, %interior_padding
+ : (tensor<2x3xi64>, tensor<i64>, tensor<2xi64>, tensor<2xi64>, tensor<2xi64>) -> tensor<5x9xi64>
dynamic_reshape
This operation is functionally identical to reshape op, but the result shape is specified dynamically via output_shape
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#dynamic_reshape
Example
%output_shape = stablehlo.constant dense<[3, 2]> : tensor<2xi64>
+%result = stablehlo.dynamic_reshape %operand, %output_shape : (tensor<2x3xi64>, tensor<2xi64>) -> tensor<3x2xi64>
dynamic_slice
Extracts a slice from the operand
using dynamically-computed starting indices and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#dynamic_slice
Example
%result = stablehlo.dynamic_slice %operand, %start_indices0, %start_indices1, sizes = [2, 2]
+ : (tensor<4x4xi32>, tensor<i64>, tensor<i64>) -> tensor<2x2xi32>
dynamic_update_slice
Produces a result
tensor which is equal to the operand
tensor except that the slice starting at start_indices
is updated with the values in update
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#dynamic_update_slice
Example
%result = stablehlo.dynamic_update_slice %operand, %update, %start_indices0, %start_indices1
+ : (tensor<4x4xi32>, tensor<2x2xi32>, tensor<i64>, tensor<i64>) -> tensor<4x4xi32>
einsum
This operation is on its way out of StableHLO, so it is not included in the StableHLO specification: https://github.com/openxla/stablehlo/issues/3.
Informally, this operation does the same thing as TF's einsum: https://www.tensorflow.org/api_docs/python/tf/einsum
Example
%result = "stablehlo.einsum"(%lhs, %rhs) {
+ einsum_config = "ab,bc->ac"
+} : (tensor<4x16xf32>, tensor<16x4xf32>) -> tensor<4x4xf32>
exponential
Performs element-wise exponential operation on operand
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#exponential
Example
%result = stablehlo.exponential %operand : tensor<2x2xf64>
exponential_minus_one
Performs element-wise exponential minus one operation on operand
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#exponential_minus_one
Example
%result = stablehlo.exponential_minus_one %operand : tensor<2xf64>
fft
Performs the forward and inverse Fourier transforms for real and complex inputs/outputs.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#fft
Example
%result = stablehlo.fft %operand, type = FFT, length = [4] : (tensor<4xcomplex<f32>>) -> tensor<4xcomplex<f32>>
floor
Performs element-wise floor of operand
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#floor
Example
%result = stablehlo.floor %operand : tensor<2xf32>
gather
Gathers slices from operand
tensor from offsets specified in start_indices
and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#gather
Example
%result = "stablehlo.gather"(%operand, %start_indices) {
+ dimension_numbers = #stablehlo.gather<
+ offset_dims = [3, 4],
+ collapsed_slice_dims = [1],
+ operand_batching_dims = [0],
+ start_indices_batching_dims = [1],
+ start_index_map = [2, 1],
+ index_vector_dim = 3>,
+ slice_sizes = array<i64: 1, 1, 2, 2>,
+ indices_are_sorted = false
+} : (tensor<2x3x4x2xi64>, tensor<2x2x3x2xi64>) -> tensor<2x2x3x2x2xi64>
get_dimension_size
Produces the size of the given dimension
of the operand
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#get_dimension_size
Example
%result = stablehlo.get_dimension_size %operand, dim = 1 : (tensor<2x3xi64>) -> tensor<i32>
get_tuple_element
Extracts element at index
position of the operand
tuple and produces a result
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#get_tuple_element
Example
%result = stablehlo.get_tuple_element %operand[0] : (tuple<tensor<2xf64>, tuple<tensor<i64>>>) -> tensor<2xf64>
if_
Produces the output from executing exactly one branch from true_branch
or false_branch
depending on the value of pred
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#if
Example
%result = "stablehlo.if"(%pred) ({ "stablehlo.return"(%result_true_branch) : (tensor<i32>) -> () }, { "stablehlo.return"(%result_false_branch) : (tensor<i32>) -> () }) : (tensor<i1>) -> tensor<i32>
',6))]),t("details",ce,[t("summary",null,[e[159]||(e[159]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.imag-Tuple{Reactant.MLIR.IR.Value}",href:"#Reactant.MLIR.Dialects.stablehlo.imag-Tuple{Reactant.MLIR.IR.Value}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.imag")],-1)),e[160]||(e[160]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[161]||(e[161]=n('imag
Extracts the imaginary part, element-wise, from the operand
and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#imag
Example
%result = stablehlo.imag %operand : (tensor<2xcomplex<f32>>) -> tensor<2xf32>
infeed
Reads data from the infeed and produces results
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#infeed
Example
%results0:2 = "stablehlo.infeed"(%token) :
+ (!stablehlo.token) -> (tensor<2x2xi64>, !stablehlo.token)
iota
Fills an output
tensor with values in increasing order starting from zero along the iota_dimension
dimension.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#iota
Example
%output = stablehlo.iota dim = 0 : tensor<4x5xi32>
is_finite
Performs element-wise check whether the value in x
is finite (i.e. is neither +Inf, -Inf, nor NaN) and produces a y
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#is_finite
Example
%y = stablehlo.is_finite %x : (tensor<7xf64>) -> tensor<7xi1>
log
Performs element-wise logarithm operation on operand
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#log
Example
%result = stablehlo.log %operand : tensor<2x2xf64>
log_plus_one
Performs element-wise logarithm plus one operation on operand
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#log_plus_one
Example
%result = stablehlo.log_plus_one %operand : tensor<5xf64>
logistic
Performs element-wise logistic operation on operand
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#logistic
Example
%result = stablehlo.logistic %operand : tensor<2x2xf64>
map
Applies a map function computation
to inputs
along the dimensions
and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#map
Example
%result = "stablehlo.map"(%input0, %input1) ({
+ ^bb0(%arg0: tensor<i64>, %arg1: tensor<i64>):
+ %0 = stablehlo.multiply %arg0, %arg1 : tensor<i64>
+ stablehlo.return %0 : tensor<i64>
+}) {
+ dimensions = array<i64: 0, 1>
+} : (tensor<2x2xi64>, tensor<2x2xi64>) -> tensor<2x2xi64>
maximum
Performs element-wise max operation on tensors lhs
and rhs
and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#maximum
Example
%result = stablehlo.maximum %lhs, %rhs : tensor<4xf32>
minimum
Performs element-wise min operation on tensors lhs
and rhs
and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#minimum
Example
%result = stablehlo.minimum %lhs, %rhs : tensor<4xf32>
multiply
Performs element-wise product of two tensors lhs
and rhs
and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#multiply
Example
%result = stablehlo.multiply %lhs, %rhs : tensor<2xi32>
negate
Performs element-wise negation of operand
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#negate
Example
%result = stablehlo.negate %operand : tensor<2x3xi32>
not
Performs element-wise NOT of tensor operand
of type integer and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#not
Example
%result = stablehlo.not %operand : tensor<5x3x1xi1>
optimization_barrier
Ensures that the operations that produce the operand
are executed before any operations that depend on the result
and prevents compiler transformations from moving operations across the barrier. Other than that, the operation is an identity, i.e. result
= operand
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#optimization_barrier
Example
%result0, %result1 = stablehlo.optimization_barrier %operand0, %operand1 : tensor<f32>, tensor<f32>
or
Performs element-wise OR of two tensors lhs
and rhs
and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#or
Example
%result = stablehlo.or %lhs, %rhs : tensor<2xi1>
outfeed
Writes inputs
to the outfeed and produces a result
token.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#outfeed
Example
%result = "stablehlo.outfeed"(%input0, %token) :
+ (tensor<2x2x2xi64>, !stablehlo.token) -> !stablehlo.token
pad
Expands operand
by padding around the tensor as well as between the elements of the tensor with the given padding_value
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#pad
Example
%0 = stablehlo.pad %arg0, %arg1, low = [0, 1], high = [2, 1], interior = [1, 2]
+ : (tensor<2x3xi32>, tensor<i32>) -> tensor<5x9xi32>
partition_id
Produces partition_id
of the current process.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#partition_id
Example
%result = stablehlo.partition_id : tensor<ui32>
popcnt
Performs element-wise count of the number of bits set in the operand
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#popcnt
Example
%result = stablehlo.popcnt %operand : tensor<4xi64>
power
Performs element-wise exponentiation of lhs
tensor by rhs
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#power
Example
%result = stablehlo.power %lhs, %rhs : tensor<6xf64>
real
Extracts the real part, element-wise, from the operand
and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#real
Example
%result = stablehlo.real %operand : (tensor<2xcomplex<f32>>) -> tensor<2xf32>
real_dynamic_slice
This operation is a work in progress, so it is not yet included in the StableHLO specification: https://github.com/openxla/stablehlo/issues/8.
Informally, this operation does the same thing as SliceOp except that start_indices
, limit_indices
and strides
are specified dynamically: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#slice
Example
%result = stablehlo.real_dynamic_slice %operand,
+ %start_indices, %limit_indices, %strides
+ : (tensor<256x?xf32>, tensor<2xindex>, tensor<2xindex>, tensor<2xindex>) -> tensor<256x?xf32>
recv
Receives data from a channel with channel_id
and produces results
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#recv
Example
%results:2 = "stablehlo.recv"(%token) {
+ channel_handle = #stablehlo.channel_handle<handle = 1, type = 3>,
+ is_host_transfer = true
+} : (!stablehlo.token) -> (tensor<2x2xi64>, !stablehlo.token)
reduce
Applies a reduction function body
to inputs
and init_values
along the dimensions
and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#reduce
Example
%result = "stablehlo.reduce"(%input, %init_value) ({
+ ^bb0(%arg0: tensor<i64>, %arg1: tensor<i64>):
+ %0 = stablehlo.add %arg0, %arg1 : tensor<i64>
+ stablehlo.return %0 : tensor<i64>
+}) {
+ dimensions = array<i64: 1>
+} : (tensor<1x6xi64>, tensor<i64>) -> tensor<1xi64>
reduce_precision
Performs element-wise conversion of operand
to another floating-point type that uses exponent_bits
and mantissa_bits
and back to the original floating-point type and produces an output
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#reduce_precision
Example
%output = stablehlo.reduce_precision %operand, format = e5m10 : tensor<6xf64>
reduce_scatter
Within each process group in the process grid, performs reduction, using computations
, over the values of the operand
tensor from each process, splits the reduction result along scatter_dimension
into parts, and scatters the split parts between the processes to produce the result
.
See:\nhttps://github.com/openxla/stablehlo/blob/main/docs/spec#reduce_scatter\n\nExample:\n```mlir\n%result = "stablehlo.reduce_scatter"(%operand) ({
^bb0(%arg0: tensor<i64>, %arg1: tensor<i64>): %0 = stablehlo.add %arg0, %arg1 : tensor<i64> stablehlo.return %0 : tensor<i64> }) { scatter_dimension = 1 : i64, replica_groups = dense<[[0, 1]]> : tensor<1x2xi64>, channel_handle = #stablehlo.channel_handle<handle = 0, type = 0> } : (tensor<2x4xi64>) -> tensor<2x2xi64> ```
',5))]),t("details",ze,[t("summary",null,[e[237]||(e[237]=t("a",{id:"Reactant.MLIR.Dialects.stablehlo.reduce_window-Tuple{Vector{Reactant.MLIR.IR.Value}, Vector{Reactant.MLIR.IR.Value}}",href:"#Reactant.MLIR.Dialects.stablehlo.reduce_window-Tuple{Vector{Reactant.MLIR.IR.Value}, Vector{Reactant.MLIR.IR.Value}}"},[t("span",{class:"jlbinding"},"Reactant.MLIR.Dialects.stablehlo.reduce_window")],-1)),e[238]||(e[238]=a()),l(s,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),e[239]||(e[239]=n(`reduce_window
Applies a reduction function body
to windows of inputs
and init_values
and produces results
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#reduce_window
Example
%result = "stablehlo.reduce_window"(%input, %init_value) ({
+ ^bb0(%arg0: tensor<i64>, %arg1: tensor<i64>):
+ %0 = stablehlo.add %arg0, %arg1 : tensor<i64>
+ stablehlo.return %0 : tensor<i64>
+}) {
+ window_dimensions = array<i64: 2, 1>,
+ window_strides = array<i64: 4, 1>,
+ base_dilations = array<i64: 2, 1>,
+ window_dilations = array<i64: 3, 1>,
+ padding = dense<[[2, 1], [0, 0]]> : tensor<2x2xi64>
+} : (tensor<3x2xi64>, tensor<i64>) -> tensor<2x2xi64>
remainder
Performs element-wise remainder of dividend lhs
and divisor rhs
tensors and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#remainder
Example
%result = stablehlo.remainder %lhs, %rhs : tensor<4xi64>
replica_id
Produces replica_id
of the current process.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#replica_id
Example
%result = stablehlo.replica_id : tensor<ui32>
reshape
Performs reshape of operand
tensor to a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#reshape
Example
%result = stablehlo.reshape %operand : (tensor<2xf32>) -> tensor<1x2xf32>
reverse
Reverses the order of elements in the operand
along the specified dimensions
and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#reverse
Example
%result = stablehlo.reverse %operand, dims = [1] : tensor<3x2xi32>
rng
Generates random numbers using the rng_distribution
algorithm and produces a result
tensor of a given shape shape
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#rng
Example
%result = stablehlo.rng %a, %b, %shape, distribution = NORMAL : (tensor<i32>, tensor<i32>, tensor<2xi64>) -> tensor<3x3xi32>
rng_bit_generator
Returns an output
filled with uniform random data and an updated output state output_state
given an initial state initial_state
using the pseudorandom number generator algorithm rng_algorithm
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#rng_bit_generator
Example
%output_state, %output = stablehlo.rng_bit_generator %initial_state, algorithm = THREE_FRY : (tensor<2xui64>) -> (tensor<2xui64>, tensor<2x2xui64>)
round_nearest_afz
Performs element-wise rounding towards the nearest integer, breaking ties away from zero, on the operand
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#round_nearest_afz
Example
%result = stablehlo.round_nearest_afz %operand : tensor<5xf64>
round_nearest_even
Performs element-wise rounding towards the nearest integer, breaking ties towards the even integer, on the operand
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#round_nearest_even
Example
%result = stablehlo.round_nearest_even %operand : tensor<5xf64>
rsqrt
Performs element-wise reciprocal square root operation on operand
tensor and produces a result
tensor, implementing the rSqrt
operation from the IEEE-754 specification.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#rsqrt
Example
%result = stablehlo.rsqrt %operand : tensor<2x2xf32>
scatter
Produces results
tensors which are equal to inputs
tensors except that several slices specified by scatter_indices
are updated with the values updates
using update_computation
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#scatter
Example: mlir %result = "stablehlo.scatter"(%input, %scatter_indices, %update) ({ ^bb0(%arg0: tensor<i64>, %arg1: tensor<i64>): %0 = stablehlo.add %arg0, %arg1 : tensor<i64> stablehlo.return %0 : tensor<i64> }) { scatter_dimension_numbers = #stablehlo.scatter< update_window_dims = [3, 4], inserted_window_dims = [1], input_batching_dims = [0], scatter_indices_batching_dims = [1], scatter_dims_to_operand_dims = [2, 1], index_vector_dim = 3>, indices_are_sorted = false, unique_indices = false } : (tensor<2x3x4x2xi64>, tensor<2x2x3x2xi64>, tensor<2x2x3x2x2xi64>) -> tensor<2x3x4x2xi64>
select
Produces a result
tensor where each element is selected from on_true
or on_false
tensor based on the value of the corresponding element of pred
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#select
Example
%result = stablehlo.select %pred, %on_true, %on_false : tensor<2x2xi1>, tensor<2x2xi32>
select_and_scatter
Scatters the values from the source
tensor using scatter
based on the outcome of reduce_window
of the input
tensor using select
and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#select_and_scatter
Example
%result = "stablehlo.select_and_scatter"(%operand, %source, %init_value) ({
+ ^bb0(%arg0: tensor<i64>, %arg1: tensor<i64>):
+ %0 = stablehlo.compare GE, %arg0, %arg1 : (tensor<i64>, tensor<i64>) -> tensor<i1>
+ stablehlo.return %0 : tensor<i1>
+}, {
+ ^bb0(%arg0: tensor<i64>, %arg1: tensor<i64>):
+ %0 = stablehlo.add %arg0, %arg1 : tensor<i64>
+ stablehlo.return %0 : tensor<i64>
+}) {
+ window_dimensions = dense<[3, 1]> : tensor<2xi64>,
+ window_strides = dense<[2, 1]> : tensor<2xi64>,
+ padding = dense<[[0, 1], [0, 0]]> : tensor<2x2xi64>
+} : (tensor<4x2xi64>, tensor<2x2xi64>, tensor<i64>) -> tensor<4x2xi64>
send
Sends inputs
to a channel channel_id
and produces a result
token.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#send
Example
%result = "stablehlo.send"(%operand, %token) {
+ channel_handle = #stablehlo.channel_handle<handle = 1, type = 2>,
+ is_host_transfer = true
+} : (tensor<2x2xi64>, !stablehlo.token) -> !stablehlo.token
set_dimension_size
This operation is a work in progress, so it is not yet included in the StableHLO specification: https://github.com/openxla/stablehlo/issues/8.
Informally, this operation does the same thing as XLA's SetDimensionSize: https://www.tensorflow.org/xla/operation_semantics#setdimensionsize
Example
%0 = stablehlo.set_dimension_size %arg0, %arg1, dim = 1 : (tensor<4x2xf32>, tensor<i32>) -> tensor<4x2xf32>
shift_left
Performs element-wise left-shift operation on the lhs
tensor by rhs
number of bits and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#shift_left
Example
%result = stablehlo.shift_left %lhs, %rhs : tensor<3xi64>
shift_right_arithmetic
Performs element-wise arithmetic right-shift operation on the lhs
tensor by rhs
number of bits and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#shift_right_arithmetic
Example
%result = stablehlo.shift_right_arithmetic %lhs, %rhs : tensor<3xi64>
shift_right_logical
Performs element-wise logical right-shift operation on the lhs
tensor by rhs
number of bits and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#shift_right_logical
Example
%result = stablehlo.shift_right_logical %lhs, %rhs : tensor<3xi64>
sign
Returns the sign of the operand
element-wise and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#sign
Example
%result = stablehlo.sign %operand : tensor<5xf64>
sine
Performs element-wise sine operation on operand
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#sine
Example
%result = stablehlo.sine %operand : tensor<2xf32>
slice
Extracts a slice from the operand
using statically-computed starting indices and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#slice
Example
%result = stablehlo.slice %operand [1:3, 4:8:2]\n : (tensor<3x8xi64>) -> tensor<2x2xi64>\n\n// Same in generic form: the `1:3` above is mapped to the first entry in\n// `start_indices` and `limit_indices`, while `strides` is implicitly 1.\n// The `4:8:2` above is parsed into the second entry of `start_indices`,\n// `limit_indices` and `strides` respectively.\n%result = "stablehlo.slice" (%operand) {\n start_indices = array<i64: 1, 4>,\n limit_indices = array<i64: 3, 8>,\n strides = array<i64: 1, 2>\n} : (tensor<3x8xi64>) -> tensor<2x2xi64>
sort
Sorts a variadic number of tensors in inputs
together, according to a custom comparator
, along the given dimension
and produces a variadic number of tensors as results
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#sort
Example
+
+[source](https://github.com/EnzymeAD/Reactant.jl/blob/716daf609b6a2f5cd9031dd20a875c87fcf99c58/src/mlir/Dialects/StableHLO.jl#L4195-L4215)
+
+</details>
+
+<details class='jldocstring custom-block' >
+<summary><a id='Reactant.MLIR.Dialects.stablehlo.sqrt-Tuple{Reactant.MLIR.IR.Value}' href='#Reactant.MLIR.Dialects.stablehlo.sqrt-Tuple{Reactant.MLIR.IR.Value}'><span class="jlbinding">Reactant.MLIR.Dialects.stablehlo.sqrt</span></a> <Badge type="info" class="jlObjectType jlMethod" text="Method" /></summary>
+
+
+
+\`sqrt\`
+
+Performs element-wise square root operation on \`operand\` tensor and produces a \`result\` tensor.
+
+See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#sqrt
+
+**Example**
+
+\`\`\`mlir
+%result = stablehlo.sqrt %operand : tensor<2x2xf32>
subtract
Performs element-wise subtraction of two tensors lhs
and rhs
and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#subtract
Example
%result = stablehlo.subtract %lhs, %rhs : tensor<2xi32>
tan
Performs element-wise tangent operation on operand
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#tan
Example
%result = stablehlo.tan %operand : tensor<2x2xf64>
tanh
Performs element-wise hyperbolic tangent operation on operand
tensor and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#tanh
Example
%result = stablehlo.tanh %operand : tensor<2xf32>
torch_index_select
This operation is on its way out of StableHLO, so it is not included in the StableHLO specification: https://github.com/openxla/stablehlo/issues/3.
Informally, this operation does the same thing as PyTorch's index_select, augmented with support for batch dimensions: https://pytorch.org/docs/stable/generated/torch.index_select.html.
The batch_dims
attribute specifies the number of major batch dimensions (0 or more) that act like a multidimensional loop over both the operand and the index.
Example
%result = "stablehlo.torch_index_select"(%operand, %index) {
+ dim = 2 : i64,
+ batch_dims = 1 : i64
+} : (tensor<8x128x3072x64xf32>, tensor<8x16x1024xi32>) -> tensor<8x128x16x1024x64xf32>
transpose
Permutes the dimensions of operand
tensor using permutation
and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#transpose
Example
%0 = stablehlo.transpose %arg0, dims = [2, 1, 0] : (tensor<1x2x3xi32>) -> tensor<3x2x1xi32>
triangular_solve
Solves batches of systems of linear equations with lower or upper triangular coefficient matrices.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#triangular_solve
Example
%result = "stablehlo.triangular_solve"(%a, %b) {
+ left_side = true,
+ lower = true,
+ unit_diagonal = false,
+ transpose_a = #stablehlo<transpose NO_TRANSPOSE>
+} : (tensor<3x3xf32>, tensor<3x3xf32>) -> tensor<3x3xf32>
tuple
Produces a result
tuple from values val
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#tuple
Example
%result = stablehlo.tuple %val0, %val1 : tuple<tensor<2xf64>, tuple<tensor<i64>>>
unary_einsum
This operation is on its way out of StableHLO, so it is not included in the StableHLO specification: https://github.com/openxla/stablehlo/issues/3.
Informally, this operation does the same thing as TF's einsum: https://www.tensorflow.org/api_docs/python/tf/einsum
Example
%result = "stablehlo.unary_einsum"(%operand) {
+ einsum_config = "ab->a"
+} : (tensor<4x16xf32>) -> tensor<4xf32>
uniform_dequantize
Performs element-wise conversion of quantized tensor operand
to a floating-point tensor result
according to the quantization parameters defined by the operand
type.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#uniform_dequantize
Example
%result = stablehlo.uniform_dequantize %operand : (tensor<2x!quant.uniform<i8:f32:0, {0.1:-30,0.5:-20}>>) -> tensor<2xf32>
uniform_quantize
Performs element-wise conversion of floating-point tensor or quantized tensor operand
to a quantized tensor result
according to the quantization parameters defined by the result
type.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#uniform_quantize
Example
%result = stablehlo.uniform_quantize %operand : (tensor<2xf32>) -> tensor<2x!quant.uniform<i8:f32:0, {0.1:-30,0.5:-20}>>
while_
Produces the output from executing body
function 0 or more times while the cond
function outputs true
.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#while
Example
%results0, %results1 = stablehlo.while(%arg0 = %init_i, %arg1 = %init_sum) : tensor<i64>, tensor<i64>
+cond {
+ %cond = stablehlo.compare LT, %arg0, %ten : (tensor<i64>, tensor<i64>) -> tensor<i1>
+ stablehlo.return %cond : tensor<i1>
+} do {
+ %new_sum = stablehlo.add %arg1, %one : tensor<i64>
+ %new_i = stablehlo.add %arg0, %one : tensor<i64>
+ stablehlo.return %new_i, %new_sum : tensor<i64>, tensor<i64>
+}
xor
Performs element-wise XOR of two tensors lhs
and rhs
and produces a result
tensor.
See: https://github.com/openxla/stablehlo/blob/main/docs/spec.md#xor
Example
%result = stablehlo.xor %lhs, %rhs : tensor<2xi32>
Scientific Computing
Lux.jl
Machine Learning
Quantum Simulation
Tenet.jl
Tensor Networks
',4))}const Ua=$(Fa,[["render",Ra]]),ja=b({__name:"VersionPicker",props:{screenMenu:{type:Boolean}},setup(o){const e=T([]),t=T("Versions"),s=T(!1);Te();const n=()=>typeof window<"u"&&(window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1"),r=()=>{if(typeof window>"u")return"";const{origin:c,pathname:h}=window.location;if(c.includes("github.io")){const y=h.split("/").filter(Boolean),m=y.length>0?`/${y[0]}/`:"/";return`${c}${m}`}else return c},l=()=>new Promise(c=>{if(n()){c(!1);return}const h=setInterval(()=>{window.DOC_VERSIONS&&window.DOCUMENTER_CURRENT_VERSION&&(clearInterval(h),c(!0))},100);setTimeout(()=>{clearInterval(h),c(!1)},5e3)});return F(async()=>{if(!(typeof window>"u")){try{if(n()){const c=["dev"];e.value=c.map(h=>({text:h,link:"/"})),t.value="dev"}else{const c=await l(),h=P(()=>r());if(c&&window.DOC_VERSIONS&&window.DOCUMENTER_CURRENT_VERSION)e.value=window.DOC_VERSIONS.map(y=>({text:y,link:`${h.value}/${y}/`})),t.value=window.DOCUMENTER_CURRENT_VERSION;else{const y=["dev"];e.value=y.map(m=>({text:m,link:`${h.value}/${m}/`})),t.value="dev"}}}catch(c){console.warn("Error loading versions:",c);const h=["dev"],y=P(()=>r());e.value=h.map(m=>({text:m,link:`${y.value}/${m}/`})),t.value="dev"}s.value=!0}}),(c,h)=>s.value?(a(),d(M,{key:0},[!c.screenMenu&&e.value.length>0?(a(),k(Fe,{key:0,item:{text:t.value,items:e.value},class:"VPVersionPicker"},null,8,["item"])):c.screenMenu&&e.value.length>0?(a(),k(Ue,{key:1,text:t.value,items:e.value,class:"VPVersionPicker"},null,8,["text","items"])):_("",!0)],64)):_("",!0)}}),Ga=$(ja,[["__scopeId","data-v-d483b3a6"]]),za=o=>{if(typeof document>"u")return{stabilizeScrollPosition:n=>async(...r)=>n(...r)};const e=document.documentElement;return{stabilizeScrollPosition:s=>async(...n)=>{const r=s(...n),l=o.value;if(!l)return r;const p=l.offsetTop-e.scrollTop;return await he(),e.scrollTop=l.offsetTop-p,r}}},je="vitepress:tabSharedState",J=typeof localStorage<"u"?localStorage:null,Ge="vitepress:tabsSharedState",Ka=()=>{const o=J==null?void 0:J.getItem(Ge);if(o)try{return JSON.parse(o)}catch{}return{}},qa=o=>{J&&J.setItem(Ge,JSON.stringify(o))},Wa=o=>{const e=ot({});D(()=>e.content,(t,s)=>{t&&s&&qa(t)},{deep:!0}),o.provide(je,e)},Ja=(o,e)=>{const t=W(je);if(!t)throw new Error("[vitepress-plugin-tabs] TabsSharedState should be injected");F(()=>{t.content||(t.content=Ka())});const s=T(),n=P({get(){var c;const l=e.value,p=o.value;if(l){const h=(c=t.content)==null?void 0:c[l];if(h&&p.includes(h))return h}else{const h=s.value;if(h)return h}return p[0]},set(l){const p=e.value;p?t.content&&(t.content[p]=l):s.value=l}});return{selected:n,select:l=>{n.value=l}}};let Le=0;const Ya=()=>(Le++,""+Le);function Qa(){const o=Ae();return P(()=>{var s;const t=(s=o.default)==null?void 0:s.call(o);return t?t.filter(n=>typeof n.type=="object"&&"__name"in n.type&&n.type.__name==="PluginTabsTab"&&n.props).map(n=>{var r;return(r=n.props)==null?void 0:r.label}):[]})}const ze="vitepress:tabSingleState",Xa=o=>{me(ze,o)},Za=()=>{const o=W(ze);if(!o)throw new Error("[vitepress-plugin-tabs] TabsSingleState should be injected");return o},xa={class:"plugin-tabs"},er=["id","aria-selected","aria-controls","tabindex","onClick"],tr=b({__name:"PluginTabs",props:{sharedStateKey:{}},setup(o){const e=o,t=Qa(),{selected:s,select:n}=Ja(t,at(e,"sharedStateKey")),r=T(),{stabilizeScrollPosition:l}=za(r),p=l(n),c=T([]),h=m=>{var C;const S=t.value.indexOf(s.value);let V;m.key==="ArrowLeft"?V=S>=1?S-1:t.value.length-1:m.key==="ArrowRight"&&(V=SIts easy to install Reactant.jl. Since Reactant.jl is registered in the Julia General registry, you can simply run the following command in the Julia REPL:
julia> using Pkg
+julia> Pkg.add("Reactant")
If you want to use the latest unreleased version of Reactant.jl, you can run the following command:
julia> using Pkg
+julia> Pkg.add(url="https://github.com/EnzymeAD/Reactant.jl")
using Reactant
+Reactant.set_default_backend("cpu")
using Reactant
+Reactant.set_default_backend("gpu")
using Reactant
+Reactant.set_default_backend("tpu")
Its easy to install Reactant.jl. Since Reactant.jl is registered in the Julia General registry, you can simply run the following command in the Julia REPL:
julia> using Pkg
+julia> Pkg.add("Reactant")
If you want to use the latest unreleased version of Reactant.jl, you can run the following command:
julia> using Pkg
+julia> Pkg.add(url="https://github.com/EnzymeAD/Reactant.jl")
using Reactant
+Reactant.set_default_backend("cpu")
using Reactant
+Reactant.set_default_backend("gpu")
using Reactant
+Reactant.set_default_backend("tpu")
Install Julia v1.10 or above. Reactant.jl is available through the Julia package manager. You can enter it by pressing ]
in the REPL and then typing add Reactant
. Alternatively, you can also do
import Pkg
+Pkg.add("Reactant")
Reactant provides two new array types at its core, a ConcreteRArray and a TracedRArray. A ConcreteRArray is an underlying buffer to whatever device data you wish to store and can be created by converting from a regular Julia Array.
using Reactant
+
+julia_data = ones(2, 10)
+reactant_data = Reactant.ConcreteRArray(julia_data)
2×10 ConcreteRArray{Float64, 2}:
+ 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0
+ 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0
You can also create a ConcreteRArray-version of an arbitrary data type by tracing through the structure, like below.
struct Pair{A,B}
+ x::A
+ y::B
+end
+
+pair = Pair(ones(3), ones(10))
+
+reactant_pair = Reactant.to_rarray(pair)
Main.Pair{ConcreteRArray{Float64, 1}, ConcreteRArray{Float64, 1}}(ConcreteRArray{Float64, 1}([1.0, 1.0, 1.0]), ConcreteRArray{Float64, 1}([1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]))
To compile programs using ConcreteRArray's, one uses the compile function, like as follows:
input1 = Reactant.ConcreteRArray(ones(10))
+input2 = Reactant.ConcreteRArray(ones(10))
+
+function sinsum_add(x, y)
+ return sum(sin.(x) .+ y)
+end
+
+f = @compile sinsum_add(input1,input2)
+
+# one can now run the program
+f(input1, input2)
ConcreteRNumber{Float64}(18.414709848078964)
Install Julia v1.10 or above. Reactant.jl is available through the Julia package manager. You can enter it by pressing ]
in the REPL and then typing add Reactant
. Alternatively, you can also do
import Pkg
+Pkg.add("Reactant")
Reactant provides two new array types at its core, a ConcreteRArray and a TracedRArray. A ConcreteRArray is an underlying buffer to whatever device data you wish to store and can be created by converting from a regular Julia Array.
using Reactant
+
+julia_data = ones(2, 10)
+reactant_data = Reactant.ConcreteRArray(julia_data)
2×10 ConcreteRArray{Float64, 2}:
+ 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0
+ 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0
You can also create a ConcreteRArray-version of an arbitrary data type by tracing through the structure, like below.
struct Pair{A,B}
+ x::A
+ y::B
+end
+
+pair = Pair(ones(3), ones(10))
+
+reactant_pair = Reactant.to_rarray(pair)
Main.Pair{ConcreteRArray{Float64, 1}, ConcreteRArray{Float64, 1}}(ConcreteRArray{Float64, 1}([1.0, 1.0, 1.0]), ConcreteRArray{Float64, 1}([1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]))
To compile programs using ConcreteRArray's, one uses the compile function, like as follows:
input1 = Reactant.ConcreteRArray(ones(10))
+input2 = Reactant.ConcreteRArray(ones(10))
+
+function sinsum_add(x, y)
+ return sum(sin.(x) .+ y)
+end
+
+f = @compile sinsum_add(input1,input2)
+
+# one can now run the program
+f(input1, input2)
ConcreteRNumber{Float64}(18.414709848078964)
Optimizing Julia Functions with MLIR
Optimize Julia Functions With MLIR and XLA for High-Performance Execution on CPU, GPU, TPU and more.
Its easy to install Reactant.jl. Since Reactant.jl is registered in the Julia General registry, you can simply run the following command in the Julia REPL:
julia> using Pkg
+julia> Pkg.add("Reactant")
If you want to use the latest unreleased version of Reactant.jl, you can run the following command:
julia> using Pkg
+julia> Pkg.add(url="https://github.com/EnzymeAD/Reactant.jl")
using Reactant
+Reactant.set_default_backend("cpu")
using Reactant
+Reactant.set_default_backend("gpu")
using Reactant
+Reactant.set_default_backend("tpu")