Commit graph

4661 commits

Author SHA1 Message Date
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
7bbd70df22 Relocate test file 2019-01-16 10:05:58 -05:00
Justin Ethier
f02b561fb6 Issue #292 2019-01-15 15:16:01 -05:00
Justin Ethier
55d561fe98 New fixes for 0.9.7 2019-01-11 15:59:48 -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
43c39abc8a Found new test case from compiler benchmark 2019-01-10 22:02:57 -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
82c7170247 Additional tests 2019-01-06 21:54:44 -05:00
Justin Ethier
3ce15462dc Cleanup and bug fixes 2019-01-04 16:07:17 -05:00
Justin Ethier
b2fceb8a49 More test cases, trying to track down comp failure 2019-01-04 07:48:09 -05:00
Justin Ethier
058d30224d Additional test case 2019-01-04 07:43:58 -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
b0ede616d2 WIP 2019-01-02 18:20:31 -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
6c6ec4e604 WIP 2019-01-02 17:51:52 -05:00
Justin Ethier
3c965f2e12 WIP 2019-01-02 13:16:17 -05:00
Justin Ethier
533e4fa463 WIP 2019-01-01 18:33:42 -05:00
Justin Ethier
14c276387a Initial files 2018-12-28 06:03:57 -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
f617f8b102 Remove unnecessary #include 2018-12-19 16:39:15 -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
57f74fa836 Initial file 2018-12-19 13:28:34 -05:00
Justin Ethier
56597cbe57 New lib 2018-12-19 13:27:45 -05:00
Justin Ethier
be929189b6 Initial file 2018-12-19 13:27:19 -05:00
Justin Ethier
f9b503edd8 Initial file 2018-12-19 13:27:05 -05:00
Justin Ethier
c05a2602d2 Faster compilation 2018-12-18 23:02:21 -05:00
Justin Ethier
40c0b9734f When profiling include -g 2018-12-18 23:01:06 -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
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
e864049136 Remove experimental code 2018-12-18 16:25:24 -05:00