Commit graph

1397 commits

Author SHA1 Message Date
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
Justin Ethier
991172ed88 Increment the year 2018-12-14 17:15:50 -05:00
Justin Ethier
d54a0130c0 Issue #284 - Fix how udf:prims are compiled 2018-12-14 14:04:19 -05:00
Justin Ethier
c6aa29d7ab Extend case for udf's 2018-12-14 13:28:37 -05:00
Justin Ethier
dbca1ee36e Get back up-and-running as a program 2018-12-13 18:22:46 -05:00
Justin Ethier
0862070e52 Reorganize, disable new code for now 2018-12-12 18:55:41 -05:00
Justin Ethier
27d4c3e95f Added TODO 2018-12-12 17:33:43 -05:00
Justin Ethier
2d9ba5a9e3 New version of (list?) 2018-12-12 13:43:47 -05:00
Justin Ethier
9eddbb812b Version bump 2018-12-12 13:30:40 -05:00
Justin Ethier
c625e8b0e6 Second try with fast list 2018-12-05 17:39:09 -05:00
Justin Ethier
de5d83f21a Added comment 2018-12-04 22:58:51 -05:00
Justin Ethier
1a586b188c Disable fast list functions
Having problems getting macros to work in a safe way with Cyc-seq. Since these functions were never a big win anyway, we are going to disable them for now.
2018-12-04 17:51:35 -05:00
Justin Ethier
c65977a6a2 Cut over list_2 to new macro 2018-12-04 14:51:03 -05:00
Justin Ethier
f7d76bd90a Do not use make_cell 2018-12-03 18:06:59 -05:00
Justin Ethier
01a73839ac Cut cons over to new expr-safe code
Want to ensure cons can be used safely as part of a Cyc-seq. This cannot happen if the cons used the previous make_pair macro as that can only be called at the top of a function as part of a declaration.
2018-12-03 13:17:17 -05:00
Justin Ethier
f9d03342f2 Issue #282 - assign to temporary variables
Do this to prevent issues when one variable's value depends upon another's.
2018-12-02 22:21:27 -05:00
Justin Ethier
69a35f7d2e Revert I/O changes for now 2018-11-30 17:50:34 -05:00
Justin Ethier
f5b7c75184 Temporarily revert previous changes for cons 2018-11-30 17:26:45 -05:00
Justin Ethier
8ccd2b3525 WIP, seq safe allocation/assignment of pairs 2018-11-30 13:38:10 -05:00
Justin Ethier
e6e6527be7 WIP 2018-11-29 18:51:08 -05:00