Documentation

Lean.Compiler.IR.EmitC

Instances For
    @[reducible, inline]
    abbrev Lean.IR.EmitC.M (α : Type) :
    Instances For
      @[inline]
      Instances For
        @[inline]
        Instances For
          @[inline]
          Instances For
            Instances For
              @[inline]
              def Lean.IR.EmitC.emit {α : Type} [ToString α] (a : α) :
              Instances For
                @[inline]
                def Lean.IR.EmitC.emitLn {α : Type} [ToString α] (a : α) :
                Instances For
                  def Lean.IR.EmitC.emitLns {α : Type} [ToString α] (as : List α) :
                  Instances For
                    Instances For
                      Instances For
                        Instances For
                          Instances For
                            Instances For
                              Instances For
                                • auxCounter : Nat
                                Instances For
                                  @[reducible, inline]
                                  Instances For
                                    def Lean.IR.EmitC.emitGroundDecl (decl : Decl) (cppBaseName : String) :
                                    Instances For
                                      Instances For
                                        def Lean.IR.EmitC.emitFnClosedDecl (decl : Decl) (cppBaseName : String) :
                                        Instances For
                                          def Lean.IR.EmitC.emitFnDeclAux (decl : Decl) (cppBaseName : String) (isExternal : Bool) :
                                          Instances For
                                            def Lean.IR.EmitC.emitFnDecl (decl : Decl) (isExternal : Bool) :
                                            Instances For
                                              def Lean.IR.EmitC.emitExternDeclAux (decl : Decl) (cNameStr : String) :
                                              Instances For
                                                Instances For
                                                  Instances For
                                                    def Lean.IR.EmitC.emitTag (x : VarId) (xType : IRType) :
                                                    Instances For
                                                      def Lean.IR.EmitC.emitInc (x : VarId) (n : Nat) (checkRef : Bool) :
                                                      Instances For
                                                        def Lean.IR.EmitC.emitDec (x : VarId) (n : Nat) (checkRef : Bool) :
                                                        Instances For
                                                          Instances For
                                                            Instances For
                                                              def Lean.IR.EmitC.emitSet (x : VarId) (i : Nat) (y : Arg) :
                                                              Instances For
                                                                Instances For
                                                                  def Lean.IR.EmitC.emitUSet (x : VarId) (n : Nat) (y : VarId) :
                                                                  Instances For
                                                                    def Lean.IR.EmitC.emitSSet (x : VarId) (n offset : Nat) (y : VarId) (t : IRType) :
                                                                    Instances For
                                                                      Instances For
                                                                        Instances For
                                                                          Instances For
                                                                            Instances For
                                                                              Instances For
                                                                                Instances For
                                                                                  def Lean.IR.EmitC.emitReset (z : VarId) (n : Nat) (x : VarId) :
                                                                                  Instances For
                                                                                    def Lean.IR.EmitC.emitReuse (z x : VarId) (c : CtorInfo) (updtHeader : Bool) (ys : Array Arg) :
                                                                                    Instances For
                                                                                      def Lean.IR.EmitC.emitProj (z : VarId) (i : Nat) (x : VarId) :
                                                                                      Instances For
                                                                                        def Lean.IR.EmitC.emitUProj (z : VarId) (i : Nat) (x : VarId) :
                                                                                        Instances For
                                                                                          def Lean.IR.EmitC.emitSProj (z : VarId) (t : IRType) (n offset : Nat) (x : VarId) :
                                                                                          Instances For
                                                                                            Instances For
                                                                                              def Lean.IR.EmitC.emitFullApp (z : VarId) (t : IRType) (f : FunId) (ys : Array Arg) :
                                                                                              Instances For
                                                                                                Instances For
                                                                                                  Instances For
                                                                                                    Instances For
                                                                                                      def Lean.IR.EmitC.emitBox (z x : VarId) (xType : IRType) :
                                                                                                      Instances For
                                                                                                        Instances For
                                                                                                          Instances For
                                                                                                            Instances For
                                                                                                              Instances For
                                                                                                                Instances For
                                                                                                                  Instances For
                                                                                                                    Instances For

                                                                                                                      Given [p_0, ..., p_{n-1}], [y_0, ..., y_{n-1}], representing the assignments

                                                                                                                      p_0 := y_0,
                                                                                                                      ...
                                                                                                                      p_{n-1} := y_{n-1}
                                                                                                                      

                                                                                                                      Return true iff we have (i, j) where j > i, and y_j == p_i. That is, we have

                                                                                                                            p_i := y_i,
                                                                                                                            ...
                                                                                                                            p_j := p_i, -- p_i was overwritten above
                                                                                                                      
                                                                                                                      Instances For
                                                                                                                        partial def Lean.IR.EmitC.emitIf (x : VarId) (xType : IRType) (tag : Nat) (t e : FnBody) :
                                                                                                                        partial def Lean.IR.EmitC.emitCase (x : VarId) (xType : IRType) (alts : Array Alt) :
                                                                                                                        Instances For
                                                                                                                          Instances For
                                                                                                                            Instances For
                                                                                                                              Instances For
                                                                                                                                Instances For