Equations
- Lean.Compiler.LCNF.Phase.base.toNat = 0
- Lean.Compiler.LCNF.Phase.mono.toNat = 1
- Lean.Compiler.LCNF.Phase.impure.toNat = 2
Instances For
Equations
- Lean.Compiler.LCNF.instLTPhase = { lt := fun (l r : Lean.Compiler.LCNF.Phase) => l.toNat < r.toNat }
Equations
- Lean.Compiler.LCNF.instLEPhase = { le := fun (l r : Lean.Compiler.LCNF.Phase) => l.toNat ≤ r.toNat }
Equations
- Lean.Compiler.LCNF.instDecidableLtPhase = p1.toNat.decLt p2.toNat
Equations
- Lean.Compiler.LCNF.instDecidableLePhase = p1.toNat.decLe p2.toNat
A single compiler Pass
, consisting of the actual pass function operating
on the Decl
s as well as meta information.
- occurrence : Nat
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.
- phase : Phase
Which phase this
Pass
is supposed to run in - phaseOut : Phase
Resulting phase.
- phaseInv : self.phaseOut ≥ self.phase
- name : Name
The name of the
Pass
The actual pass function, operating on the
Decl
s.
Instances For
Equations
- One or more equations did not get rendered due to their size.
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 } }
Equations
- Lean.Compiler.LCNF.instInhabitedPassManager = { default := { passes := default } }
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.
Instances For
Equations
- Lean.Compiler.LCNF.PassInstaller.installAtEnd p = { install := fun (passes : Array Lean.Compiler.LCNF.Pass) => pure (passes.push p) }
Instances For
Equations
- Lean.Compiler.LCNF.PassInstaller.append passesNew = { install := fun (passes : Array Lean.Compiler.LCNF.Pass) => pure (passes ++ passesNew) }
Instances For
def
Lean.Compiler.LCNF.PassInstaller.withEachOccurrence
(targetName : Name)
(f : Nat → PassInstaller)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Lean.Compiler.LCNF.PassInstaller.installAfter
(targetName : Name)
(p : Pass → Pass)
(occurrence : Nat := 0)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Lean.Compiler.LCNF.PassInstaller.installBefore
(targetName : Name)
(p : Pass → Pass)
(occurrence : Nat := 0)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Lean.Compiler.LCNF.PassInstaller.installBeforeEachOccurrence
(targetName : Name)
(p : Pass → Pass)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Lean.Compiler.LCNF.PassInstaller.replacePass
(targetName : Name)
(p : Pass → Pass)
(occurrence : Nat := 0)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Lean.Compiler.LCNF.PassInstaller.run manager installer = do let __do_lift ← installer.install manager.passes pure { passes := __do_lift }
Instances For
Equations
- One or more equations did not get rendered due to their size.