44 lines
1.2 KiB
Text
44 lines
1.2 KiB
Text
/-
|
|
Copyright (c) 2019 Microsoft Corporation. All rights reserved.
|
|
Released under Apache 2.0 license as described in the file LICENSE.
|
|
Authors: Leonardo de Moura
|
|
-/
|
|
module
|
|
|
|
prelude
|
|
public import Lean.Compiler.IR.Basic
|
|
public import Lean.Compiler.IR.Format
|
|
public import Lean.Compiler.IR.CompilerM
|
|
public import Lean.Compiler.IR.NormIds
|
|
public import Lean.Compiler.IR.Checker
|
|
public import Lean.Compiler.IR.UnboxResult
|
|
public import Lean.Compiler.IR.Sorry
|
|
public import Lean.Compiler.IR.ToIR
|
|
public import Lean.Compiler.IR.ToIRType
|
|
public import Lean.Compiler.IR.Meta
|
|
|
|
-- The following imports are not required by the compiler. They are here to ensure that there
|
|
-- are no orphaned modules.
|
|
public import Lean.Compiler.IR.LLVMBindings
|
|
public import Lean.Compiler.IR.EmitLLVM
|
|
|
|
public section
|
|
|
|
namespace Lean.IR
|
|
|
|
def compile (decls : Array Decl) : CompilerM (Array Decl) := do
|
|
logDecls `init decls
|
|
checkDecls decls
|
|
let mut decls := decls
|
|
decls ← updateSorryDep decls
|
|
logDecls `result decls
|
|
addDecls decls
|
|
inferMeta decls
|
|
return decls
|
|
|
|
builtin_initialize
|
|
registerTraceClass `compiler.ir
|
|
registerTraceClass `compiler.ir.init (inherited := true)
|
|
registerTraceClass `compiler.ir.result (inherited := true)
|
|
|
|
end Lean.IR
|