Leonardo de Moura
|
fde8d35bbb
|
refactor: declare passes when declaring transformations
|
2022-09-05 06:58:32 -07:00 |
|
Leonardo de Moura
|
1c41a750ed
|
feat: add ReduceJpArity compiler pass
|
2022-09-05 06:58:32 -07:00 |
|
Leonardo de Moura
|
e0197b4e09
|
feat: add bindCases
It is similar to `Code.bind` but has special support for `inlineMatcher`
|
2022-09-04 19:04:21 -07:00 |
|
Leonardo de Moura
|
d0600b3750
|
fix: incorrect binder name being used
cc @hargoniX
|
2022-09-04 16:56:42 -07:00 |
|
Leonardo de Moura
|
abd37d8fd1
|
feat: check binder names at LCNF/Check.lean
|
2022-09-04 16:55:42 -07:00 |
|
Leonardo de Moura
|
01ca711859
|
feat: add PullFunDecls.lean
|
2022-09-04 16:44:45 -07:00 |
|
Leonardo de Moura
|
df16c5a0e7
|
feat: add Code.collectUsed and FunDecl.collectUsed
|
2022-09-04 13:05:48 -07:00 |
|
Leonardo de Moura
|
b3c5184772
|
chore: remove dead code
|
2022-09-04 07:14:01 -07:00 |
|
Henrik Böving
|
32157f0e42
|
feat: Basic compiler testing framework
|
2022-09-03 19:55:53 -07:00 |
|
Leonardo de Moura
|
56ea3af6e2
|
doc: Compiler/LCNF/Simp.lean
|
2022-09-03 19:44:10 -07:00 |
|
Leonardo de Moura
|
9f44e9c858
|
feat: simplify nested cases on the same discriminant
|
2022-09-03 19:44:10 -07:00 |
|
Leonardo de Moura
|
5478485de1
|
feat: allow "small prefix" at cases on cases optimization
|
2022-09-03 08:21:11 -07:00 |
|
Leonardo de Moura
|
bc88b0307e
|
feat: cases on cases for new LCNF simplifier
|
2022-09-03 07:54:19 -07:00 |
|
Leonardo de Moura
|
196c9537f2
|
feat: eta reduction at toLCNF
|
2022-09-02 06:31:06 -07:00 |
|
Leonardo de Moura
|
d5dcd5e856
|
feat: eta-expand local function declarations that are not being inlined
|
2022-09-02 05:22:41 -07:00 |
|
Leonardo de Moura
|
e3a8574e15
|
perf: workaround for issue #316
|
2022-09-02 04:15:02 -07:00 |
|
Leonardo de Moura
|
dfdbec51ad
|
fix: typo
|
2022-09-02 03:41:49 -07:00 |
|
Leonardo de Moura
|
baf4f1c152
|
perf: simpValue? before inlineApp?
|
2022-09-02 03:20:59 -07:00 |
|
Leonardo de Moura
|
6297b2efe7
|
feat: do not eagerly simplify function declarations that will be inlined
|
2022-09-01 21:13:14 -07:00 |
|
Leonardo de Moura
|
21a7066d77
|
feat: inline type class projections
|
2022-09-01 20:52:08 -07:00 |
|
Leonardo de Moura
|
0ed46003c6
|
feat: add CodeDecl helper type
|
2022-09-01 20:52:08 -07:00 |
|
Leonardo de Moura
|
0b0bd968b0
|
feat: support for inlining join points
|
2022-09-01 20:52:08 -07:00 |
|
Leonardo de Moura
|
61edf19334
|
fix: allow LCNF discriminant to have any type
|
2022-09-01 20:52:08 -07:00 |
|
Leonardo de Moura
|
30c75b4b88
|
feat: add simpCasesOnCtor
|
2022-09-01 20:52:08 -07:00 |
|
Leonardo de Moura
|
255d34d2ac
|
feat: add simpValue? back
|
2022-09-01 20:52:08 -07:00 |
|
Leonardo de Moura
|
29eddad325
|
chore: only check if compiler.check is set to true
|
2022-09-01 07:18:47 -07:00 |
|
Leonardo de Moura
|
cedf9e980b
|
feat: check LCNF parameters
|
2022-09-01 07:17:53 -07:00 |
|
Leonardo de Moura
|
9874ef3c66
|
feat: check whether LetDecl and FunDecl match their values in the LCNF local context
|
2022-09-01 07:05:07 -07:00 |
|
Leonardo de Moura
|
c201133d4d
|
feat: LCNF local context dead variable checker
This commit also fixes a few local declaration leaks.
|
2022-08-31 21:07:21 -07:00 |
|
Leonardo de Moura
|
ddab48a154
|
fix: erase dead variables
|
2022-08-31 20:43:13 -07:00 |
|
Leonardo de Moura
|
d00627364c
|
feat: add simp compiler pass
|
2022-08-31 18:10:32 -07:00 |
|
Leonardo de Moura
|
ba0835e387
|
feat: refresh binder names during internalization
|
2022-08-31 18:10:32 -07:00 |
|
Leonardo de Moura
|
25447af13c
|
feat: new code inliner
|
2022-08-31 18:10:32 -07:00 |
|
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 |
|