Insert explicit RC instructions. So, it assumes the input code does not contain inc nor dec instructions.
This transformation is applied before lower level optimizations
that introduce the instructions release and set
Equations
- Lean.IR.ExplicitRC.instInhabitedVarInfo = { default := { ref := default, persistent := default, consume := default } }
- env : Lean.Environment
- decls : Array Lean.IR.Decl
- varMap : Lean.IR.ExplicitRC.VarMap
- jpLiveVarMap : Lean.IR.JPLiveVarMap
- localCtx : Lean.IR.LocalContext
Instances For
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Instances For
Instances For
Equations
- Lean.IR.ExplicitRC.mustConsume ctx x = ((Lean.IR.ExplicitRC.getVarInfo ctx x).ref && (Lean.IR.ExplicitRC.getVarInfo ctx x).consume)
Instances For
@[inline]
def
Lean.IR.ExplicitRC.addInc
(ctx : Lean.IR.ExplicitRC.Context)
(x : Lean.IR.VarId)
(b : Lean.IR.FnBody)
(n : Nat := 1)
:
Instances For
@[inline]
def
Lean.IR.ExplicitRC.addDec
(ctx : Lean.IR.ExplicitRC.Context)
(x : Lean.IR.VarId)
(b : Lean.IR.FnBody)
:
Equations
- Lean.IR.ExplicitRC.addDec ctx x b = Lean.IR.FnBody.dec x 1 true (Lean.IR.ExplicitRC.getVarInfo ctx x).persistent b
Instances For
def
Lean.IR.ExplicitRC.updateVarInfoWithParams
(ctx : Lean.IR.ExplicitRC.Context)
(ps : Array Lean.IR.Param)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Lean.IR.ExplicitRC.visitDecl
(env : Lean.Environment)
(decls : Array Lean.IR.Decl)
(d : Lean.IR.Decl)
:
Equations
- One or more equations did not get rendered due to their size.
- Lean.IR.ExplicitRC.visitDecl env decls d = d