Commit graph

245 commits

Author SHA1 Message Date
Leonardo de Moura
1d936e2d6b feat: sanity checking at attachJp 2022-08-17 09:47:59 -07:00
Leonardo de Moura
f0370749f9 feat: check whether there are jumps to out of scope join points
In a local function declaration, we can only jump to local join
points.
2022-08-17 09:38:19 -07:00
Leonardo de Moura
320a5a708c fix: avoid out-of-scope jumps at CSE 2022-08-17 09:06:00 -07:00
Leonardo de Moura
0d52a3f92b fix: add attachJp
Auxiliary function for attaching jump to a join point to an existing
let-code block.
2022-08-17 07:32:11 -07:00
Leonardo de Moura
600740da85 feat: inlining local function declarations 2022-08-16 18:23:49 -07:00
Leonardo de Moura
aac711cf92 feat: inlining statistics 2022-08-16 18:23:49 -07:00
Leonardo de Moura
2f57a0e6d5 refactor: cleaup compiler simplifier 2022-08-16 18:23:49 -07:00
Leonardo de Moura
9f46996db7 feat: inliner 2022-08-16 18:23:49 -07:00
Leonardo de Moura
0e3e1353e2 feat: new Compiler trace classes 2022-08-16 18:23:49 -07:00
Leonardo de Moura
e8fdfe4193 feat: eliminate trivial let-declarations 2022-08-16 18:23:49 -07:00
Leonardo de Moura
117db0da01 feat: add Compiler/Simp.lean 2022-08-16 18:23:49 -07:00
Leonardo de Moura
daa833d5c9 feat: preserve internal let-declaration binder names 2022-08-16 18:23:49 -07:00
Leonardo de Moura
e876d81692 fix: missing withRoot true 2022-08-16 18:23:49 -07:00
Leonardo de Moura
37ba0df584 feat: do not generate code for matcher auxiliary declarations
We are macro inlining them.
2022-08-15 20:10:33 -07:00
Leonardo de Moura
7979d03386 fix: bug at CSE.lean 2022-08-15 20:04:29 -07:00
Leonardo de Moura
327442a85c feat: add mkFreshBinderName and use it to normalize internal names 2022-08-15 19:47:37 -07:00
Leonardo de Moura
caf2bb0797 feat: inline auxiliary matcher applications 2022-08-15 19:47:05 -07:00
Leonardo de Moura
7ca3535820 refactor: add mkJump 2022-08-15 18:39:27 -07:00
Leonardo de Moura
d0203ca1dc feat: add Decl.ensureUniqueLetVarNames 2022-08-15 13:03:07 -07:00
Leonardo de Moura
142b9bec36 feat: add ensureUniqueLetVarNames 2022-08-15 12:59:36 -07:00
Leonardo de Moura
e931c6b5b5 fix: bug at toLCNF 2022-08-15 12:59:36 -07:00
Leonardo de Moura
4f79d2caa0 feat: improve toLCNF
Preserve type formers only if they are application arguments
2022-08-15 09:53:48 -07:00
Leonardo de Moura
126ad49401 feat: add stage1 extension for storing LCNF declarations 2022-08-14 10:59:36 -07:00
Henrik Böving
afbe296edb doc: doc-strings for CompilerM 2022-08-14 09:33:58 -07:00
Henrik Böving
8e29fa88eb fix: address code review for jp checker 2022-08-14 09:33:58 -07:00
Henrik Böving
ff9c9032b4 feat: join point validator 2022-08-14 09:33:58 -07:00
Mario Carneiro
b3ba6d4bf7 fix: use resolveGlobalConstNoOverloadWithInfo more 2022-08-13 18:20:55 -07:00
Henrik Böving
0d27c5c5cd doc: doc-strings for the entrypoints of the compiler 2022-08-13 17:11:07 -07:00
Leonardo de Moura
745f77c657 chore: let x := lcUnreachable .. should not occur in LCNF 2022-08-13 16:24:44 -07:00
Leonardo de Moura
6c5638d85b fix: bug at toLCNF 2022-08-13 15:22:22 -07:00
Leonardo de Moura
996968c54c chore: display LCNF declaration type at Compiler.step 2022-08-13 11:35:46 -07:00
Leonardo de Moura
d2c0aa4d6d chore: remove dead code 2022-08-13 11:24:51 -07:00
Leonardo de Moura
9b1db198af fix: bug at toLCNF 2022-08-13 10:30:12 -07:00
Leonardo de Moura
212456720c fix: bug at TerminalCases
`Context.jp?` is not a continuation for the local lambda.
2022-08-13 10:15:43 -07:00
Leonardo de Moura
d439160f31 fix: missing cases at compatibleTypes 2022-08-13 10:03:14 -07:00
Leonardo de Moura
0a423b3699 fix: ensure the the terminal expression in let-declaration block is not a lambda 2022-08-13 09:47:59 -07:00
Leonardo de Moura
a17d00867f feat: common subexpression elimination 2022-08-12 16:52:18 -07:00
Leonardo de Moura
dc69a20893 feat: add mapValue 2022-08-12 16:38:20 -07:00
Leonardo de Moura
0b585d6f3d fix: bug at Compiler/Check.lean 2022-08-12 13:59:56 -07:00
Leonardo de Moura
37057fdd31 feat: eagerly inline simple join points 2022-08-12 11:15:12 -07:00
Leonardo de Moura
84d9c6ed8b fix: bug at TerminalCases.lean 2022-08-12 10:59:15 -07:00
Leonardo de Moura
cfbefd993b fix: lambdaBoundedTelescope at Compiler/Check.lean 2022-08-12 10:20:54 -07:00
Leonardo de Moura
104196e599 feat: add profileitM to compiler new entry point 2022-08-11 19:04:33 -07:00
Leonardo de Moura
e04453a89e chore: improve getMaxLetVarIdx 2022-08-11 19:01:41 -07:00
Leonardo de Moura
6d5272a404 fix: new compiler type checker 2022-08-11 18:57:06 -07:00
Leonardo de Moura
2eab711308 chore: add trace.Compiler.step 2022-08-11 18:40:13 -07:00
Leonardo de Moura
77735e62f5 chore: remove leftovers 2022-08-11 18:40:13 -07:00
Leonardo de Moura
623e0e9af9 feat: TerminalCases for new LCNF 2022-08-11 18:40:13 -07:00
Leonardo de Moura
073e72181d fix: bug at Compiler.inferType
Check whether declaration type mismatch at `Compiler.Decl.check`
2022-08-11 18:40:13 -07:00
Leonardo de Moura
5dbb907b56 feat: new toLCNF 2022-08-11 18:40:13 -07:00