Equations
- MLIR.instDecidableEqVarName = id inferInstance
Equations
- MLIR.instDecidableEqBlockLabel = id inferInstance
An Expr
binds the result of a single operation to a new variable. Morally, it represents
$varName = $op($args) { $regions }
- mk: {Op T : Type} → MLIR.VarName → Op → List MLIR.VarName → List (MLIR.UnTyped.Region Op T) → MLIR.UnTyped.Expr Op T
Instances For
Lets
is a sequence of operations (without terminator), which grows downwards.
That is, the head of the list represents the first operation to be executed
- mk: {Op T : Type} → List (MLIR.UnTyped.Expr Op T) → MLIR.UnTyped.Lets Op T
Instances For
The Body
of a basic block is a sequence of operations, followed by a terminator
- mk: {Op T : Type} → MLIR.UnTyped.Lets Op T → T → MLIR.UnTyped.Body Op T
Instances For
A basic block has a label, a set of arguments, and then a program
- mk: {Op T : Type} → MLIR.BlockLabel → List MLIR.VarName → MLIR.UnTyped.Body Op T → MLIR.UnTyped.BasicBlock Op T
Instances For
A region consists of one or more basic blocks, where the first basic block is known as the entry block
- mk: {Op T : Type} → MLIR.UnTyped.BasicBlock Op T → List (MLIR.UnTyped.BasicBlock Op T) → MLIR.UnTyped.Region Op T
Instances For
Projections #
Equations
- (MLIR.UnTyped.Expr.mk varName op args regions).varName = varName
Instances For
Equations
- (MLIR.UnTyped.Expr.mk varName op args regions).op = op
Instances For
@[simp]
theorem
MLIR.UnTyped.Expr.op_mk
{Op : Type}
{T : Type}
{varName : MLIR.VarName}
{op : Op}
{args : List MLIR.VarName}
{regions : List (MLIR.UnTyped.Region Op T)}
:
(MLIR.UnTyped.Expr.mk varName op args regions).op = op
@[simp]
theorem
MLIR.UnTyped.Expr.varName_mk
{Op : Type}
{T : Type}
{varName : MLIR.VarName}
{op : Op}
{args : List MLIR.VarName}
{regions : List (MLIR.UnTyped.Region Op T)}
:
(MLIR.UnTyped.Expr.mk varName op args regions).varName = varName
def
MLIR.UnTyped.Lets.inner
{Op : Type}
{T : Type}
:
MLIR.UnTyped.Lets Op T → List (MLIR.UnTyped.Expr Op T)
Equations
- (MLIR.UnTyped.Lets.mk inner).inner = inner
Instances For
@[simp]
theorem
MLIR.UnTyped.Lets.mk_inner
{Op : Type}
{T : Type}
(lets : MLIR.UnTyped.Lets Op T)
:
MLIR.UnTyped.Lets.mk lets.inner = lets
@[simp]
theorem
MLIR.UnTyped.Lets.inner_mk
{Op : Type}
{T : Type}
(lets : List (MLIR.UnTyped.Expr Op T))
:
(MLIR.UnTyped.Lets.mk lets).inner = lets
Equations
- (MLIR.UnTyped.BasicBlock.mk label args body).args = args
Instances For
def
MLIR.UnTyped.BasicBlock.body
{Op : Type}
{T : Type}
:
MLIR.UnTyped.BasicBlock Op T → MLIR.UnTyped.Body Op T
Equations
- (MLIR.UnTyped.BasicBlock.mk label args body).body = body