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