Commit graph

1366 commits

Author SHA1 Message Date
Justin Ethier
3bbd89ce2c WIP 2019-02-12 14:01:13 -05:00
Justin Ethier
e060247d8a Cleanup interface to opt:memoize-pure-fncs 2019-02-10 18:58:18 -05:00
Justin Ethier
a988582228 WIP 2019-02-10 18:48:53 -05:00
Justin Ethier
1caa277f8a Added TODO 2019-02-08 13:24:23 -05:00
Justin Ethier
4d7d312baa Relocate file 2019-02-08 13:11:29 -05:00
Justin Ethier
50e1ec5f84
Update hashset.sld
Clarify use of this module in the header comments.
2019-02-01 10:25:01 -05:00
arthurmaciel
a8cf5d9312 Previous try to correct semi-colon bug failed due to adding semi-colon to the end of a whole block and not each statement 2019-01-27 21:03:22 -02:00
Justin Ethier
402ae5dea0 Fix comment 2019-01-25 19:05:10 -05:00
arthurmaciel
40fbb91bc3 Converted improper semi-colons into double ones 2019-01-25 19:10:10 -02:00
arthurmaciel
c04c930c3e Moved trailing parens into correct position -
only preserved those preceded by commented code
2019-01-25 17:43:09 -02:00
Justin Ethier
ab8910fc14
Merge pull request #298 from arthurmaciel/master
Updated scheme/cyclone/cgen.sld to insert correct
2019-01-25 13:24:13 -05:00
arthurmaciel
6dfb306cf1 Updated scheme/cyclone/cgen.sld to insert correct 2019-01-25 15:30:12 -02:00
Justin Ethier
dd0b66eb48 Bump to 0.9.8 2019-01-22 12:30:01 -05:00
Justin Ethier
459e9a97b0 Hack to re-enable beta expand 2019-01-17 22:36:57 -05:00
Justin Ethier
b0000c42e7 Test re-enabling beta expansion 2019-01-17 16:58:45 -05:00
Justin Ethier
4b72131ac6 Enabled faster mutated-by-set 2019-01-17 16:26:32 -05:00
Justin Ethier
bee311de80 WIP 2019-01-17 15:27:47 -05:00
Justin Ethier
8cb0dd1b20 Issue #293 - Added adbf:vars-mutated-by-set 2019-01-17 13:24:16 -05:00
Justin Ethier
f02b561fb6 Issue #292 2019-01-15 15:16:01 -05:00
Justin Ethier
95e0b4da75 Cleanup 2019-01-11 15:55:09 -05:00
Justin Ethier
02b884bf32 Issue #293 - Do not inline if any mutated prim args
As a first cut, do not inline a prim call if any of its arguments has been mutated by a (set!). This is too restrictive but a decent starting point.
2019-01-11 13:02:42 -05:00
Justin Ethier
8648e66ca6 Restrict contains-if check to "called-once" expansion 2019-01-10 13:36:05 -05:00
Justin Ethier
84d9d114dc Fix for beta expand of functions called once
The problem is an if expression within one of these functions may cause the same continuation to be expanded twice, introducing duplicate lambda defintions and identifiers. For now we are not going to beta expand such functions during the contraction phase.
2019-01-10 12:52:03 -05:00
Justin Ethier
adb703c321 Catch edge case with lambda app, cleanup debug tracing 2019-01-07 13:13:20 -05:00
Justin Ethier
a8f2b11f78 WIP, testing with actual function from comp src 2019-01-06 22:59:31 -05:00
Justin Ethier
3ce15462dc Cleanup and bug fixes 2019-01-04 16:07:17 -05:00
Justin Ethier
6be26698c1 Bug fixes, enable call graph analysis 2019-01-03 18:19:54 -05:00
Justin Ethier
0a47e9eaca Fix import processing, remove trace logs 2019-01-03 16:32:53 -05:00
Justin Ethier
8cd73b1d19 Use lists of formals 2019-01-03 13:35:28 -05:00
Justin Ethier
c382b259c7 WIP 2019-01-02 19:02:52 -05:00
Justin Ethier
61508ef55a Relocated file 2019-01-02 18:24:20 -05:00
Justin Ethier
8f4dca2090 Export function 2019-01-02 17:39:15 -05:00
Justin Ethier
0e06e00c08 Export additional functions 2019-01-02 18:05:35 -05:00
Justin Ethier
43bb787f7e Added (cannot-inline) property 2018-12-22 00:01:37 -05:00
Justin Ethier
82e14fe9c4 Experimental changes:
1) Disable beta expansion (causes exponential growth problems on compiler benchmark, needs more fine-tuning)
2) Do not inline assoc/member functions since they loop (needs performance analysis)
2018-12-21 21:49:52 -05:00
Justin Ethier
c564400f5a Classify apply functions as mutators
We don't know if the functions they call will mutate or not, so err on the side of caution. Not sure this is really necessary since they receive a cont and therefore cannot be inlined anyway.
2018-12-21 21:48:57 -05:00
Justin Ethier
a53af18f89 Issue #287 - Check for list before calling (length) 2018-12-20 13:25:52 -05:00
Justin Ethier
58e2809330 Use hashsets 2018-12-19 14:24:20 -05:00
Justin Ethier
0e797cde1e Cleanup 2018-12-19 13:39:21 -05:00
Justin Ethier
61cb34fe52 Fix lib name 2018-12-19 13:32:31 -05:00
Justin Ethier
f9b503edd8 Initial file 2018-12-19 13:27:05 -05:00
Justin Ethier
9727e9f86c Use memq instead of member
We are looking up symbols so memq can be used instead, which is must faster at scale.
2018-12-18 22:01:27 -05:00
Justin Ethier
70b27ccd22 Speed up free-vars checking for primitives
We know prims are only symbols, so instead of checking for primitives in the top-level cond (which is expensive) we check for it as a sub-condition off of the (ref?) condition. This lets us avoid a call to memq unless we already are inspecting a symbol.
2018-12-18 22:00:19 -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
e864049136 Remove experimental code 2018-12-18 16:25:24 -05:00
Justin Ethier
49017f5731 Latest attempt to speed this up 2018-12-18 13:20:43 -05:00
Justin Ethier
41d35279d0 Added TODO, comments 2018-12-18 10:08:53 -05:00
Justin Ethier
cbb8357f66 WIP - fast insert 2018-12-17 18:32:25 -05:00
Justin Ethier
68e91f2408 WIP 2018-12-16 19:03:15 -05:00
Justin Ethier
506452654f Issue #286 2018-12-14 17:50:29 -05:00