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
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
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
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
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
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
Leonardo de Moura
3ebf1db2dc
feat(library/compiler): treat f._meta_rec applications as f applications
2018-09-17 09:48:14 -07:00
Leonardo de Moura
b1e80f8f4d
chore(library/compiler/cse): fix style
2018-09-17 09:47:58 -07:00
Leonardo de Moura
2abe11ce63
chore(library): _meta_aux ==> _meta_rec
2018-09-17 09:08:12 -07:00
Leonardo de Moura
33821f399c
chore(library/compiler): lc_util.* ==> util.*
2018-09-17 08:50:50 -07:00
Leonardo de Moura
81067d355d
chore(library/compiler): util.* ==> old_util.*
2018-09-17 08:44:45 -07:00
Leonardo de Moura
499ab0baa3
feat(library/compiler/preprocess): save declarations after csimp
...
We inline functions using these auxiliary declarations.
2018-09-16 14:07:42 -07:00
Leonardo de Moura
d378e95467
feat(library/compiler/csimp): eliminate cases over structures
2018-09-15 16:12:11 -07:00
Leonardo de Moura
512c7b6ab6
fix(library/compiler/old_cse): linker issue with clang on OSX
2018-09-14 17:58:16 -07:00
Leonardo de Moura
c60be8c6e3
fix(library/compiler/csimp): debug build
2018-09-14 17:55:45 -07:00
Leonardo de Moura
52d1abf0bc
feat(library/compiler): add cse to new compiler stack
2018-09-14 17:48:18 -07:00
Leonardo de Moura
ef21f069bd
refactor(library/compiler): add is_cases_on_app helper function
2018-09-14 17:33:03 -07:00
Leonardo de Moura
8571430a34
chore(library/compiler): cse ==> old_cse
2018-09-14 16:58:37 -07:00
Leonardo de Moura
9e265f8c7f
chore(library/compiler/csimp): remove unused var
2018-09-14 16:46:25 -07:00
Leonardo de Moura
242ab16d1c
feat(library/compiler/csimp): simplify cases minor premises
2018-09-14 16:40:22 -07:00
Leonardo de Moura
8380035a6c
fix(library/compiler/csimp): bug at find
2018-09-14 16:40:22 -07:00
Leonardo de Moura
768a45b7f9
feat(library/compiler/csimp): avoid unnecessary let-decls
2018-09-14 16:40:22 -07:00
Leonardo de Moura
8840f340aa
feat(library/compiler/csimp): add reduction for application over cast
2018-09-14 16:40:22 -07:00
Leonardo de Moura
1cc60fdeac
feat(library/compiler): add helper functions
2018-09-14 15:41:01 -07:00
Leonardo de Moura
964e2f3efb
feat(library/compiler/csimp): merge application-application
2018-09-14 15:23:50 -07:00
Leonardo de Moura
7174d53820
feat(library/compiler/csimp): distribute application over cases
2018-09-14 15:14:40 -07:00