Documentation

Lean.Compiler.LCNF.PassManager

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
  • name : Name

    The name of the Pass

  • The actual pass function, operating on the Decls.

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.

    • 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.

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