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

Reply via email to