Commit graph

199 commits

Author SHA1 Message Date
Justin Ethier
fa01202df8 Do not attempt to memoize functions that take 0 args 2019-02-15 12:36:54 -05:00
Justin Ethier
7021855eca Inject additional imports, added a TODO 2019-02-14 23:03:33 -05:00
Justin Ethier
d0d7fae89c Only memoize pure functions for programs
The problem with doing this for libraries is that it adds a new dependency on (srfi 69). It would be problematic to use a library with these changes as there is no easy way to know this SRFI is also a library dependency.
2019-02-14 22:53:12 -05:00
Justin Ethier
e5be007539 Added memoization optimization flags 2019-02-14 21:10:06 -05:00
Justin Ethier
12291423c7 Syntax fix 2019-02-14 17:14:18 -05:00
Justin Ethier
b01ab9a671 Add missing Cyc-memoize even if srfi 69 is there 2019-02-14 16:56:05 -05:00
Justin Ethier
70264e001e Fix injection of imports 2019-02-14 14:21:14 -05:00
Justin Ethier
f16b3fec93 WIP 2019-02-14 13:59:07 -05:00
Justin Ethier
0604fdf221 WIP for proof of concept 2019-02-14 13:23:20 -05:00
Justin Ethier
53471fc4c1 Rework setting of globals and checking flags, for cps opt 2019-02-13 18:53:43 -05:00
Justin Ethier
94f77f6075 Added TODO's 2019-02-13 15:37:53 -05:00
Justin Ethier
2a91c9431e WIP 2019-02-12 18:55:10 -05:00
Justin Ethier
dd9b612be4 Disable debug printing 2018-12-18 17:32:57 -05:00
Justin Ethier
06d900bea9 Added TODO 2018-12-18 17:08:17 -05:00
Justin Ethier
d075a3a34a Report elapsed time 2018-12-18 17:07:57 -05:00
Justin Ethier
a46a9e92d3 Pre-sort the list of globals
This cuts down on the amount of work that must be done by the alpha conversion.
2018-12-18 16:33:24 -05:00
Justin Ethier
1450d2520e Added placeholder code 2018-12-17 12:54:20 -05:00
Justin Ethier
e31b357f4c WIP 2018-11-12 16:30:11 -05:00
Justin Ethier
8cbcf82121 Added a special (program) feature 2018-11-10 06:52:54 -05:00
Justin Ethier
ef2adcdb11 WIP 2018-11-10 05:55:49 -05:00
Justin Ethier
8d327b9dd2 Enable lambda renumbering 2018-09-25 12:38:46 -04:00
Justin Ethier
2fe6b80b3e Experimenting with renaming lambdas 2018-09-24 18:49:26 -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
c9fd208a72 Added stub 2018-09-12 17:17:31 -04:00
Justin Ethier
8359f7a6f9 WIP - emit AST lambda's from closure convert 2018-09-06 13:32:01 -04:00
Justin Ethier
bea5644503 Pretty-print closure converted code 2018-09-06 12:53:26 -04:00
Justin Ethier
b2f4502651 WIP - preserve AST through to closure-conversion 2018-08-31 19:50:58 -04:00
Justin Ethier
e705824a6d Less verbose CPS debug printing 2018-05-21 13:31:37 -04:00
Justin Ethier
a55ab6780c Remove obsolete imports 2017-11-28 17:01:41 -05:00
Justin Ethier
d0772c2238 Allow a program to have macros expand into a top-level import expression. 2017-10-06 18:43:30 -04:00
Justin Ethier
6d0d81f9ef Call opt:add-inlinable-functions to load inlines 2017-08-23 16:30:40 +00:00
Justin Ethier
f2db6235e0 Issue #206 - Fix cyc-seq, and only do it as an optimization 2017-07-18 17:41:33 -04:00
Justin Ethier
2febd970bb Issue #200 - Consistency with new icyc cmd line 2017-05-16 04:39:07 +00:00
Justin Ethier
e378fd70dd Add 3rd round of CPS optimizations 2017-05-15 20:03:39 +00:00
Justin Ethier
8be4221c1c Cleanup, adjust formatting, remove debug statement 2017-05-10 10:37:55 +00:00
Justin Ethier
b74213ec2d Attempt 2 CPS optimization passes 2017-05-04 05:11:23 +00:00
Justin Ethier
10569ddcfd Get root library name 2017-04-29 00:46:47 +00:00
Justin Ethier
dc42d5a1d4 Only inline specifically designated functions 2017-04-28 21:28:30 +00:00
Justin Ethier
8b6830ea49 WIP - explicit inlines 2017-04-30 19:04:53 -04:00
Justin Ethier
eb4fe26284 Relocated function 2017-04-28 17:54:04 +00:00
Justin Ethier
8d7bff212a WIP 2017-04-28 17:43:57 +00:00
Justin Ethier
4ae3269373 WIP 2017-04-27 19:06:08 -04:00
Justin Ethier
9b3a4769dc Avoid naming conflicts with user defined inlines
Do not allow an inline if it conflicts with a global in the current module. This at least attempts to avoid obvious name conflicts. TBD if it is good enough or if additional fixes are necessary.
2017-04-27 18:52:22 -04:00
Justin Ethier
c2929af714 Added exception handler 2017-04-26 18:08:07 -04:00
Justin Ethier
51a1a63700 Register built-in inlines 2017-04-26 17:35:58 -04:00
Justin Ethier
f88016eb3e WIP 2017-04-25 06:22:40 +00:00
Justin Ethier
3d2fdb36d9 WIP 2017-04-24 23:30:27 +00:00
Justin Ethier
998fb4efaa WIP 2017-04-24 23:27:25 +00:00
Justin Ethier
0dafd88ed3 Check for inlinable functions after prim conv
At this point there are more opportunities for inlining.
2017-04-24 18:57:52 -04:00
Justin Ethier
9b7a5e3cfe Explicitly check for a (define) form 2017-04-19 00:25:47 +00:00