Which occurrence of the pass in the pipeline this is. Some passes, like simp, can occur multiple times in the pipeline. For most passes this value does not matter.
occurrence : NatWhich phase this
Pass
is supposed to run inphase : Lean.Compiler.LCNF.PhaseThe name of the
Pass
name : Lean.NameThe actual pass function, operating on the
Decl
s.
A single compiler Pass
, consisting of the actual pass function operating
on the Decl
s as well as meta information.
Instances For
Equations
- Lean.Compiler.LCNF.instInhabitedPass = { default := { occurrence := default, phase := default, name := default, run := default } }
When the installer is run this function will receive a list of all current
Pass
es and return a new one, this can modify the list (and thePass
es contained within) in any way it wants.install : Array Lean.Compiler.LCNF.Pass → Lean.CoreM (Array Lean.Compiler.LCNF.Pass)
Can be used to install, remove, replace etc. passes by tagging a declaration
of type PassInstaller
with the cpass
attribute.
Instances For
Equations
- Lean.Compiler.LCNF.instInhabitedPassInstaller = { default := { install := default } }
- passes : Array Lean.Compiler.LCNF.Pass
The PassManager
used to store all Pass
es that will be run within
pipeline.
Instances For
Equations
- Lean.Compiler.LCNF.instInhabitedPassManager = { default := { passes := default } }
Equations
- Lean.Compiler.LCNF.Phase.toNat _fun_discr = match _fun_discr with | Lean.Compiler.LCNF.Phase.base => 0 | Lean.Compiler.LCNF.Phase.mono => 1 | Lean.Compiler.LCNF.Phase.impure => 2
Equations
- Lean.Compiler.LCNF.Phase.instLTPhase = { lt := fun l r => Lean.Compiler.LCNF.Phase.toNat l < Lean.Compiler.LCNF.Phase.toNat r }
Equations
- Lean.Compiler.LCNF.Phase.instLEPhase = { le := fun l r => Lean.Compiler.LCNF.Phase.toNat l ≤ Lean.Compiler.LCNF.Phase.toNat r }
Equations
- Lean.Compiler.LCNF.Phase.instDecidableLtPhaseInstLTPhase = Nat.decLt (Lean.Compiler.LCNF.Phase.toNat p1) (Lean.Compiler.LCNF.Phase.toNat p2)
Equations
- Lean.Compiler.LCNF.Phase.instDecidableLePhaseInstLEPhase = Nat.decLe (Lean.Compiler.LCNF.Phase.toNat p1) (Lean.Compiler.LCNF.Phase.toNat p2)
Equations
- One or more equations did not get rendered due to their size.
Equations
- Lean.Compiler.LCNF.Pass.mkPerDeclaration name run phase occurrence = { occurrence := occurrence, phase := phase, name := name, run := fun xs => Array.mapM run xs }
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- Lean.Compiler.LCNF.PassInstaller.installAtEnd p = { install := fun passes => pure (Array.push passes p) }
Equations
- Lean.Compiler.LCNF.PassInstaller.append passesNew = { install := fun passes => pure (passes ++ passesNew) }
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- Lean.Compiler.LCNF.PassInstaller.run manager installer = do let a ← Lean.Compiler.LCNF.PassInstaller.install installer manager.passes pure { passes := a }
Equations
- One or more equations did not get rendered due to their size.