Commit graph

267 commits

Author SHA1 Message Date
Justin Ethier
149e10257c Remove debug trace 2018-10-26 13:19:52 -04:00
Justin Ethier
6bc445e9ed Cleanup, check for proper index of "self" in clo 2018-10-25 18:27:14 -04:00
Justin Ethier
8bd87a8ef6 Refactoring 2018-10-25 17:42:02 -04:00
Justin Ethier
6577d9d462 Added find-closure-assigned-var-index! 2018-10-25 17:47:41 -04:00
Justin Ethier
6f47046be0 Properly reference closures 2018-10-24 22:43:32 -04:00
Justin Ethier
7e6ad07d9f Alloc closures as needed 2018-10-24 18:18:42 -04:00
Justin Ethier
c914d80e7f Pass params to continue_or_gc since already reassigned 2018-10-24 17:26:46 -04:00
Justin Ethier
02df0f9fb2 Re-enable iteration 2018-10-24 13:36:31 -04:00
Justin Ethier
c10d38e170 Support alloca of basic arithmetic operations 2018-10-24 13:29:34 -04:00
Justin Ethier
be5a5f1c6b WIP - optionally emit alloca-based prims 2018-10-24 13:17:44 -04:00
Justin Ethier
b2a981b7e5 WIP 2018-10-23 18:09:02 -04:00
Justin Ethier
49c2c093fd Reassign args when doing C iteration
Reassign arguments when optimizing to use C iteration in place of recursive function calls.
2018-10-23 13:31:01 -04:00
Justin Ethier
d0564e991e WIP 2018-10-23 12:16:33 -04:00
Justin Ethier
c39183500a WIP 2018-10-23 12:03:52 -04:00
Justin Ethier
1989d32664 Added continue_or_gc macros 2018-10-23 11:33:05 -04:00
Justin Ethier
870a9a9763 Added TODO 2018-10-22 17:28:25 -04:00
Justin Ethier
fb8de77d37 Detect actual recursive calls 2018-10-22 17:16:25 -04:00
Justin Ethier
8930d9c8df Added TODO 2018-10-22 13:35:33 -04:00
Justin Ethier
c1e8996ddd Added TODO 2018-10-22 13:34:16 -04:00
Justin Ethier
88f0db1547 Fix TODO 2018-10-19 13:33:47 -04:00
Justin Ethier
23aaae8f05 WIP 2018-10-19 13:23:18 -04:00
Justin Ethier
5f760e4a2c Use alloca_pair instead of make_pair for literals 2018-10-18 13:10:32 -04:00
Justin Ethier
ad6e2c5f78 Added return_direct_with_clo and return_direct_with_obj 2018-09-28 11:53:54 -04:00
Justin Ethier
03b4f21b66 Make it easier to enable/disable WKL 2018-09-27 17:49:04 -04:00
Justin Ethier
e49a319ec6 Enable well-known-function code 2018-09-26 13:18:52 -04:00
Justin Ethier
31e99da295 Bugfix - swap when we use num-lambda 2018-09-26 12:25:08 -04:00
Justin Ethier
92fb2c176d WIP 2018-09-26 11:10:49 -04:00
Justin Ethier
ea7f401e77 Use ast lambda ID's in C code 2018-09-25 18:43:18 -04:00
Justin Ethier
cb9d143187 WIP 2018-09-25 17:42:19 -04:00
Justin Ethier
32c8ad1949 WIP, added TODO's 2018-09-25 17:12:26 -04:00
Justin Ethier
bad93ae229 Temporarily disable well-known fnc changes 2018-09-25 12:38:30 -04:00
Justin Ethier
a27a62d65b Fix dereferencing closure from gc_ret fnc 2018-09-21 17:47:29 -04:00
Justin Ethier
6d35fb6fe7 Deref closure param 2018-09-21 13:32:36 -04:00
Justin Ethier
fe08c5ae96 Bug fixes 2018-09-21 13:22:05 -04:00
Justin Ethier
40a2131fef Add a type check 2018-09-21 13:06:37 -04:00
Justin Ethier
ade50748b6 Only emit new return macro when clo can be omitted 2018-09-21 12:44:18 -04:00
Justin Ethier
cc5f14f63e WIP 2018-09-21 12:24:54 -04:00
Justin Ethier
9e082f3c0c WIP - emit gc ret functions 2018-09-21 11:59:41 -04:00
Justin Ethier
107f5ce75a Pass appropriate lambda ID when compiling closure 2018-09-20 17:52:29 -04:00
Justin Ethier
3b0a6b2fd6 Added TODO 2018-09-20 13:19:08 -04:00
Justin Ethier
dd82dba750 Temporarily disable emitting new code
Need to debug lambda ID code first, before this change can hope to work.
2018-09-20 13:12:39 -04:00
Justin Ethier
cb97cfbac7 WIP 2018-09-19 18:51:41 -04:00
Justin Ethier
bd8e5cb1de Added c-compile-closure-element-ref 2018-09-19 13:31:36 -04:00
Justin Ethier
7cb83e17d8 Pass enclosing lambda AST ID when compiling expr's 2018-09-19 13:24:04 -04:00
Justin Ethier
5d1ed67c48 WIP - emitting obj instead of closure 2018-09-18 18:51:59 -04:00
Justin Ethier
9c377cd872 Emit return_direct_with_clo when possible.
This speeds up compilation slightly but the real benefit (I hope) will be when we can leverage it to eliminate certain closures.
2018-09-17 13:12:15 -04:00
Justin Ethier
189728d571 Store cgen-id in the analysis DB 2018-09-16 18:54:31 -04:00
Justin Ethier
a9c5d5d268 WIP 2018-09-14 18:26:03 -04:00
Justin Ethier
f461e26fa4 WIP - store allocated lambda id 2018-09-14 18:14:32 -04:00
Justin Ethier
d4e3c65ca7 Staging initial cgen changes 2018-09-14 18:06:50 -04:00