Commit graph

5014 commits

Author SHA1 Message Date
Leonardo de Moura
dc4ba760b8 fix(library/compiler/csimp): bug at float_cases_on 2018-09-25 19:34:29 -07:00
Leonardo de Moura
06e78b0e48 feat(library/compiler/csimp): create join points for float_cases_on 2018-09-25 19:34:29 -07:00
Sebastian Ullrich
95c469f8c4 fix(library/module_mgr,shell/lean): catch all errors from parsing 2018-09-25 12:14:03 -07:00
Leonardo de Moura
1f42b5bce9 feat(library/compiler/preprocess): missing trace option 2018-09-24 18:47:10 -07:00
Leonardo de Moura
c827892715 fix(library/compiler/cse): adjust to new LCNF 2018-09-24 18:47:10 -07:00
Leonardo de Moura
017261960c feat(library/compiler/csimp): add float_cases_on 2018-09-24 18:10:26 -07:00
Leonardo de Moura
ee43d4a20a feat(library/compiler/util): add replace_fvar_with 2018-09-24 18:10:26 -07:00
Leonardo de Moura
1b1d4c202d chore(library/compiler/csimp): add auxiliary mk_let method 2018-09-24 18:10:26 -07:00
Leonardo de Moura
ac90dba90f chore(library/compiler/csimp): disable bogus warning 2018-09-24 18:10:26 -07:00
Leonardo de Moura
07f96e8e09 feat(library/compiler): move let-decls that are used in only one minor to it 2018-09-23 19:27:06 -07:00
Leonardo de Moura
b9e2b4ad9f chore(library/compiler/cse): add "todo" 2018-09-23 19:27:06 -07:00
Leonardo de Moura
783b063535 chore(library/compiler/csimp): check arity
It is still commented since we need to handle `cases_on` first.
2018-09-23 19:27:06 -07:00
Leonardo de Moura
6e9e9c0012 feat(library/compiler): eta expand definitions 2018-09-23 19:27:06 -07:00
Leonardo de Moura
a31f12d8cd chore(library/init/core): revert ite+thunks modification
We don't need it since we marked `ite` as `[macro_inline]`
2018-09-23 19:27:06 -07:00
Leonardo de Moura
dd046b0e0a feat(library/init/core): mark id_rhs as [macro_inline] 2018-09-23 19:27:06 -07:00
Leonardo de Moura
c75db3bfc6 feat(library/compiler): unfold [macro_definition] before LCNF/ANF conversion 2018-09-23 19:27:06 -07:00
Leonardo de Moura
3473822c01 feat(library/compiler/inliner): add [macro_inline] attribute
For the old compiler stack, it behaves like `[inline]`.
For the new compiler stack, it instructs the compiler to inline
definitions before LCNF/ANF conversion.
2018-09-23 19:27:06 -07:00
Leonardo de Moura
57af24ee82 fix(library/compiler/csimp): bugs when using beta_reduce, and is_let_val propagation 2018-09-22 05:08:06 -07:00
Leonardo de Moura
4a7cc94944 feat(library/compiler/csimp): remove unnecessary trivial let-decls 2018-09-21 15:10:07 -07:00
Leonardo de Moura
b6169d7077 feat(library/compiler/csimp): preparing for new design 2018-09-21 14:10:56 -07:00
Leonardo de Moura
7cfd3b4129 feat(library/compiler/lcnf): modify lcnf format
We should not require the body of a let-decl to be atomic.
2018-09-21 10:59:46 -07:00
Leonardo de Moura
097aa7ef14 chore(library/compiler): cleanup cce 2018-09-21 10:25:35 -07:00
Leonardo de Moura
ff2e28e557 feat(library/compiler): add cce: common case elimination 2018-09-20 21:38:57 -07:00
Leonardo de Moura
1534f17a89 feat(library/compiler/lcnf): add better support for complete-transition used in the equation compiler and x@ patterns 2018-09-20 21:38:57 -07:00
Leonardo de Moura
f556e0947b fix(library/compiler/lcnf): bug, minor premise must have a lambda for each field in LCNF 2018-09-20 21:38:57 -07:00
Sebastian Ullrich
896b45239e feat(library/module_mgr,shell/lean): abort on import with errors 2018-09-20 15:46:47 -07:00
Leonardo de Moura
79c8e37cdf fix(library/compiler/csimp): incorrect assertions 2018-09-20 15:33:57 -07:00
Leonardo de Moura
e55b65ad78 chore(library/compiler/lcnf): make it clear when we create the let-expr 2018-09-20 15:33:57 -07:00
Sebastian Ullrich
15d11cc483 feat(library/module_mgr): profile .olean serialization/deserialization 2018-09-20 13:54:17 -07:00
Leonardo de Moura
1efdd1a65d feat(library/compiler/csimp): improve inliner 2018-09-20 12:05:49 -07:00
Leonardo de Moura
8d4f7bb8ec feat(util/timeit): add simpler type for threshold 2018-09-20 12:05:48 -07:00
Leonardo de Moura
0ff1f16bf0 feat(frontends/lean/pp): add pp.compact_let option
It helps to debug the new compiler stack.
2018-09-20 12:05:48 -07:00
Leonardo de Moura
38c9a2d28a feat(library/compiler/csimp): do not invoke reduce_cases_cases until we implement it 2018-09-20 08:39:25 -07:00
Leonardo de Moura
d3f4b8198b fix(library/compiler/csimp): disable problematic optimization 2018-09-20 08:39:25 -07:00
Leonardo de Moura
94f01c90fd feat(library/compiler/csimp): process lambda's lazily and combine dead-let-elimination 2018-09-20 08:39:25 -07:00
Sebastian Ullrich
fc97c63c72 fix(library/derive_attribute): vm_compile synthesized instances 2018-09-19 12:36:34 -07:00
Leonardo de Moura
8a8f1a6821 fix(library/compiler/util): has_inline_attribute 2018-09-19 09:33:54 -07:00
Leonardo de Moura
079980f0d6 fix(library/compiler/csimp): fix inlining 2018-09-18 22:03:31 -07:00
Leonardo de Moura
17a779c36f fix(library/compiler/csimp): inlining at projections 2018-09-18 21:09:49 -07:00
Leonardo de Moura
d0e804b780 feat(library/compiler): add support for inlining to new compiler stack
We also delay the simplification of lambdas in the right hand side of let-declarations.
2018-09-18 17:24:25 -07:00
Leonardo de Moura
39d9a709d5 feat(library/compiler): improve simplification 2018-09-18 14:51:58 -07:00
Leonardo de Moura
4f53e505b0 fix(library/compiler): we need to unfold auxiliary nested _match applications eagerly 2018-09-18 14:17:37 -07:00
Leonardo de Moura
8e1a6dc81b chore(library/compiler/preprocess): add trace.compiler.state1 option 2018-09-18 08:23:53 -07:00
Leonardo de Moura
ff725b8329 feat(library/compiler): simplify cheap beta reduction
The LCNF format contained may `let`-declarations of the form
```
x : (fun y, c) a := t
```
where `c` does not depend on `y`.
We reduce them to
```
x : c := t
```
2018-09-17 19:58:54 -07:00
Leonardo de Moura
c23411e1ca chore(library/compiler/preprocess): display function name 2018-09-17 19:58:54 -07:00
Leonardo de Moura
5d455bf10a chore(library/compiler): skip type checking for _cstage1 declarations
This is a temporary hack for speeding up build time.
2018-09-17 14:45:04 -07:00
Leonardo de Moura
b07c718425 refactor(library/init/core): change ite signature 2018-09-17 14:27:28 -07:00
Leonardo de Moura
faf4561723 feat(library/compiler/lcnf): expand nested f._match_<idx> applications at to_lcnf 2018-09-17 13:41:03 -07:00
Leonardo de Moura
f9fb1fec88 fix(library/compiler/csimp): bug at distrib_app_cases
The result could contain type errors.
2018-09-17 13:31:50 -07:00
Leonardo de Moura
ca176259f4 feat(library/compiler): treat f._meta_rec applications as f applications in the new compiler stack 2018-09-17 09:56:06 -07:00