Commit graph

53 commits

Author SHA1 Message Date
Leonardo de Moura
ccd73701cb feat(library/compiler/csimp): preserve joint points 2018-09-26 17:54:11 -07:00
Leonardo de Moura
f3552f70f6 feat(library/compiler/csimp): simplify code 2018-09-26 17:54:10 -07:00
Leonardo de Moura
e7b99d5a07 fix(library/compiler/csimp): bug at split_entries 2018-09-26 17:54:10 -07:00
Leonardo de Moura
6578b2b6ce chore(library/compiler/csimp): cleanup 2018-09-26 17:54:10 -07:00
Leonardo de Moura
33322d44ee chore(library/compiler/csimp): remove dead code 2018-09-26 13:46:27 -07:00
Leonardo de Moura
b324aa4b33 feat(library/compiler/csimp): do not inline partial applications 2018-09-26 09:05:28 -07:00
Leonardo de Moura
7fed0b5cb0 fix(library/compiler/csimp): bug in the join point generation 2018-09-26 08:47:49 -07:00
Leonardo de Moura
15222a79a0 chore(library/compiler/csimp): display "code size" 2018-09-25 19:34:29 -07:00
Leonardo de Moura
25780c6daf fix(library/compiler/csimp): never create join points for floating cases from application 2018-09-25 19:34:29 -07:00
Leonardo de Moura
32888b45a8 chore(library/compiler/csimp): remove leftover 2018-09-25 19:34:29 -07:00
Leonardo de Moura
8613255ff2 chore(library/compiler/csimp): add comment 2018-09-25 19:34:29 -07:00
Leonardo de Moura
6b6b6eb96f feat(library/compiler/csimp): improve float_cases_on 2018-09-25 19:34:29 -07:00
Leonardo de Moura
c9cb576c9b feat(library/compiler/csimp): float cases from application when visiting application 2018-09-25 19:34:29 -07:00
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
Leonardo de Moura
017261960c feat(library/compiler/csimp): add float_cases_on 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
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
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
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
79c8e37cdf fix(library/compiler/csimp): incorrect assertions 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
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
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
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
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
33821f399c chore(library/compiler): lc_util.* ==> util.* 2018-09-17 08:50:50 -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
c60be8c6e3 fix(library/compiler/csimp): debug build 2018-09-14 17:55:45 -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
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
Leonardo de Moura
75b494e33d feat(library/compiler): use new constructor info 2018-09-14 13:51:53 -07:00
Leonardo de Moura
a2c5daeded feat(library/compiler/lcnf): modify LCNF format
Now, the body of a let-expression is atomic.
2018-09-14 13:26:24 -07:00