Commit graph

342 commits

Author SHA1 Message Date
Henrik Böving
c1949e05e0 feat: migrate to new pass manager 2022-08-31 16:28:07 -07:00
Henrik Böving
fe63bd2e8e feat: basic pass manager 2022-08-31 16:28:07 -07:00
Leonardo de Moura
2fc38fb118 feat: instantiateTypeLevelParams and instantiateValueLevelParams for LCNF.Decl 2022-08-30 20:20:39 -07:00
Leonardo de Moura
c451bf0c91 feat: add simpFunDecl 2022-08-30 11:45:05 -07:00
Leonardo de Moura
ca80bc52dc feat: LCNF.simp .let case 2022-08-29 09:52:16 -07:00
Leonardo de Moura
7b161d33d1 refactor: add MonadFVarSubst class 2022-08-29 09:52:16 -07:00
Siddharth Bhat
a7b128fee1 doc: explanations for LCNF. 2022-08-29 07:17:25 -07:00
Leonardo de Moura
062d4728a1 feat: more LCNF update functions
and bug fixes at CSE
2022-08-28 19:00:49 -07:00
Leonardo de Moura
5552d610e8 chore: missing updateCases! 2022-08-28 16:30:54 -07:00
Leonardo de Moura
e80028b7d1 feat: add pure field to LetDecl, add helper functions for updating LCNF code
The update functions try to minimize the amount of memory allocation
2022-08-28 08:55:35 -07:00
Leonardo de Moura
d5fa178fc3 feat: modify FVarSubst used in the new code generator 2022-08-28 08:55:35 -07:00
Leonardo de Moura
6a9f8ad919 fix: Compiler/LCNF/ElimDead.lean 2022-08-28 08:55:35 -07:00
Leonardo de Moura
cd0dd4cc2f feat: start simp for new LCNF format 2022-08-27 19:59:31 -07:00
Leonardo de Moura
9446ae3056 feat: add cleanup function for CompilerM 2022-08-27 18:35:30 -07:00
Leonardo de Moura
30d8ae70f7 chore: remove workarounds 2022-08-27 10:56:15 -07:00
Leonardo de Moura
0f40dfc063 feat: add FunDecl.etaExpand 2022-08-27 10:41:54 -07:00
Leonardo de Moura
11c8253f6c feat: more update functions for LCNF 2022-08-27 10:41:54 -07:00
Leonardo de Moura
969dce70db perf: improve FVarSubst apply functions in the new compiler stack 2022-08-26 20:10:36 -07:00
Sebastian Ullrich
e81ba951c6 fix: Core.transform API and uses 2022-08-25 19:07:42 -07:00
Leonardo de Moura
65f9344f01 feat: check whether join points are fully applied at Check.lean 2022-08-25 18:17:54 -07:00
Leonardo de Moura
14944aeb3c chore: print decl size at trace message 2022-08-25 18:11:49 -07:00
Leonardo de Moura
4c9c2d2bf7 feat: new CSE.lean 2022-08-25 18:08:22 -07:00
Leonardo de Moura
98575b4250 feat: new PullLetDecls.lean 2022-08-25 13:39:15 -07:00
Leonardo de Moura
3b4862e1a7 feat: add LCNF/DependsOn.lean 2022-08-24 21:56:10 -07:00
Leonardo de Moura
4e8b4e96e9 feat: simplify LCtx 2022-08-24 14:16:26 -07:00
Leonardo de Moura
9b28878615 fix: AltCore.inferType 2022-08-24 14:05:25 -07:00
Leonardo de Moura
8102e1e31b fix: jp case at check 2022-08-24 11:50:00 -07:00
Leonardo de Moura
3a2758a59b refactor: new LCNF frontend 2022-08-24 11:40:37 -07:00
Leonardo de Moura
cabcadf9cc feat: add ppDecl 2022-08-24 08:41:45 -07:00
Leonardo de Moura
f2f3a72196 feat: add ToDecl.lean 2022-08-24 08:31:38 -07:00
Leonardo de Moura
6e068bebd1 feat: LCNF pretty printer 2022-08-24 08:16:00 -07:00
Leonardo de Moura
54e4cfa8e2 chore: doc string 2022-08-24 06:55:51 -07:00
Leonardo de Moura
083523ee9c feat: att new LCNF/toLCNF.lean 2022-08-23 20:21:06 -07:00
Leonardo de Moura
3e2f8c61ec feat: helper LCNF functions 2022-08-23 19:37:33 -07:00
Leonardo de Moura
cd49e564cf chore: add LCNF/Util.lean 2022-08-23 19:35:11 -07:00
Leonardo de Moura
f5415b2f81 feat: add Decl.check 2022-08-23 13:11:42 -07:00
Leonardo de Moura
bce7eadfbc feat: add LCNF/Check.lean 2022-08-23 08:50:59 -07:00
Leonardo de Moura
766afdd0bc feat: store FunDecls at LCNF local context 2022-08-22 21:46:37 -07:00
Leonardo de Moura
82acc2b39c feat: improve Code.bind
Add `joinTypes`.
2022-08-22 21:07:36 -07:00
Leonardo de Moura
1f57155eb9 feat: add Code.bind concatenating LCNF code blocks 2022-08-22 20:17:52 -07:00
Leonardo de Moura
a2fabc6d49 feat: inferType for new LCNF 2022-08-22 19:51:17 -07:00
Leonardo de Moura
bd1186536f feat: LCNF to Expr translator 2022-08-22 17:59:27 -07:00
Leonardo de Moura
b2c2d49bae feat: new CompilerM for LCNF 2022-08-22 17:52:04 -07:00
Leonardo de Moura
92d157f705 feat: local context for LCNF 2022-08-22 16:57:12 -07:00
Leonardo de Moura
e1ae11a708 refactor: copy LCNFTypes.lean to LCNF/Types.lean
The old file is going to be deleted after we complete the refactor.
2022-08-22 16:56:15 -07:00
Leonardo de Moura
9ed83e23ae feat: dead code eliminator for the new LCNF structure 2022-08-22 16:30:37 -07:00
Leonardo de Moura
18f3af302b feat: new datastructure for representing LCNF code 2022-08-22 16:25:11 -07:00
Leonardo de Moura
f8c7de5a64 feat: add new performance counters 2022-08-21 19:48:30 -07:00
Leonardo de Moura
bc5b6272d8 fix: use _mustInline in lambdas only 2022-08-21 16:41:18 -07:00
Leonardo de Moura
d11947abc0 perf: optimize mkLetUsingScope
Avoid overhead of `hasLooseBVars` at `LocalContext.mkBinding`
2022-08-21 16:07:29 -07:00