0452bd7 Matthew Flatt <[email protected]> 2012-08-16 12:46
:
| bytecode optimizer improvement
|
| Treat unsafe functional operations (which never raise an
| exception) as omitable, which means that simple `let-values'
| combinations can be split into `let' bindings, etc.
:
M collects/ffi/unsafe/com.rkt | 1 +
M collects/racket/private/for.rkt | 2 +-
M collects/tests/racket/optimize.rktl | 12 ++++++++++++
M src/racket/src/optimize.c | 8 ++++----
Suppose I'm writing in Typed Racket, and x1, x2, y1, y2, z1, z2 : Float.
Does this optimization mean that this:
(let-values ([(x y z) (values (+ x1 x2) (+ y1 y2) (+ z1 z2))])
...)
is equivalent to the following?
(let ([x (+ x1 x2)]
[y (+ y1 y2)]
[z (+ z1 z2)])
...)
If so, I think that will speed up the ray tracer.
Neil ⊥
_________________________
Racket Developers list:
http://lists.racket-lang.org/dev