[ ] ~pmap different optimization runs to make this a bit faster.~ Futures block immediately, places won't allow sending the AST and threads are just as slow as sequential, since Racket doesn't support proper OS threads.
[x] Tweak the estimate-perf to produce better code.
[ ] Add a third "complexity" measure so that it prefers less complex code.
[ ] Add a fourth "further optimization potential" measure.
[ ] Figure out how to treat self-recursive functions, so that we can optimize factorial away.
[ ] Run optimizations lazily and incrementally, so that there's no need to inline functions in a branch that is dead.
Refs #153
It's also way slower...
pmap
different optimization runs to make this a bit faster.~ Futures block immediately, places won't allow sending the AST and threads are just as slow as sequential, since Racket doesn't support proper OS threads.estimate-perf
to produce better code.factorial
away.