Commit graph

4415 commits

Author SHA1 Message Date
Justin Ethier
2f0537d6b1 Issue #262 2018-10-01 17:01:48 -04:00
Justin Ethier
9e0a5c77d3 Issue #262 2018-10-01 16:48:02 -04:00
Justin Ethier
db1cfb57b8 Staging file 2018-10-01 13:41:28 -04:00
Justin Ethier
ffb15e8d87 New test file 2018-10-01 13:21:01 -04:00
Justin Ethier
54e32106f5 Remove debug trace 2018-10-01 12:26:11 -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
3b1f124b6a Check for prim:cont when known function is called via k 2018-09-27 17:32:04 -04:00
Justin Ethier
0a9cd2a6b7 Well-known lambdas cannot be called from runtime 2018-09-27 15:57:51 -04:00
Justin Ethier
7a8c4e45f6 Check scope when finding known lambdas
Want to ensure a lambda is not used in another function other than the one we thought was calling it directly, because if this happens it will become part of a closure and is not directly "known".
2018-09-26 17:39:35 -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
62145ea95a Bugfix, forgot acc 2018-09-25 17:54:28 -04:00
Justin Ethier
bba1783a49 Added adb lambda id functions 2018-09-25 17:38:28 -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
5df8fd92ed Cleanup 2018-09-25 17:03:28 -04:00
Justin Ethier
8d327b9dd2 Enable lambda renumbering 2018-09-25 12:38:46 -04:00
Justin Ethier
bad93ae229 Temporarily disable well-known fnc changes 2018-09-25 12:38:30 -04:00
Justin Ethier
2fe6b80b3e Experimenting with renaming lambdas 2018-09-24 18:49:26 -04:00
Justin Ethier
7be8fe8f9a Added opt:renumber-lambdas! 2018-09-24 18:25:31 -04:00
Justin Ethier
edf3c0e87f Use default value to prevent raising an error 2018-09-24 13:38:02 -04:00
Justin Ethier
0882b90204 Adding file temporarily for testing 2018-09-23 18:23:27 -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
c531799663 Emit analysis DB after closure conv
This allows us to see the final DB prior to C code generation, as we are now modifying it after the CPS optimization phase.
2018-09-20 12:50:22 -04:00
Justin Ethier
b3e4a9feb6 Fix storing of all params 2018-09-20 12:16:32 -04:00
Justin Ethier
cb97cfbac7 WIP 2018-09-19 18:51:41 -04:00
Justin Ethier
b5248cb965 Set lambda args in adb 2018-09-19 18:35:09 -04:00
Justin Ethier
47da3d5be6 Added all-args to adbf 2018-09-19 17:45:22 -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
d0fccf44f8 Keep track of closure sizes 2018-09-18 17:50:17 -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
6dfe91fdc6 Added cgen-id parameter 2018-09-14 18:20:08 -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