Documentation

Lean.Compiler.LCNF.PassManager

@[instance_reducible]
Equations
  • One or more equations did not get rendered due to their size.
def Lean.Compiler.LCNF.Phase.withPurityCheck {α : Sort u_1} [Inhabited α] (pp : Phase) (ip : Purity) (x : pp.toPurity = ipα) :
α
Equations
  • One or more equations did not get rendered due to their size.
Instances For
    @[instance_reducible]
    Equations

    A single compiler Pass, consisting of the actual pass function operating on the Decls 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
    • shouldAlwaysRunCheck : Bool

      Whether IR validation checks should always run after this pass, regardless of configuration options.

    • name : Name

      The name of the Pass

    • The actual pass function, operating on the Decls.

    Instances For
      @[instance_reducible]
      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.

      • phase : Phase

        Affected phase.

      • install : Array PassCoreM (Array Pass)

        When the installer is run this function will receive a list of all current Passes and return a new one, this can modify the list (and the Passes contained within) in any way it wants.

      Instances For

        The PassManager used to store all Passes that will be run within pipeline.

        • basePasses : Array Pass

          Passes that happen during the LCNF base phase

        • monoPasses : Array Pass

          Passes that happen during the LCNF mono phase before lambda lifting

        • monoPassesNoLambda : Array Pass

          Passes that happen during the LCNF mono phase after lambda lifting. Note that lifted lambdas will have been lifted out of the SCC they originated from if possible.

        • impurePasses : Array Pass

          Passes that happen during the LCNF impure phase.

        Instances For
          Equations
          Instances For
            def Lean.Compiler.LCNF.Pass.mkPerDeclaration (name : Name) (phase : Phase) (run : Decl phase.toPurityCompilerM (Decl phase.toPurity)) (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
                • One or more equations did not get rendered due to their size.
                Instances For
                  Equations
                  Instances For
                    Equations
                    Instances For
                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For
                        def Lean.Compiler.LCNF.PassInstaller.installAfter (phase : Phase) (targetName : Name) (p : PassPass) (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 (phase : Phase) (targetName : Name) (p : PassPass) (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.replacePass (phase : Phase) (targetName : Name) (p : PassPass) (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
                                    • 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