Commit graph

233 commits

Author SHA1 Message Date
Justin Ethier
9d130722d6 Do not inline calls to system 2021-09-07 08:24:08 -04:00
Justin Ethier
5f8b8f9f40 Optimize closure calls to globals 2021-05-31 17:14:59 -04:00
Justin Ethier
cc7a2a5027 Indicate compiled closures for closure convert phase 2021-05-28 17:08:44 -04:00
Justin Ethier
d36f0aeb64 Scan closure free variables 2021-03-17 22:32:56 -04:00
Justin Ethier
80ad85883b Added analyze:cc-ast->vars 2021-03-17 21:41:39 -04:00
Justin Ethier
71793eca9c Issue #445 - Do not inline prims that open ports
It is dangerous to inline these operations because the resource may be opened multiple times and/or not closed properly.
2021-02-05 17:01:01 -05:00
Justin Ethier
b471e6fcd0 Fix broken optimizations 2021-02-03 21:43:27 -05:00
Justin Ethier
d104a0ad46 Experiment with requiring cont for (set!) 2020-01-23 13:39:34 -05:00
Justin Ethier
67baf4d5ee Issue #240 - Clean up error message 2020-01-13 13:03:29 -05:00
Justin Ethier
95d1200df0 Incorporate optimization flags 2019-11-13 13:16:45 -05:00
Justin Ethier
debbde6849 Validate the number of arguments passed to local function calls 2019-11-07 13:37:20 -05:00
Justin Ethier
769ec2ea76 Refactoring, set placeholders for future dev 2019-08-13 18:02:46 -04:00
Justin Ethier
1edb877c5f Speed up vector for five args or less 2019-08-02 12:13:30 -04:00
Justin Ethier
3c37c164fe Be more careful about identifying macros
The validation for number of function arguments was modified previously to filter-out macros, but the logic was not good enough. For some reason (need to track it down) non-macros are showing up in the macro environment. So additional logic is needed to confirm whether a given symbol is in fact a macro.
2019-04-18 12:57:26 -04:00
Justin Ethier
4f1abc2757 Cleanup, omit macros from arg checking 2019-04-11 18:40:19 -04:00
Justin Ethier
4300a759e3 Emit sexp along with arg error 2019-04-11 13:53:26 -04:00
Justin Ethier
e828f5839d Issue #240 - Validate number of local fnc args 2019-04-11 13:21:55 -04:00
Justin Ethier
74c545416c Added validate:num-function-args 2019-04-10 22:56:01 -04:00
Justin Ethier
3bf2a6125c Fast list/vector functions also allocate mutable objs 2019-02-28 13:47:32 -05:00
Justin Ethier
8efbf60528 Must explicitly call (complex?) now 2019-02-18 22:12:55 -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
2c418ec33d Fix extraction of options 2019-02-13 10:41:02 -05:00
Justin Ethier
dab0d9a570 Extract data from pair 2019-02-12 14:03:54 -05:00
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
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
6be26698c1 Bug fixes, enable call graph analysis 2019-01-03 18:19:54 -05:00
Justin Ethier
c382b259c7 WIP 2019-01-02 19:02:52 -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
e864049136 Remove experimental code 2018-12-18 16:25:24 -05:00
Justin Ethier
68e91f2408 WIP 2018-12-16 19:03:15 -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
984ddc76dc check for list before calling (length) 2018-11-27 18:59:28 -05:00
Justin Ethier
27ca613d0a Remove dead code 2018-11-27 18:46:29 -05:00
Justin Ethier
ef647082e6 WIP 2018-11-13 19:05:28 -05:00