instance
Lean.Compiler.LCNF.instDecidableLtPhaseInstLTPhase
{p1 : Lean.Compiler.LCNF.Phase}
{p2 : Lean.Compiler.LCNF.Phase}
:
instance
Lean.Compiler.LCNF.instDecidableLePhaseInstLEPhase
{p1 : Lean.Compiler.LCNF.Phase}
{p2 : Lean.Compiler.LCNF.Phase}
:
- 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 : Lean.Compiler.LCNF.Phase
Which phase this
Pass
is supposed to run in - phaseOut : Lean.Compiler.LCNF.Phase
Resulting phase.
- phaseInv : s.phaseOut ≥ s.phase
- name : Lake.Name
The name of the
Pass
The 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
- 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
- passes : Array Lean.Compiler.LCNF.Pass
The PassManager
used to store all Pass
es that will be run within
pipeline.
Instances For
def
Lean.Compiler.LCNF.Pass.mkPerDeclaration
(name : Lake.Name)
(run : Lean.Compiler.LCNF.Decl → Lean.Compiler.LCNF.CompilerM Lean.Compiler.LCNF.Decl)
(phase : Lean.Compiler.LCNF.Phase)
(occurrence : optParam Nat 0)
:
Instances For
Instances For
def
Lean.Compiler.LCNF.PassManager.findHighestOccurrence
(targetName : Lake.Name)
(passes : Array Lean.Compiler.LCNF.Pass)
:
Instances For
Instances For
def
Lean.Compiler.LCNF.PassInstaller.withEachOccurrence
(targetName : Lake.Name)
(f : Nat → Lean.Compiler.LCNF.PassInstaller)
:
Instances For
def
Lean.Compiler.LCNF.PassInstaller.installAfter
(targetName : Lake.Name)
(p : Lean.Compiler.LCNF.Pass → Lean.Compiler.LCNF.Pass)
(occurrence : optParam Nat 0)
:
Instances For
def
Lean.Compiler.LCNF.PassInstaller.installAfterEach
(targetName : Lake.Name)
(p : Lean.Compiler.LCNF.Pass → Lean.Compiler.LCNF.Pass)
:
Instances For
def
Lean.Compiler.LCNF.PassInstaller.installBefore
(targetName : Lake.Name)
(p : Lean.Compiler.LCNF.Pass → Lean.Compiler.LCNF.Pass)
(occurrence : optParam Nat 0)
:
Instances For
def
Lean.Compiler.LCNF.PassInstaller.installBeforeEachOccurrence
(targetName : Lake.Name)
(p : Lean.Compiler.LCNF.Pass → Lean.Compiler.LCNF.Pass)
:
Instances For
def
Lean.Compiler.LCNF.PassInstaller.replacePass
(targetName : Lake.Name)
(p : Lean.Compiler.LCNF.Pass → Lean.Compiler.LCNF.Pass)
(occurrence : optParam Nat 0)
:
Instances For
def
Lean.Compiler.LCNF.PassInstaller.replaceEachOccurrence
(targetName : Lake.Name)
(p : Lean.Compiler.LCNF.Pass → Lean.Compiler.LCNF.Pass)
:
Instances For
def
Lean.Compiler.LCNF.PassInstaller.run
(manager : Lean.Compiler.LCNF.PassManager)
(installer : Lean.Compiler.LCNF.PassInstaller)
:
Instances For
def
Lean.Compiler.LCNF.PassInstaller.runFromDecl
(manager : Lean.Compiler.LCNF.PassManager)
(declName : Lake.Name)
: