Lines Matching full:operations
31 *Operations*, and edges, called *Values*. Each Value is the result of exactly
33 [type system](#type-system). [Operations](#operations) are contained in
34 [Blocks](#blocks) and Blocks are contained in [Regions](#regions). Operations
37 in a given [kind of region](Interfaces.md/#regionkindinterfaces)). Operations
40 Operations can represent many different concepts, from higher-level concepts
44 gates. These different concepts are represented by different operations in MLIR
45 and the set of operations usable in MLIR can be arbitrarily extended.
47 MLIR also provides an extensible framework for transformations on operations,
49 set of passes on an arbitrary set of operations results in a significant scaling
53 [Interfaces](Interfaces.md), enabling transformations to operate on operations
56 [Op vs Operation](Tutorials/Toy/Ch-2.md/#op-vs-operation-using-mlir-operations))
192 consuming the MLIR syntax. [Operations](#operations),
232 body. Particular operations may further limit which identifiers are in scope in
247 ecosystem. They allow for defining new [operations](#operations), as well as
267 ### Target specific operations
270 operations directly through to MLIR. As an example, some targets go through
272 operations (e.g. addition with overflow check) as well as providing access to
273 target-specific operations for the targets it supports (e.g. vector permutation
274 operations). LLVM intrinsics in MLIR are represented via operations that start
284 These operations only work when targeting LLVM as a backend (e.g. for CPUs and
287 ## Operations section in MLIR Language Reference
308 MLIR introduces a uniform concept called *operations* to enable describing many
309 different levels of abstractions and computations. Operations in MLIR are fully
310 extensible (there is no fixed list of operations) and have application-specific
312 [target-independent operations](Dialects/MemRef.md),
313 [affine operations](Dialects/Affine.md), and
314 [target-specific machine operations](#target-specific-operations).
343 In addition to the basic syntax above, dialects may register known operations.
345 printing operations. In the operation sets listed below, we show both forms.
347 ### Builtin Operations argument
349 The [builtin dialect](Dialects/Builtin.md) defines a select few operations that
371 A *Block* is a list of operations. In
374 instructions inside the block are executed in order and terminator operations
385 operations. Block arguments of the entry block of a region are also arguments to
388 determined by the semantics of terminator operations, e.g. Branches, which have
425 cases from the IR compared to traditional "PHI nodes are operations" SSA IRs
431 are also a fundamental concept that cannot be represented by operations because
447 do. Regions must be contained within operations and have no type or attributes.
464 general, operations with regions can define these correspondences arbitrarily.
477 the enclosing region, if any. By default, operations inside a region can
506 regions support semantics where operations in a region 'execute sequentially'.
517 of the region, called the *entry* block. Terminator operations ending each block
521 operation. Terminator operations without successors can only pass control back
523 of terminator operations is determined by the specific dialect operations
530 standard dialect leverages this capability to define operations with
563 #### Operations with Multiple Regions
572 other operations, in particular those that defined the values or symbols the
593 fundamental order to the relationships. For instance, operations in a graph
606 In graph regions, MLIR operations naturally represent nodes, while each MLIR
608 destination nodes. All values defined in the region as results of operations are
610 region. In graph regions, the order of operations within a block and the order
612 operations may be freely reordered, for instance, by canonicalization. Other
615 operations.
690 Similarly to operations, dialects may define custom extensions to the type
762 Attributes are the mechanism for specifying constant data on operations in
783 itself, but must be compatible with the operations's semantics. These
823 Similarly to operations, dialects may define custom attribute values.