Make unboxed let not double optimize. TODO fix logs.
This commit is contained in:
parent
1a682c389a
commit
10dc9afc33
|
@ -1,6 +1,6 @@
|
|||
#lang racket/base
|
||||
|
||||
(require syntax/parse syntax/stx syntax/id-table racket/dict
|
||||
(require syntax/parse syntax/stx syntax/id-table racket/dict racket/promise
|
||||
racket/syntax racket/match syntax/parse/experimental/specialize
|
||||
"../utils/utils.rkt" racket/unsafe/ops unstable/sequence
|
||||
(for-template racket/base racket/math racket/flonum racket/unsafe/ops)
|
||||
|
@ -9,7 +9,7 @@
|
|||
(optimizer utils numeric-utils logging float))
|
||||
|
||||
(provide float-complex-opt-expr
|
||||
float-complex-arith-opt-expr
|
||||
float-complex-arith-expr
|
||||
unboxed-float-complex-opt-expr
|
||||
float-complex-call-site-opt-expr arity-raising-opt-msg
|
||||
unboxed-vars-table unboxed-funs-table)
|
||||
|
@ -415,20 +415,28 @@
|
|||
|
||||
(pattern :float-complex-arith-opt-expr))
|
||||
|
||||
(define-syntax-class float-complex-arith-opt-expr
|
||||
;; Supports not optimizing in order to support using it to check for optimizable expressions.
|
||||
;; Thus side effects are hidden behind the optimizing argument and referencing the opt attribute.
|
||||
(define-syntax-class (float-complex-arith-expr* optimizing)
|
||||
#:commit
|
||||
#:attributes (opt)
|
||||
|
||||
(pattern (#%plain-app op:float-complex->float-op e:expr ...)
|
||||
#:when (subtypeof? this-syntax -Flonum)
|
||||
#:with exp:unboxed-float-complex-opt-expr this-syntax
|
||||
#:with opt #`(let*-values (exp.bindings ...) exp.real-binding))
|
||||
#:attr opt
|
||||
(delay
|
||||
(syntax-parse this-syntax
|
||||
(exp:unboxed-float-complex-opt-expr
|
||||
#'(let*-values (exp.bindings ...) exp.real-binding)))))
|
||||
|
||||
(pattern (#%plain-app op:float-complex-op e:expr ...)
|
||||
#:when (subtypeof? this-syntax -FloatComplex)
|
||||
#:with exp:unboxed-float-complex-opt-expr this-syntax
|
||||
#:with opt #`(let*-values (exp.bindings ...)
|
||||
(unsafe-make-flrectangular exp.real-binding exp.imag-binding)))
|
||||
#:attr opt
|
||||
(delay
|
||||
(syntax-parse this-syntax
|
||||
(exp:unboxed-float-complex-opt-expr
|
||||
#'(let*-values (exp.bindings ...)
|
||||
(unsafe-make-flrectangular exp.real-binding exp.imag-binding))))))
|
||||
|
||||
;; division is special. can only optimize if none of the arguments can be exact 0.
|
||||
;; otherwise, optimization is unsound (we'd give a result where we're supposed to throw an error)
|
||||
|
@ -443,7 +451,7 @@
|
|||
c)])
|
||||
(define safe-to-opt? (null? irritants))
|
||||
;; result is Float-Complex, but unsafe to optimize, missed optimization
|
||||
(unless safe-to-opt?
|
||||
(when (and optimizing (not safe-to-opt?))
|
||||
(log-missed-optimization
|
||||
"Float-Complex division, potential exact 0s on the rhss"
|
||||
(string-append
|
||||
|
@ -454,9 +462,12 @@
|
|||
"\nTo fix, change the highlighted expression(s) to have Float (or Float-Complex) type(s)."))
|
||||
this-syntax irritants))
|
||||
safe-to-opt?)
|
||||
#:with exp:unboxed-float-complex-opt-expr this-syntax
|
||||
#:with opt #`(let*-values (exp.bindings ...)
|
||||
(unsafe-make-flrectangular exp.real-binding exp.imag-binding)))
|
||||
#:attr opt
|
||||
(delay
|
||||
(syntax-parse this-syntax
|
||||
(exp:unboxed-float-complex-opt-expr
|
||||
#'(let*-values (exp.bindings ...)
|
||||
(unsafe-make-flrectangular exp.real-binding exp.imag-binding))))))
|
||||
|
||||
(pattern v:id
|
||||
#:do [(define unboxed-info (dict-ref unboxed-vars-table #'v #f))]
|
||||
|
@ -464,11 +475,14 @@
|
|||
#:when (subtypeof? #'v -FloatComplex)
|
||||
#:with (real-binding imag-binding orig-binding) unboxed-info
|
||||
;; we need to introduce both the binding and the use at the same time
|
||||
#:do [(log-unboxing-opt "unboxed complex variable")
|
||||
(add-disappeared-use (syntax-local-introduce #'v))
|
||||
(add-disappeared-binding (syntax-local-introduce #'orig-binding))]
|
||||
;; unboxed variable used in a boxed fashion, we have to box
|
||||
#:with opt #'(unsafe-make-flrectangular real-binding imag-binding)))
|
||||
#:attr opt
|
||||
(delay
|
||||
(log-unboxing-opt "unboxed complex variable")
|
||||
(add-disappeared-use (syntax-local-introduce #'v))
|
||||
(add-disappeared-binding (syntax-local-introduce #'orig-binding))
|
||||
#'(unsafe-make-flrectangular real-binding imag-binding))))
|
||||
|
||||
|
||||
;; takes as argument a structure describing which arguments will be unboxed
|
||||
;; and the optimized version of the operator. operators are optimized elsewhere
|
||||
|
@ -494,3 +508,6 @@
|
|||
e.imag-binding ...
|
||||
#,@(map (lambda (i) ((optimize) (get-arg i)))
|
||||
boxed)))])))) ; boxed params
|
||||
|
||||
(define-syntax-class/specialize float-complex-arith-opt-expr (float-complex-arith-expr* #t))
|
||||
(define-syntax-class/specialize float-complex-arith-expr (float-complex-arith-expr* #f))
|
||||
|
|
|
@ -173,8 +173,7 @@
|
|||
(define (rec exp)
|
||||
(syntax-parse exp
|
||||
;; can be used in a complex arithmetic expr, can be a direct child
|
||||
[exp:float-complex-arith-opt-expr
|
||||
#:when (not (identifier? #'exp))
|
||||
[(~and (~not :id) exp:float-complex-arith-expr)
|
||||
(or (direct-child-of? v #'exp)
|
||||
(ormap rec (syntax->list #'exp)))]
|
||||
;; if the variable gets rebound to something else, we look for unboxing
|
||||
|
|
|
@ -1,28 +1,19 @@
|
|||
#;#;
|
||||
#<<END
|
||||
TR info: invalid-unboxed-let.rkt 36:3 display -- hidden parameter
|
||||
TR info: invalid-unboxed-let.rkt 37:3 display -- hidden parameter
|
||||
TR info: invalid-unboxed-let.rkt 38:3 display -- hidden parameter
|
||||
TR info: invalid-unboxed-let.rkt 39:3 display -- hidden parameter
|
||||
TR opt: invalid-unboxed-let.rkt 32:0 (let ((t1 (+ 1.0+2.0i 2.0+4.0i)) (t2 (+ 3.0+6.0i 4.0+8.0i)) (t3 1.0+2.0i) (t4 1)) (display (+ t1 t1)) (display t2) (display t3) (display t4)) -- unboxed let bindings
|
||||
TR opt: invalid-unboxed-let.rkt 32:10 (+ 1.0+2.0i 2.0+4.0i) -- unboxed binary float complex
|
||||
TR opt: invalid-unboxed-let.rkt 32:13 1.0+2.0i -- unboxed literal
|
||||
TR opt: invalid-unboxed-let.rkt 32:22 2.0+4.0i -- unboxed literal
|
||||
TR opt: invalid-unboxed-let.rkt 33:10 (+ 3.0+6.0i 4.0+8.0i) -- unboxed binary float complex
|
||||
TR opt: invalid-unboxed-let.rkt 33:13 3.0+6.0i -- unboxed literal
|
||||
TR opt: invalid-unboxed-let.rkt 33:22 4.0+8.0i -- unboxed literal
|
||||
TR opt: invalid-unboxed-let.rkt 36:11 (+ t1 t1) -- unboxed binary float complex
|
||||
TR opt: invalid-unboxed-let.rkt 36:11 (+ t1 t1) -- unboxed binary float complex
|
||||
TR opt: invalid-unboxed-let.rkt 36:11 (+ t1 t1) -- unboxed binary float complex
|
||||
TR opt: invalid-unboxed-let.rkt 36:11 (+ t1 t1) -- unboxed binary float complex
|
||||
TR opt: invalid-unboxed-let.rkt 36:14 t1 -- leave var unboxed
|
||||
TR opt: invalid-unboxed-let.rkt 36:14 t1 -- unbox float-complex
|
||||
TR opt: invalid-unboxed-let.rkt 36:14 t1 -- unbox float-complex
|
||||
TR opt: invalid-unboxed-let.rkt 36:14 t1 -- unbox float-complex
|
||||
TR opt: invalid-unboxed-let.rkt 36:17 t1 -- leave var unboxed
|
||||
TR opt: invalid-unboxed-let.rkt 36:17 t1 -- unbox float-complex
|
||||
TR opt: invalid-unboxed-let.rkt 36:17 t1 -- unbox float-complex
|
||||
TR opt: invalid-unboxed-let.rkt 36:17 t1 -- unbox float-complex
|
||||
TR info: invalid-unboxed-let.rkt 27:3 display -- hidden parameter
|
||||
TR info: invalid-unboxed-let.rkt 28:3 display -- hidden parameter
|
||||
TR info: invalid-unboxed-let.rkt 29:3 display -- hidden parameter
|
||||
TR info: invalid-unboxed-let.rkt 30:3 display -- hidden parameter
|
||||
TR opt: invalid-unboxed-let.rkt 23:0 (let ((t1 (+ 1.0+2.0i 2.0+4.0i)) (t2 (+ 3.0+6.0i 4.0+8.0i)) (t3 1.0+2.0i) (t4 1)) (display (+ t1 t1)) (display t2) (display t3) (display t4)) -- unboxed let bindings
|
||||
TR opt: invalid-unboxed-let.rkt 23:10 (+ 1.0+2.0i 2.0+4.0i) -- unboxed binary float complex
|
||||
TR opt: invalid-unboxed-let.rkt 23:13 1.0+2.0i -- unboxed literal
|
||||
TR opt: invalid-unboxed-let.rkt 23:22 2.0+4.0i -- unboxed literal
|
||||
TR opt: invalid-unboxed-let.rkt 24:10 (+ 3.0+6.0i 4.0+8.0i) -- unboxed binary float complex
|
||||
TR opt: invalid-unboxed-let.rkt 24:13 3.0+6.0i -- unboxed literal
|
||||
TR opt: invalid-unboxed-let.rkt 24:22 4.0+8.0i -- unboxed literal
|
||||
TR opt: invalid-unboxed-let.rkt 27:11 (+ t1 t1) -- unboxed binary float complex
|
||||
TR opt: invalid-unboxed-let.rkt 27:14 t1 -- leave var unboxed
|
||||
TR opt: invalid-unboxed-let.rkt 27:17 t1 -- leave var unboxed
|
||||
END
|
||||
"6.0+12.0i7.0+14.0i1.0+2.0i1"
|
||||
|
||||
|
|
|
@ -1,17 +1,15 @@
|
|||
#;#;
|
||||
#<<END
|
||||
TR opt: make-polar.rkt 30:6 (make-polar 1.0 1.0) -- make-polar
|
||||
TR opt: make-polar.rkt 30:6 (make-polar 1.0 1.0) -- make-rectangular elimination
|
||||
TR opt: make-polar.rkt 33:0 (let ((p (+ 1.0+2.0i (make-polar 2.0 4.0)))) (string-append (real->decimal-string (real-part p) 3) (real->decimal-string (imag-part p) 3))) -- unboxed let bindings
|
||||
TR opt: make-polar.rkt 33:12 1.0+2.0i -- unboxed literal
|
||||
TR opt: make-polar.rkt 33:21 (make-polar 2.0 4.0) -- make-rectangular elimination
|
||||
TR opt: make-polar.rkt 33:9 (+ 1.0+2.0i (make-polar 2.0 4.0)) -- unboxed binary float complex
|
||||
TR opt: make-polar.rkt 34:39 (real-part p) -- complex accessor elimination
|
||||
TR opt: make-polar.rkt 34:39 (real-part p) -- unboxed unary float complex
|
||||
TR opt: make-polar.rkt 34:50 p -- leave var unboxed
|
||||
TR opt: make-polar.rkt 34:50 p -- unbox float-complex
|
||||
TR opt: make-polar.rkt 35:39 (imag-part p) -- complex accessor elimination
|
||||
TR opt: make-polar.rkt 35:50 p -- leave var unboxed
|
||||
TR opt: make-polar.rkt 28:6 (make-polar 1.0 1.0) -- make-polar
|
||||
TR opt: make-polar.rkt 28:6 (make-polar 1.0 1.0) -- make-rectangular elimination
|
||||
TR opt: make-polar.rkt 31:0 (let ((p (+ 1.0+2.0i (make-polar 2.0 4.0)))) (string-append (real->decimal-string (real-part p) 3) (real->decimal-string (imag-part p) 3))) -- unboxed let bindings
|
||||
TR opt: make-polar.rkt 31:12 1.0+2.0i -- unboxed literal
|
||||
TR opt: make-polar.rkt 31:21 (make-polar 2.0 4.0) -- make-rectangular elimination
|
||||
TR opt: make-polar.rkt 31:9 (+ 1.0+2.0i (make-polar 2.0 4.0)) -- unboxed binary float complex
|
||||
TR opt: make-polar.rkt 32:39 (real-part p) -- complex accessor elimination
|
||||
TR opt: make-polar.rkt 32:50 p -- leave var unboxed
|
||||
TR opt: make-polar.rkt 33:39 (imag-part p) -- complex accessor elimination
|
||||
TR opt: make-polar.rkt 33:50 p -- leave var unboxed
|
||||
END
|
||||
#<<END
|
||||
"-0.3070.486"
|
||||
|
|
|
@ -1,37 +1,31 @@
|
|||
#;#;
|
||||
#<<END
|
||||
TR opt: nested-let-loop.rkt 44:0 (let: loop1 : Float-Complex ((x : (Listof Float-Complex) (quote (1.0+2.0i 2.0+4.0i))) (r : Float-Complex 0.0+0.0i)) (if (null? x) r (let: loop2 : Float-Complex ((y : (Listof Float-Complex) (quote (3.0+6.0i 4.0+8.0i))) (s : Float-Complex 0.0+0.0i)) (if (null? y) (loop1 (cdr x) (+ r s)) (loop2 (cdr y) (+ s (car x) (car y))))))) -- unboxed call site
|
||||
TR opt: nested-let-loop.rkt 44:6 loop1 -- fun -> unboxed fun
|
||||
TR opt: nested-let-loop.rkt 44:6 loop1 -- unboxed let loop
|
||||
TR opt: nested-let-loop.rkt 46:28 0.0+0.0i -- unboxed literal
|
||||
TR opt: nested-let-loop.rkt 46:8 r -- unboxed var -> table
|
||||
TR opt: nested-let-loop.rkt 48:10 r -- unboxed complex variable
|
||||
TR opt: nested-let-loop.rkt 49:10 (let: loop2 : Float-Complex ((y : (Listof Float-Complex) (quote (3.0+6.0i 4.0+8.0i))) (s : Float-Complex 0.0+0.0i)) (if (null? y) (loop1 (cdr x) (+ r s)) (loop2 (cdr y) (+ s (car x) (car y))))) -- unboxed call site
|
||||
TR opt: nested-let-loop.rkt 49:16 loop2 -- fun -> unboxed fun
|
||||
TR opt: nested-let-loop.rkt 49:16 loop2 -- unboxed let loop
|
||||
TR opt: nested-let-loop.rkt 51:18 s -- unboxed var -> table
|
||||
TR opt: nested-let-loop.rkt 51:38 0.0+0.0i -- unboxed literal
|
||||
TR opt: nested-let-loop.rkt 53:20 (loop1 (cdr x) (+ r s)) -- call to fun with unboxed args
|
||||
TR opt: nested-let-loop.rkt 53:20 (loop1 (cdr x) (+ r s)) -- unboxed call site
|
||||
TR opt: nested-let-loop.rkt 53:27 (cdr x) -- pair
|
||||
TR opt: nested-let-loop.rkt 53:35 (+ r s) -- unboxed binary float complex
|
||||
TR opt: nested-let-loop.rkt 53:35 (+ r s) -- unboxed binary float complex
|
||||
TR opt: nested-let-loop.rkt 53:35 (+ r s) -- unboxed binary float complex
|
||||
TR opt: nested-let-loop.rkt 53:38 r -- leave var unboxed
|
||||
TR opt: nested-let-loop.rkt 53:38 r -- leave var unboxed
|
||||
TR opt: nested-let-loop.rkt 53:38 r -- unbox float-complex
|
||||
TR opt: nested-let-loop.rkt 53:40 s -- leave var unboxed
|
||||
TR opt: nested-let-loop.rkt 53:40 s -- unbox float-complex
|
||||
TR opt: nested-let-loop.rkt 53:40 s -- unbox float-complex
|
||||
TR opt: nested-let-loop.rkt 54:20 (loop2 (cdr y) (+ s (car x) (car y))) -- call to fun with unboxed args
|
||||
TR opt: nested-let-loop.rkt 54:20 (loop2 (cdr y) (+ s (car x) (car y))) -- unboxed call site
|
||||
TR opt: nested-let-loop.rkt 54:27 (cdr y) -- pair
|
||||
TR opt: nested-let-loop.rkt 54:35 (+ s (car x) (car y)) -- unboxed binary float complex
|
||||
TR opt: nested-let-loop.rkt 54:38 s -- leave var unboxed
|
||||
TR opt: nested-let-loop.rkt 54:40 (car x) -- pair
|
||||
TR opt: nested-let-loop.rkt 54:40 (car x) -- unbox float-complex
|
||||
TR opt: nested-let-loop.rkt 54:48 (car y) -- pair
|
||||
TR opt: nested-let-loop.rkt 54:48 (car y) -- unbox float-complex
|
||||
TR opt: nested-let-loop.rkt 38:0 (let: loop1 : Float-Complex ((x : (Listof Float-Complex) (quote (1.0+2.0i 2.0+4.0i))) (r : Float-Complex 0.0+0.0i)) (if (null? x) r (let: loop2 : Float-Complex ((y : (Listof Float-Complex) (quote (3.0+6.0i 4.0+8.0i))) (s : Float-Complex 0.0+0.0i)) (if (null? y) (loop1 (cdr x) (+ r s)) (loop2 (cdr y) (+ s (car x) (car y))))))) -- unboxed call site
|
||||
TR opt: nested-let-loop.rkt 38:6 loop1 -- fun -> unboxed fun
|
||||
TR opt: nested-let-loop.rkt 38:6 loop1 -- unboxed let loop
|
||||
TR opt: nested-let-loop.rkt 40:28 0.0+0.0i -- unboxed literal
|
||||
TR opt: nested-let-loop.rkt 40:8 r -- unboxed var -> table
|
||||
TR opt: nested-let-loop.rkt 42:10 r -- unboxed complex variable
|
||||
TR opt: nested-let-loop.rkt 43:10 (let: loop2 : Float-Complex ((y : (Listof Float-Complex) (quote (3.0+6.0i 4.0+8.0i))) (s : Float-Complex 0.0+0.0i)) (if (null? y) (loop1 (cdr x) (+ r s)) (loop2 (cdr y) (+ s (car x) (car y))))) -- unboxed call site
|
||||
TR opt: nested-let-loop.rkt 43:16 loop2 -- fun -> unboxed fun
|
||||
TR opt: nested-let-loop.rkt 43:16 loop2 -- unboxed let loop
|
||||
TR opt: nested-let-loop.rkt 45:18 s -- unboxed var -> table
|
||||
TR opt: nested-let-loop.rkt 45:38 0.0+0.0i -- unboxed literal
|
||||
TR opt: nested-let-loop.rkt 47:20 (loop1 (cdr x) (+ r s)) -- call to fun with unboxed args
|
||||
TR opt: nested-let-loop.rkt 47:20 (loop1 (cdr x) (+ r s)) -- unboxed call site
|
||||
TR opt: nested-let-loop.rkt 47:27 (cdr x) -- pair
|
||||
TR opt: nested-let-loop.rkt 47:35 (+ r s) -- unboxed binary float complex
|
||||
TR opt: nested-let-loop.rkt 47:38 r -- leave var unboxed
|
||||
TR opt: nested-let-loop.rkt 47:40 s -- leave var unboxed
|
||||
TR opt: nested-let-loop.rkt 48:20 (loop2 (cdr y) (+ s (car x) (car y))) -- call to fun with unboxed args
|
||||
TR opt: nested-let-loop.rkt 48:20 (loop2 (cdr y) (+ s (car x) (car y))) -- unboxed call site
|
||||
TR opt: nested-let-loop.rkt 48:27 (cdr y) -- pair
|
||||
TR opt: nested-let-loop.rkt 48:35 (+ s (car x) (car y)) -- unboxed binary float complex
|
||||
TR opt: nested-let-loop.rkt 48:38 s -- leave var unboxed
|
||||
TR opt: nested-let-loop.rkt 48:40 (car x) -- pair
|
||||
TR opt: nested-let-loop.rkt 48:40 (car x) -- unbox float-complex
|
||||
TR opt: nested-let-loop.rkt 48:48 (car y) -- pair
|
||||
TR opt: nested-let-loop.rkt 48:48 (car y) -- unbox float-complex
|
||||
END
|
||||
#<<END
|
||||
20.0+40.0i
|
||||
|
|
|
@ -1,22 +1,16 @@
|
|||
#;#;
|
||||
#<<END
|
||||
TR opt: nested-unboxed-let.rkt 29:0 (let ((x (+ 1.0+2.0i 2.0+3.0i))) (let ((x (+ x 2.0+3.0i))) (+ x 3.0+6.0i))) -- unboxed let bindings
|
||||
TR opt: nested-unboxed-let.rkt 29:12 1.0+2.0i -- unboxed literal
|
||||
TR opt: nested-unboxed-let.rkt 29:21 2.0+3.0i -- unboxed literal
|
||||
TR opt: nested-unboxed-let.rkt 29:9 (+ 1.0+2.0i 2.0+3.0i) -- unboxed binary float complex
|
||||
TR opt: nested-unboxed-let.rkt 30:11 (+ x 2.0+3.0i) -- unboxed binary float complex
|
||||
TR opt: nested-unboxed-let.rkt 30:11 (+ x 2.0+3.0i) -- unboxed binary float complex
|
||||
TR opt: nested-unboxed-let.rkt 30:14 x -- leave var unboxed
|
||||
TR opt: nested-unboxed-let.rkt 30:14 x -- unbox float-complex
|
||||
TR opt: nested-unboxed-let.rkt 30:16 2.0+3.0i -- unboxed literal
|
||||
TR opt: nested-unboxed-let.rkt 30:16 2.0+3.0i -- unboxed literal
|
||||
TR opt: nested-unboxed-let.rkt 30:2 (let ((x (+ x 2.0+3.0i))) (+ x 3.0+6.0i)) -- unboxed let bindings
|
||||
TR opt: nested-unboxed-let.rkt 31:4 (+ x 3.0+6.0i) -- unboxed binary float complex
|
||||
TR opt: nested-unboxed-let.rkt 31:4 (+ x 3.0+6.0i) -- unboxed binary float complex
|
||||
TR opt: nested-unboxed-let.rkt 31:7 x -- leave var unboxed
|
||||
TR opt: nested-unboxed-let.rkt 31:7 x -- unbox float-complex
|
||||
TR opt: nested-unboxed-let.rkt 31:9 3.0+6.0i -- unboxed literal
|
||||
TR opt: nested-unboxed-let.rkt 31:9 3.0+6.0i -- unboxed literal
|
||||
TR opt: nested-unboxed-let.rkt 23:0 (let ((x (+ 1.0+2.0i 2.0+3.0i))) (let ((x (+ x 2.0+3.0i))) (+ x 3.0+6.0i))) -- unboxed let bindings
|
||||
TR opt: nested-unboxed-let.rkt 23:12 1.0+2.0i -- unboxed literal
|
||||
TR opt: nested-unboxed-let.rkt 23:21 2.0+3.0i -- unboxed literal
|
||||
TR opt: nested-unboxed-let.rkt 23:9 (+ 1.0+2.0i 2.0+3.0i) -- unboxed binary float complex
|
||||
TR opt: nested-unboxed-let.rkt 24:11 (+ x 2.0+3.0i) -- unboxed binary float complex
|
||||
TR opt: nested-unboxed-let.rkt 24:14 x -- leave var unboxed
|
||||
TR opt: nested-unboxed-let.rkt 24:16 2.0+3.0i -- unboxed literal
|
||||
TR opt: nested-unboxed-let.rkt 24:2 (let ((x (+ x 2.0+3.0i))) (+ x 3.0+6.0i)) -- unboxed let bindings
|
||||
TR opt: nested-unboxed-let.rkt 25:4 (+ x 3.0+6.0i) -- unboxed binary float complex
|
||||
TR opt: nested-unboxed-let.rkt 25:7 x -- leave var unboxed
|
||||
TR opt: nested-unboxed-let.rkt 25:9 3.0+6.0i -- unboxed literal
|
||||
END
|
||||
#<<END
|
||||
8.0+14.0i
|
||||
|
|
|
@ -1,20 +1,18 @@
|
|||
#;#;
|
||||
#<<END
|
||||
TR opt: real-part-loop.rkt 31:1 (let loop ((v 0.0+1.0i)) (if (> (real-part v) 70000.2) 0 (loop (+ v 3.6)))) -- unboxed call site
|
||||
TR opt: real-part-loop.rkt 31:13 v -- unboxed var -> table
|
||||
TR opt: real-part-loop.rkt 31:15 0.0+1.0i -- unboxed literal
|
||||
TR opt: real-part-loop.rkt 31:6 loop -- fun -> unboxed fun
|
||||
TR opt: real-part-loop.rkt 31:6 loop -- unboxed let loop
|
||||
TR opt: real-part-loop.rkt 32:20 v -- leave var unboxed
|
||||
TR opt: real-part-loop.rkt 32:20 v -- unbox float-complex
|
||||
TR opt: real-part-loop.rkt 32:6 (> (real-part v) 70000.2) -- binary float comp
|
||||
TR opt: real-part-loop.rkt 32:9 (real-part v) -- complex accessor elimination
|
||||
TR opt: real-part-loop.rkt 32:9 (real-part v) -- unboxed unary float complex
|
||||
TR opt: real-part-loop.rkt 34:12 (+ v 3.6) -- unboxed binary float complex
|
||||
TR opt: real-part-loop.rkt 34:15 v -- leave var unboxed
|
||||
TR opt: real-part-loop.rkt 34:17 3.6 -- float-arg-expr in complex ops
|
||||
TR opt: real-part-loop.rkt 34:6 (loop (+ v 3.6)) -- call to fun with unboxed args
|
||||
TR opt: real-part-loop.rkt 34:6 (loop (+ v 3.6)) -- unboxed call site
|
||||
TR opt: real-part-loop.rkt 29:1 (let loop ((v 0.0+1.0i)) (if (> (real-part v) 70000.2) 0 (loop (+ v 3.6)))) -- unboxed call site
|
||||
TR opt: real-part-loop.rkt 29:13 v -- unboxed var -> table
|
||||
TR opt: real-part-loop.rkt 29:15 0.0+1.0i -- unboxed literal
|
||||
TR opt: real-part-loop.rkt 29:6 loop -- fun -> unboxed fun
|
||||
TR opt: real-part-loop.rkt 29:6 loop -- unboxed let loop
|
||||
TR opt: real-part-loop.rkt 30:20 v -- leave var unboxed
|
||||
TR opt: real-part-loop.rkt 30:6 (> (real-part v) 70000.2) -- binary float comp
|
||||
TR opt: real-part-loop.rkt 30:9 (real-part v) -- complex accessor elimination
|
||||
TR opt: real-part-loop.rkt 32:12 (+ v 3.6) -- unboxed binary float complex
|
||||
TR opt: real-part-loop.rkt 32:15 v -- leave var unboxed
|
||||
TR opt: real-part-loop.rkt 32:17 3.6 -- float-arg-expr in complex ops
|
||||
TR opt: real-part-loop.rkt 32:6 (loop (+ v 3.6)) -- call to fun with unboxed args
|
||||
TR opt: real-part-loop.rkt 32:6 (loop (+ v 3.6)) -- unboxed call site
|
||||
END
|
||||
#<<END
|
||||
0
|
||||
|
|
|
@ -1,39 +1,25 @@
|
|||
#;#;
|
||||
#<<END
|
||||
TR opt: unboxed-for.rkt 43:0 #%module-begin -- in-list
|
||||
TR opt: unboxed-for.rkt 46:0 (for/fold: : Float-Complex ((sum : Float-Complex 0.0+0.0i)) ((i : Float-Complex (quote (1.0+2.0i 2.0+4.0i)))) (+ i sum)) -- call to fun with unboxed args
|
||||
TR opt: unboxed-for.rkt 46:0 (for/fold: : Float-Complex ((sum : Float-Complex 0.0+0.0i)) ((i : Float-Complex (quote (1.0+2.0i 2.0+4.0i)))) (+ i sum)) -- fun -> unboxed fun
|
||||
TR opt: unboxed-for.rkt 46:0 (for/fold: : Float-Complex ((sum : Float-Complex 0.0+0.0i)) ((i : Float-Complex (quote (1.0+2.0i 2.0+4.0i)))) (+ i sum)) -- unbox float-complex
|
||||
TR opt: unboxed-for.rkt 46:0 (for/fold: : Float-Complex ((sum : Float-Complex 0.0+0.0i)) ((i : Float-Complex (quote (1.0+2.0i 2.0+4.0i)))) (+ i sum)) -- unboxed call site
|
||||
TR opt: unboxed-for.rkt 46:0 (for/fold: : Float-Complex ((sum : Float-Complex 0.0+0.0i)) ((i : Float-Complex (quote (1.0+2.0i 2.0+4.0i)))) (+ i sum)) -- unboxed call site
|
||||
TR opt: unboxed-for.rkt 46:0 (for/fold: : Float-Complex ((sum : Float-Complex 0.0+0.0i)) ((i : Float-Complex (quote (1.0+2.0i 2.0+4.0i)))) (+ i sum)) -- unboxed let bindings
|
||||
TR opt: unboxed-for.rkt 46:0 (for/fold: : Float-Complex ((sum : Float-Complex 0.0+0.0i)) ((i : Float-Complex (quote (1.0+2.0i 2.0+4.0i)))) (+ i sum)) -- unboxed let bindings
|
||||
TR opt: unboxed-for.rkt 46:0 (for/fold: : Float-Complex ((sum : Float-Complex 0.0+0.0i)) ((i : Float-Complex (quote (1.0+2.0i 2.0+4.0i)))) (+ i sum)) -- unboxed let loop
|
||||
TR opt: unboxed-for.rkt 46:31 sum -- leave var unboxed
|
||||
TR opt: unboxed-for.rkt 46:31 sum -- unbox float-complex
|
||||
TR opt: unboxed-for.rkt 46:31 sum -- unboxed complex variable
|
||||
TR opt: unboxed-for.rkt 46:31 sum -- unboxed complex variable
|
||||
TR opt: unboxed-for.rkt 46:31 sum -- unboxed complex variable
|
||||
TR opt: unboxed-for.rkt 46:31 sum -- unboxed var -> table
|
||||
TR opt: unboxed-for.rkt 46:53 0.0+0.0i -- unboxed literal
|
||||
TR opt: unboxed-for.rkt 47:13 i -- unboxed complex variable
|
||||
TR opt: unboxed-for.rkt 47:13 i -- unboxed complex variable
|
||||
TR opt: unboxed-for.rkt 47:13 i -- unboxed complex variable
|
||||
TR opt: unboxed-for.rkt 48:11 sum -- leave var unboxed
|
||||
TR opt: unboxed-for.rkt 48:11 sum -- unbox float-complex
|
||||
TR opt: unboxed-for.rkt 48:11 sum -- unbox float-complex
|
||||
TR opt: unboxed-for.rkt 48:11 sum -- unbox float-complex
|
||||
TR opt: unboxed-for.rkt 48:11 sum -- unbox float-complex
|
||||
TR opt: unboxed-for.rkt 48:6 (+ i sum) -- unboxed binary float complex
|
||||
TR opt: unboxed-for.rkt 48:6 (+ i sum) -- unboxed binary float complex
|
||||
TR opt: unboxed-for.rkt 48:6 (+ i sum) -- unboxed binary float complex
|
||||
TR opt: unboxed-for.rkt 48:6 (+ i sum) -- unboxed binary float complex
|
||||
TR opt: unboxed-for.rkt 48:6 (+ i sum) -- unboxed binary float complex
|
||||
TR opt: unboxed-for.rkt 48:9 i -- leave var unboxed
|
||||
TR opt: unboxed-for.rkt 48:9 i -- leave var unboxed
|
||||
TR opt: unboxed-for.rkt 48:9 i -- unbox float-complex
|
||||
TR opt: unboxed-for.rkt 48:9 i -- unbox float-complex
|
||||
TR opt: unboxed-for.rkt 48:9 i -- unbox float-complex
|
||||
TR opt: unboxed-for.rkt 29:0 #%module-begin -- in-list
|
||||
TR opt: unboxed-for.rkt 32:0 (for/fold: : Float-Complex ((sum : Float-Complex 0.0+0.0i)) ((i : Float-Complex (quote (1.0+2.0i 2.0+4.0i)))) (+ i sum)) -- call to fun with unboxed args
|
||||
TR opt: unboxed-for.rkt 32:0 (for/fold: : Float-Complex ((sum : Float-Complex 0.0+0.0i)) ((i : Float-Complex (quote (1.0+2.0i 2.0+4.0i)))) (+ i sum)) -- fun -> unboxed fun
|
||||
TR opt: unboxed-for.rkt 32:0 (for/fold: : Float-Complex ((sum : Float-Complex 0.0+0.0i)) ((i : Float-Complex (quote (1.0+2.0i 2.0+4.0i)))) (+ i sum)) -- unbox float-complex
|
||||
TR opt: unboxed-for.rkt 32:0 (for/fold: : Float-Complex ((sum : Float-Complex 0.0+0.0i)) ((i : Float-Complex (quote (1.0+2.0i 2.0+4.0i)))) (+ i sum)) -- unboxed call site
|
||||
TR opt: unboxed-for.rkt 32:0 (for/fold: : Float-Complex ((sum : Float-Complex 0.0+0.0i)) ((i : Float-Complex (quote (1.0+2.0i 2.0+4.0i)))) (+ i sum)) -- unboxed call site
|
||||
TR opt: unboxed-for.rkt 32:0 (for/fold: : Float-Complex ((sum : Float-Complex 0.0+0.0i)) ((i : Float-Complex (quote (1.0+2.0i 2.0+4.0i)))) (+ i sum)) -- unboxed let bindings
|
||||
TR opt: unboxed-for.rkt 32:0 (for/fold: : Float-Complex ((sum : Float-Complex 0.0+0.0i)) ((i : Float-Complex (quote (1.0+2.0i 2.0+4.0i)))) (+ i sum)) -- unboxed let bindings
|
||||
TR opt: unboxed-for.rkt 32:0 (for/fold: : Float-Complex ((sum : Float-Complex 0.0+0.0i)) ((i : Float-Complex (quote (1.0+2.0i 2.0+4.0i)))) (+ i sum)) -- unboxed let loop
|
||||
TR opt: unboxed-for.rkt 32:31 sum -- leave var unboxed
|
||||
TR opt: unboxed-for.rkt 32:31 sum -- unbox float-complex
|
||||
TR opt: unboxed-for.rkt 32:31 sum -- unboxed complex variable
|
||||
TR opt: unboxed-for.rkt 32:31 sum -- unboxed complex variable
|
||||
TR opt: unboxed-for.rkt 32:31 sum -- unboxed var -> table
|
||||
TR opt: unboxed-for.rkt 32:53 0.0+0.0i -- unboxed literal
|
||||
TR opt: unboxed-for.rkt 33:13 i -- unboxed complex variable
|
||||
TR opt: unboxed-for.rkt 33:13 i -- unboxed complex variable
|
||||
TR opt: unboxed-for.rkt 34:11 sum -- leave var unboxed
|
||||
TR opt: unboxed-for.rkt 34:6 (+ i sum) -- unboxed binary float complex
|
||||
TR opt: unboxed-for.rkt 34:9 i -- leave var unboxed
|
||||
END
|
||||
#<<END
|
||||
3.0+6.0i
|
||||
|
|
|
@ -1,18 +1,15 @@
|
|||
#;#;
|
||||
#<<END
|
||||
TR opt: unboxed-let-functions1.rkt 26:20 x -- unboxed var -> table
|
||||
TR opt: unboxed-let-functions1.rkt 26:42 (+ x 3.0+6.0i) -- unboxed binary float complex
|
||||
TR opt: unboxed-let-functions1.rkt 26:42 (+ x 3.0+6.0i) -- unboxed binary float complex
|
||||
TR opt: unboxed-let-functions1.rkt 26:45 x -- leave var unboxed
|
||||
TR opt: unboxed-let-functions1.rkt 26:45 x -- unbox float-complex
|
||||
TR opt: unboxed-let-functions1.rkt 26:47 3.0+6.0i -- unboxed literal
|
||||
TR opt: unboxed-let-functions1.rkt 26:47 3.0+6.0i -- unboxed literal
|
||||
TR opt: unboxed-let-functions1.rkt 26:7 f -- fun -> unboxed fun
|
||||
TR opt: unboxed-let-functions1.rkt 27:17 2.0+4.0i -- unboxed literal
|
||||
TR opt: unboxed-let-functions1.rkt 27:2 (f (+ 1.0+2.0i 2.0+4.0i)) -- call to fun with unboxed args
|
||||
TR opt: unboxed-let-functions1.rkt 27:2 (f (+ 1.0+2.0i 2.0+4.0i)) -- unboxed call site
|
||||
TR opt: unboxed-let-functions1.rkt 27:5 (+ 1.0+2.0i 2.0+4.0i) -- unboxed binary float complex
|
||||
TR opt: unboxed-let-functions1.rkt 27:8 1.0+2.0i -- unboxed literal
|
||||
TR opt: unboxed-let-functions1.rkt 23:20 x -- unboxed var -> table
|
||||
TR opt: unboxed-let-functions1.rkt 23:42 (+ x 3.0+6.0i) -- unboxed binary float complex
|
||||
TR opt: unboxed-let-functions1.rkt 23:45 x -- leave var unboxed
|
||||
TR opt: unboxed-let-functions1.rkt 23:47 3.0+6.0i -- unboxed literal
|
||||
TR opt: unboxed-let-functions1.rkt 23:7 f -- fun -> unboxed fun
|
||||
TR opt: unboxed-let-functions1.rkt 24:17 2.0+4.0i -- unboxed literal
|
||||
TR opt: unboxed-let-functions1.rkt 24:2 (f (+ 1.0+2.0i 2.0+4.0i)) -- call to fun with unboxed args
|
||||
TR opt: unboxed-let-functions1.rkt 24:2 (f (+ 1.0+2.0i 2.0+4.0i)) -- unboxed call site
|
||||
TR opt: unboxed-let-functions1.rkt 24:5 (+ 1.0+2.0i 2.0+4.0i) -- unboxed binary float complex
|
||||
TR opt: unboxed-let-functions1.rkt 24:8 1.0+2.0i -- unboxed literal
|
||||
END
|
||||
#<<END
|
||||
6.0+12.0i
|
||||
|
|
|
@ -1,23 +1,17 @@
|
|||
#;#;
|
||||
#<<END
|
||||
TR opt: unboxed-let-functions2.rkt 31:20 x -- unboxed var -> table
|
||||
TR opt: unboxed-let-functions2.rkt 31:42 y -- unboxed var -> table
|
||||
TR opt: unboxed-let-functions2.rkt 31:7 f -- fun -> unboxed fun
|
||||
TR opt: unboxed-let-functions2.rkt 32:18 (+ x y) -- unboxed binary float complex
|
||||
TR opt: unboxed-let-functions2.rkt 32:18 (+ x y) -- unboxed binary float complex
|
||||
TR opt: unboxed-let-functions2.rkt 32:18 (+ x y) -- unboxed binary float complex
|
||||
TR opt: unboxed-let-functions2.rkt 32:21 x -- leave var unboxed
|
||||
TR opt: unboxed-let-functions2.rkt 32:21 x -- unbox float-complex
|
||||
TR opt: unboxed-let-functions2.rkt 32:21 x -- unbox float-complex
|
||||
TR opt: unboxed-let-functions2.rkt 32:23 y -- leave var unboxed
|
||||
TR opt: unboxed-let-functions2.rkt 32:23 y -- unbox float-complex
|
||||
TR opt: unboxed-let-functions2.rkt 32:23 y -- unbox float-complex
|
||||
TR opt: unboxed-let-functions2.rkt 33:17 2.0+4.0i -- unboxed literal
|
||||
TR opt: unboxed-let-functions2.rkt 33:2 (f (+ 1.0+2.0i 2.0+4.0i) 3.0+6.0i) -- call to fun with unboxed args
|
||||
TR opt: unboxed-let-functions2.rkt 33:2 (f (+ 1.0+2.0i 2.0+4.0i) 3.0+6.0i) -- unboxed call site
|
||||
TR opt: unboxed-let-functions2.rkt 33:5 (+ 1.0+2.0i 2.0+4.0i) -- unboxed binary float complex
|
||||
TR opt: unboxed-let-functions2.rkt 33:8 1.0+2.0i -- unboxed literal
|
||||
TR opt: unboxed-let-functions2.rkt 34:5 3.0+6.0i -- unboxed literal
|
||||
TR opt: unboxed-let-functions2.rkt 25:20 x -- unboxed var -> table
|
||||
TR opt: unboxed-let-functions2.rkt 25:42 y -- unboxed var -> table
|
||||
TR opt: unboxed-let-functions2.rkt 25:7 f -- fun -> unboxed fun
|
||||
TR opt: unboxed-let-functions2.rkt 26:18 (+ x y) -- unboxed binary float complex
|
||||
TR opt: unboxed-let-functions2.rkt 26:21 x -- leave var unboxed
|
||||
TR opt: unboxed-let-functions2.rkt 26:23 y -- leave var unboxed
|
||||
TR opt: unboxed-let-functions2.rkt 27:17 2.0+4.0i -- unboxed literal
|
||||
TR opt: unboxed-let-functions2.rkt 27:2 (f (+ 1.0+2.0i 2.0+4.0i) 3.0+6.0i) -- call to fun with unboxed args
|
||||
TR opt: unboxed-let-functions2.rkt 27:2 (f (+ 1.0+2.0i 2.0+4.0i) 3.0+6.0i) -- unboxed call site
|
||||
TR opt: unboxed-let-functions2.rkt 27:5 (+ 1.0+2.0i 2.0+4.0i) -- unboxed binary float complex
|
||||
TR opt: unboxed-let-functions2.rkt 27:8 1.0+2.0i -- unboxed literal
|
||||
TR opt: unboxed-let-functions2.rkt 28:5 3.0+6.0i -- unboxed literal
|
||||
END
|
||||
#<<END
|
||||
6.0+12.0i
|
||||
|
|
|
@ -1,18 +1,15 @@
|
|||
#;#;
|
||||
#<<END
|
||||
TR opt: unboxed-let-functions3.rkt 26:20 x -- unboxed var -> table
|
||||
TR opt: unboxed-let-functions3.rkt 26:7 f -- fun -> unboxed fun
|
||||
TR opt: unboxed-let-functions3.rkt 27:18 (+ x y) -- unboxed binary float complex
|
||||
TR opt: unboxed-let-functions3.rkt 27:18 (+ x y) -- unboxed binary float complex
|
||||
TR opt: unboxed-let-functions3.rkt 27:21 x -- leave var unboxed
|
||||
TR opt: unboxed-let-functions3.rkt 27:21 x -- unbox float-complex
|
||||
TR opt: unboxed-let-functions3.rkt 27:23 y -- float-arg-expr in complex ops
|
||||
TR opt: unboxed-let-functions3.rkt 27:23 y -- float-arg-expr in complex ops
|
||||
TR opt: unboxed-let-functions3.rkt 28:17 2.0+4.0i -- unboxed literal
|
||||
TR opt: unboxed-let-functions3.rkt 28:2 (f (+ 1.0+2.0i 2.0+4.0i) 3.0) -- call to fun with unboxed args
|
||||
TR opt: unboxed-let-functions3.rkt 28:2 (f (+ 1.0+2.0i 2.0+4.0i) 3.0) -- unboxed call site
|
||||
TR opt: unboxed-let-functions3.rkt 28:5 (+ 1.0+2.0i 2.0+4.0i) -- unboxed binary float complex
|
||||
TR opt: unboxed-let-functions3.rkt 28:8 1.0+2.0i -- unboxed literal
|
||||
TR opt: unboxed-let-functions3.rkt 23:20 x -- unboxed var -> table
|
||||
TR opt: unboxed-let-functions3.rkt 23:7 f -- fun -> unboxed fun
|
||||
TR opt: unboxed-let-functions3.rkt 24:18 (+ x y) -- unboxed binary float complex
|
||||
TR opt: unboxed-let-functions3.rkt 24:21 x -- leave var unboxed
|
||||
TR opt: unboxed-let-functions3.rkt 24:23 y -- float-arg-expr in complex ops
|
||||
TR opt: unboxed-let-functions3.rkt 25:17 2.0+4.0i -- unboxed literal
|
||||
TR opt: unboxed-let-functions3.rkt 25:2 (f (+ 1.0+2.0i 2.0+4.0i) 3.0) -- call to fun with unboxed args
|
||||
TR opt: unboxed-let-functions3.rkt 25:2 (f (+ 1.0+2.0i 2.0+4.0i) 3.0) -- unboxed call site
|
||||
TR opt: unboxed-let-functions3.rkt 25:5 (+ 1.0+2.0i 2.0+4.0i) -- unboxed binary float complex
|
||||
TR opt: unboxed-let-functions3.rkt 25:8 1.0+2.0i -- unboxed literal
|
||||
END
|
||||
#<<END
|
||||
6.0+6.0i
|
||||
|
|
|
@ -1,18 +1,15 @@
|
|||
#;#;
|
||||
#<<END
|
||||
TR opt: unboxed-let-functions4.rkt 26:32 x -- unboxed var -> table
|
||||
TR opt: unboxed-let-functions4.rkt 26:7 f -- fun -> unboxed fun
|
||||
TR opt: unboxed-let-functions4.rkt 27:18 (+ x y) -- unboxed binary float complex
|
||||
TR opt: unboxed-let-functions4.rkt 27:18 (+ x y) -- unboxed binary float complex
|
||||
TR opt: unboxed-let-functions4.rkt 27:21 x -- leave var unboxed
|
||||
TR opt: unboxed-let-functions4.rkt 27:21 x -- unbox float-complex
|
||||
TR opt: unboxed-let-functions4.rkt 27:23 y -- float-arg-expr in complex ops
|
||||
TR opt: unboxed-let-functions4.rkt 27:23 y -- float-arg-expr in complex ops
|
||||
TR opt: unboxed-let-functions4.rkt 28:2 (f 3.0 (+ 1.0+2.0i 2.0+4.0i)) -- call to fun with unboxed args
|
||||
TR opt: unboxed-let-functions4.rkt 28:2 (f 3.0 (+ 1.0+2.0i 2.0+4.0i)) -- unboxed call site
|
||||
TR opt: unboxed-let-functions4.rkt 29:17 2.0+4.0i -- unboxed literal
|
||||
TR opt: unboxed-let-functions4.rkt 29:5 (+ 1.0+2.0i 2.0+4.0i) -- unboxed binary float complex
|
||||
TR opt: unboxed-let-functions4.rkt 29:8 1.0+2.0i -- unboxed literal
|
||||
TR opt: unboxed-let-functions4.rkt 23:32 x -- unboxed var -> table
|
||||
TR opt: unboxed-let-functions4.rkt 23:7 f -- fun -> unboxed fun
|
||||
TR opt: unboxed-let-functions4.rkt 24:18 (+ x y) -- unboxed binary float complex
|
||||
TR opt: unboxed-let-functions4.rkt 24:21 x -- leave var unboxed
|
||||
TR opt: unboxed-let-functions4.rkt 24:23 y -- float-arg-expr in complex ops
|
||||
TR opt: unboxed-let-functions4.rkt 25:2 (f 3.0 (+ 1.0+2.0i 2.0+4.0i)) -- call to fun with unboxed args
|
||||
TR opt: unboxed-let-functions4.rkt 25:2 (f 3.0 (+ 1.0+2.0i 2.0+4.0i)) -- unboxed call site
|
||||
TR opt: unboxed-let-functions4.rkt 26:17 2.0+4.0i -- unboxed literal
|
||||
TR opt: unboxed-let-functions4.rkt 26:5 (+ 1.0+2.0i 2.0+4.0i) -- unboxed binary float complex
|
||||
TR opt: unboxed-let-functions4.rkt 26:8 1.0+2.0i -- unboxed literal
|
||||
END
|
||||
#<<END
|
||||
6.0+6.0i
|
||||
|
|
|
@ -1,23 +1,20 @@
|
|||
#;#;
|
||||
#<<END
|
||||
TR opt: unboxed-let-functions6.rkt 30:0 (let: loop : Float-Complex ((z : Float-Complex 0.0+0.0i) (l : (Listof Integer) (quote (1 2 3)))) (if (null? l) (+ z 0.0+1.0i) (loop (+ z (car l)) (cdr l)))) -- unboxed call site
|
||||
TR opt: unboxed-let-functions6.rkt 30:31 z -- unboxed var -> table
|
||||
TR opt: unboxed-let-functions6.rkt 30:51 0.0+0.0i -- unboxed literal
|
||||
TR opt: unboxed-let-functions6.rkt 30:6 loop -- fun -> unboxed fun
|
||||
TR opt: unboxed-let-functions6.rkt 30:6 loop -- unboxed let loop
|
||||
TR opt: unboxed-let-functions6.rkt 33:10 (+ z 0.0+1.0i) -- unboxed binary float complex
|
||||
TR opt: unboxed-let-functions6.rkt 33:10 (+ z 0.0+1.0i) -- unboxed binary float complex
|
||||
TR opt: unboxed-let-functions6.rkt 33:13 z -- leave var unboxed
|
||||
TR opt: unboxed-let-functions6.rkt 33:13 z -- unbox float-complex
|
||||
TR opt: unboxed-let-functions6.rkt 33:15 0.0+1.0i -- unboxed literal
|
||||
TR opt: unboxed-let-functions6.rkt 33:15 0.0+1.0i -- unboxed literal
|
||||
TR opt: unboxed-let-functions6.rkt 34:10 (loop (+ z (car l)) (cdr l)) -- call to fun with unboxed args
|
||||
TR opt: unboxed-let-functions6.rkt 34:10 (loop (+ z (car l)) (cdr l)) -- unboxed call site
|
||||
TR opt: unboxed-let-functions6.rkt 34:16 (+ z (car l)) -- unboxed binary float complex
|
||||
TR opt: unboxed-let-functions6.rkt 34:19 z -- leave var unboxed
|
||||
TR opt: unboxed-let-functions6.rkt 34:21 (car l) -- float-arg-expr in complex ops
|
||||
TR opt: unboxed-let-functions6.rkt 34:21 (car l) -- pair
|
||||
TR opt: unboxed-let-functions6.rkt 35:16 (cdr l) -- pair
|
||||
TR opt: unboxed-let-functions6.rkt 27:0 (let: loop : Float-Complex ((z : Float-Complex 0.0+0.0i) (l : (Listof Integer) (quote (1 2 3)))) (if (null? l) (+ z 0.0+1.0i) (loop (+ z (car l)) (cdr l)))) -- unboxed call site
|
||||
TR opt: unboxed-let-functions6.rkt 27:31 z -- unboxed var -> table
|
||||
TR opt: unboxed-let-functions6.rkt 27:51 0.0+0.0i -- unboxed literal
|
||||
TR opt: unboxed-let-functions6.rkt 27:6 loop -- fun -> unboxed fun
|
||||
TR opt: unboxed-let-functions6.rkt 27:6 loop -- unboxed let loop
|
||||
TR opt: unboxed-let-functions6.rkt 30:10 (+ z 0.0+1.0i) -- unboxed binary float complex
|
||||
TR opt: unboxed-let-functions6.rkt 30:13 z -- leave var unboxed
|
||||
TR opt: unboxed-let-functions6.rkt 30:15 0.0+1.0i -- unboxed literal
|
||||
TR opt: unboxed-let-functions6.rkt 31:10 (loop (+ z (car l)) (cdr l)) -- call to fun with unboxed args
|
||||
TR opt: unboxed-let-functions6.rkt 31:10 (loop (+ z (car l)) (cdr l)) -- unboxed call site
|
||||
TR opt: unboxed-let-functions6.rkt 31:16 (+ z (car l)) -- unboxed binary float complex
|
||||
TR opt: unboxed-let-functions6.rkt 31:19 z -- leave var unboxed
|
||||
TR opt: unboxed-let-functions6.rkt 31:21 (car l) -- float-arg-expr in complex ops
|
||||
TR opt: unboxed-let-functions6.rkt 31:21 (car l) -- pair
|
||||
TR opt: unboxed-let-functions6.rkt 32:16 (cdr l) -- pair
|
||||
END
|
||||
#<<END
|
||||
6.0+1.0i
|
||||
|
|
|
@ -1,22 +1,18 @@
|
|||
#;#;
|
||||
#<<END
|
||||
TR opt: unboxed-let-functions7.rkt 30:0 (let: loop : Float-Complex ((z : Float-Complex 0.0+0.0i) (l : (Listof Integer) (quote (1 2 3)))) (if (null? l) z (loop (+ z (car l)) (cdr l)))) -- unboxed call site
|
||||
TR opt: unboxed-let-functions7.rkt 30:31 z -- unboxed var -> table
|
||||
TR opt: unboxed-let-functions7.rkt 30:51 0.0+0.0i -- unboxed literal
|
||||
TR opt: unboxed-let-functions7.rkt 30:6 loop -- fun -> unboxed fun
|
||||
TR opt: unboxed-let-functions7.rkt 30:6 loop -- unboxed let loop
|
||||
TR opt: unboxed-let-functions7.rkt 33:6 z -- unboxed complex variable
|
||||
TR opt: unboxed-let-functions7.rkt 34:12 (+ z (car l)) -- unboxed binary float complex
|
||||
TR opt: unboxed-let-functions7.rkt 34:12 (+ z (car l)) -- unboxed binary float complex
|
||||
TR opt: unboxed-let-functions7.rkt 34:15 z -- leave var unboxed
|
||||
TR opt: unboxed-let-functions7.rkt 34:15 z -- unbox float-complex
|
||||
TR opt: unboxed-let-functions7.rkt 34:17 (car l) -- float-arg-expr in complex ops
|
||||
TR opt: unboxed-let-functions7.rkt 34:17 (car l) -- float-arg-expr in complex ops
|
||||
TR opt: unboxed-let-functions7.rkt 34:17 (car l) -- pair
|
||||
TR opt: unboxed-let-functions7.rkt 34:17 (car l) -- pair
|
||||
TR opt: unboxed-let-functions7.rkt 34:6 (loop (+ z (car l)) (cdr l)) -- call to fun with unboxed args
|
||||
TR opt: unboxed-let-functions7.rkt 34:6 (loop (+ z (car l)) (cdr l)) -- unboxed call site
|
||||
TR opt: unboxed-let-functions7.rkt 35:12 (cdr l) -- pair
|
||||
TR opt: unboxed-let-functions7.rkt 26:0 (let: loop : Float-Complex ((z : Float-Complex 0.0+0.0i) (l : (Listof Integer) (quote (1 2 3)))) (if (null? l) z (loop (+ z (car l)) (cdr l)))) -- unboxed call site
|
||||
TR opt: unboxed-let-functions7.rkt 26:31 z -- unboxed var -> table
|
||||
TR opt: unboxed-let-functions7.rkt 26:51 0.0+0.0i -- unboxed literal
|
||||
TR opt: unboxed-let-functions7.rkt 26:6 loop -- fun -> unboxed fun
|
||||
TR opt: unboxed-let-functions7.rkt 26:6 loop -- unboxed let loop
|
||||
TR opt: unboxed-let-functions7.rkt 29:6 z -- unboxed complex variable
|
||||
TR opt: unboxed-let-functions7.rkt 30:12 (+ z (car l)) -- unboxed binary float complex
|
||||
TR opt: unboxed-let-functions7.rkt 30:15 z -- leave var unboxed
|
||||
TR opt: unboxed-let-functions7.rkt 30:17 (car l) -- float-arg-expr in complex ops
|
||||
TR opt: unboxed-let-functions7.rkt 30:17 (car l) -- pair
|
||||
TR opt: unboxed-let-functions7.rkt 30:6 (loop (+ z (car l)) (cdr l)) -- call to fun with unboxed args
|
||||
TR opt: unboxed-let-functions7.rkt 30:6 (loop (+ z (car l)) (cdr l)) -- unboxed call site
|
||||
TR opt: unboxed-let-functions7.rkt 31:12 (cdr l) -- pair
|
||||
END
|
||||
#<<END
|
||||
6.0+0.0i
|
||||
|
|
|
@ -1,27 +1,18 @@
|
|||
#;#;
|
||||
#<<END
|
||||
TR opt: unboxed-let.rkt 36:0 (let* ((t1 (+ 1.0+2.0i 2.0+4.0i)) (t2 (- t1 3.0+6.0i)) (t3 4.0+8.0i)) (+ t2 t3)) -- unboxed let bindings
|
||||
TR opt: unboxed-let.rkt 36:0 (let* ((t1 (+ 1.0+2.0i 2.0+4.0i)) (t2 (- t1 3.0+6.0i)) (t3 4.0+8.0i)) (+ t2 t3)) -- unboxed let bindings
|
||||
TR opt: unboxed-let.rkt 36:0 (let* ((t1 (+ 1.0+2.0i 2.0+4.0i)) (t2 (- t1 3.0+6.0i)) (t3 4.0+8.0i)) (+ t2 t3)) -- unboxed let bindings
|
||||
TR opt: unboxed-let.rkt 36:11 (+ 1.0+2.0i 2.0+4.0i) -- unboxed binary float complex
|
||||
TR opt: unboxed-let.rkt 36:14 1.0+2.0i -- unboxed literal
|
||||
TR opt: unboxed-let.rkt 36:23 2.0+4.0i -- unboxed literal
|
||||
TR opt: unboxed-let.rkt 37:11 (- t1 3.0+6.0i) -- unboxed binary float complex
|
||||
TR opt: unboxed-let.rkt 37:11 (- t1 3.0+6.0i) -- unboxed binary float complex
|
||||
TR opt: unboxed-let.rkt 37:14 t1 -- leave var unboxed
|
||||
TR opt: unboxed-let.rkt 37:14 t1 -- unbox float-complex
|
||||
TR opt: unboxed-let.rkt 37:17 3.0+6.0i -- unboxed literal
|
||||
TR opt: unboxed-let.rkt 37:17 3.0+6.0i -- unboxed literal
|
||||
TR opt: unboxed-let.rkt 38:11 4.0+8.0i -- unboxed literal
|
||||
TR opt: unboxed-let.rkt 39:2 (+ t2 t3) -- unboxed binary float complex
|
||||
TR opt: unboxed-let.rkt 39:2 (+ t2 t3) -- unboxed binary float complex
|
||||
TR opt: unboxed-let.rkt 39:2 (+ t2 t3) -- unboxed binary float complex
|
||||
TR opt: unboxed-let.rkt 39:5 t2 -- leave var unboxed
|
||||
TR opt: unboxed-let.rkt 39:5 t2 -- leave var unboxed
|
||||
TR opt: unboxed-let.rkt 39:5 t2 -- unbox float-complex
|
||||
TR opt: unboxed-let.rkt 39:8 t3 -- leave var unboxed
|
||||
TR opt: unboxed-let.rkt 39:8 t3 -- unbox float-complex
|
||||
TR opt: unboxed-let.rkt 39:8 t3 -- unbox float-complex
|
||||
TR opt: unboxed-let.rkt 27:0 (let* ((t1 (+ 1.0+2.0i 2.0+4.0i)) (t2 (- t1 3.0+6.0i)) (t3 4.0+8.0i)) (+ t2 t3)) -- unboxed let bindings
|
||||
TR opt: unboxed-let.rkt 27:0 (let* ((t1 (+ 1.0+2.0i 2.0+4.0i)) (t2 (- t1 3.0+6.0i)) (t3 4.0+8.0i)) (+ t2 t3)) -- unboxed let bindings
|
||||
TR opt: unboxed-let.rkt 27:0 (let* ((t1 (+ 1.0+2.0i 2.0+4.0i)) (t2 (- t1 3.0+6.0i)) (t3 4.0+8.0i)) (+ t2 t3)) -- unboxed let bindings
|
||||
TR opt: unboxed-let.rkt 27:11 (+ 1.0+2.0i 2.0+4.0i) -- unboxed binary float complex
|
||||
TR opt: unboxed-let.rkt 27:14 1.0+2.0i -- unboxed literal
|
||||
TR opt: unboxed-let.rkt 27:23 2.0+4.0i -- unboxed literal
|
||||
TR opt: unboxed-let.rkt 28:11 (- t1 3.0+6.0i) -- unboxed binary float complex
|
||||
TR opt: unboxed-let.rkt 28:14 t1 -- leave var unboxed
|
||||
TR opt: unboxed-let.rkt 28:17 3.0+6.0i -- unboxed literal
|
||||
TR opt: unboxed-let.rkt 29:11 4.0+8.0i -- unboxed literal
|
||||
TR opt: unboxed-let.rkt 30:2 (+ t2 t3) -- unboxed binary float complex
|
||||
TR opt: unboxed-let.rkt 30:5 t2 -- leave var unboxed
|
||||
TR opt: unboxed-let.rkt 30:8 t3 -- leave var unboxed
|
||||
END
|
||||
#<<END
|
||||
4.0+8.0i
|
||||
|
|
|
@ -1,21 +1,15 @@
|
|||
#;#;
|
||||
#<<END
|
||||
TR opt: unboxed-let2.rkt 28:0 (let ((t1 (+ 1.0+2.0i 2.0+4.0i)) (t2 (+ 3.0+6.0i 4.0+8.0i))) (+ t1 t2)) -- unboxed let bindings
|
||||
TR opt: unboxed-let2.rkt 28:10 (+ 1.0+2.0i 2.0+4.0i) -- unboxed binary float complex
|
||||
TR opt: unboxed-let2.rkt 28:13 1.0+2.0i -- unboxed literal
|
||||
TR opt: unboxed-let2.rkt 28:22 2.0+4.0i -- unboxed literal
|
||||
TR opt: unboxed-let2.rkt 29:10 (+ 3.0+6.0i 4.0+8.0i) -- unboxed binary float complex
|
||||
TR opt: unboxed-let2.rkt 29:13 3.0+6.0i -- unboxed literal
|
||||
TR opt: unboxed-let2.rkt 29:22 4.0+8.0i -- unboxed literal
|
||||
TR opt: unboxed-let2.rkt 30:2 (+ t1 t2) -- unboxed binary float complex
|
||||
TR opt: unboxed-let2.rkt 30:2 (+ t1 t2) -- unboxed binary float complex
|
||||
TR opt: unboxed-let2.rkt 30:2 (+ t1 t2) -- unboxed binary float complex
|
||||
TR opt: unboxed-let2.rkt 30:5 t1 -- leave var unboxed
|
||||
TR opt: unboxed-let2.rkt 30:5 t1 -- unbox float-complex
|
||||
TR opt: unboxed-let2.rkt 30:5 t1 -- unbox float-complex
|
||||
TR opt: unboxed-let2.rkt 30:8 t2 -- leave var unboxed
|
||||
TR opt: unboxed-let2.rkt 30:8 t2 -- unbox float-complex
|
||||
TR opt: unboxed-let2.rkt 30:8 t2 -- unbox float-complex
|
||||
TR opt: unboxed-let2.rkt 22:0 (let ((t1 (+ 1.0+2.0i 2.0+4.0i)) (t2 (+ 3.0+6.0i 4.0+8.0i))) (+ t1 t2)) -- unboxed let bindings
|
||||
TR opt: unboxed-let2.rkt 22:10 (+ 1.0+2.0i 2.0+4.0i) -- unboxed binary float complex
|
||||
TR opt: unboxed-let2.rkt 22:13 1.0+2.0i -- unboxed literal
|
||||
TR opt: unboxed-let2.rkt 22:22 2.0+4.0i -- unboxed literal
|
||||
TR opt: unboxed-let2.rkt 23:10 (+ 3.0+6.0i 4.0+8.0i) -- unboxed binary float complex
|
||||
TR opt: unboxed-let2.rkt 23:13 3.0+6.0i -- unboxed literal
|
||||
TR opt: unboxed-let2.rkt 23:22 4.0+8.0i -- unboxed literal
|
||||
TR opt: unboxed-let2.rkt 24:2 (+ t1 t2) -- unboxed binary float complex
|
||||
TR opt: unboxed-let2.rkt 24:5 t1 -- leave var unboxed
|
||||
TR opt: unboxed-let2.rkt 24:8 t2 -- leave var unboxed
|
||||
END
|
||||
#<<END
|
||||
10.0+20.0i
|
||||
|
|
|
@ -1,16 +1,13 @@
|
|||
#;#;
|
||||
#<<END
|
||||
TR opt: unboxed-let3.rkt 30:0 (let ((x (+ 1.0+2.0i 2.0+4.0i))) (if (even? 2) x (+ x 2.0+4.0i))) -- unboxed let bindings
|
||||
TR opt: unboxed-let3.rkt 30:12 1.0+2.0i -- unboxed literal
|
||||
TR opt: unboxed-let3.rkt 30:21 2.0+4.0i -- unboxed literal
|
||||
TR opt: unboxed-let3.rkt 30:9 (+ 1.0+2.0i 2.0+4.0i) -- unboxed binary float complex
|
||||
TR opt: unboxed-let3.rkt 32:6 x -- unboxed complex variable
|
||||
TR opt: unboxed-let3.rkt 33:11 2.0+4.0i -- unboxed literal
|
||||
TR opt: unboxed-let3.rkt 33:11 2.0+4.0i -- unboxed literal
|
||||
TR opt: unboxed-let3.rkt 33:6 (+ x 2.0+4.0i) -- unboxed binary float complex
|
||||
TR opt: unboxed-let3.rkt 33:6 (+ x 2.0+4.0i) -- unboxed binary float complex
|
||||
TR opt: unboxed-let3.rkt 33:9 x -- leave var unboxed
|
||||
TR opt: unboxed-let3.rkt 33:9 x -- unbox float-complex
|
||||
TR opt: unboxed-let3.rkt 27:0 (let ((x (+ 1.0+2.0i 2.0+4.0i))) (if (even? 2) x (+ x 2.0+4.0i))) -- unboxed let bindings
|
||||
TR opt: unboxed-let3.rkt 27:12 1.0+2.0i -- unboxed literal
|
||||
TR opt: unboxed-let3.rkt 27:21 2.0+4.0i -- unboxed literal
|
||||
TR opt: unboxed-let3.rkt 27:9 (+ 1.0+2.0i 2.0+4.0i) -- unboxed binary float complex
|
||||
TR opt: unboxed-let3.rkt 29:6 x -- unboxed complex variable
|
||||
TR opt: unboxed-let3.rkt 30:11 2.0+4.0i -- unboxed literal
|
||||
TR opt: unboxed-let3.rkt 30:6 (+ x 2.0+4.0i) -- unboxed binary float complex
|
||||
TR opt: unboxed-let3.rkt 30:9 x -- leave var unboxed
|
||||
END
|
||||
#<<END
|
||||
3.0+6.0i
|
||||
|
|
|
@ -1,15 +1,12 @@
|
|||
#;#;
|
||||
#<<END
|
||||
TR opt: unboxed-letrec-syntaxes+values.rkt 22:0 (letrec-syntaxes+values (((s) (syntax-rules () ((_ x) x)))) (((x) (+ 1.0+2.0i 2.0+4.0i))) (+ x 2.0+4.0i)) -- unboxed let bindings
|
||||
TR opt: unboxed-letrec-syntaxes+values.rkt 23:30 (+ 1.0+2.0i 2.0+4.0i) -- unboxed binary float complex
|
||||
TR opt: unboxed-letrec-syntaxes+values.rkt 23:33 1.0+2.0i -- unboxed literal
|
||||
TR opt: unboxed-letrec-syntaxes+values.rkt 23:42 2.0+4.0i -- unboxed literal
|
||||
TR opt: unboxed-letrec-syntaxes+values.rkt 24:24 (+ x 2.0+4.0i) -- unboxed binary float complex
|
||||
TR opt: unboxed-letrec-syntaxes+values.rkt 24:24 (+ x 2.0+4.0i) -- unboxed binary float complex
|
||||
TR opt: unboxed-letrec-syntaxes+values.rkt 24:27 x -- leave var unboxed
|
||||
TR opt: unboxed-letrec-syntaxes+values.rkt 24:27 x -- unbox float-complex
|
||||
TR opt: unboxed-letrec-syntaxes+values.rkt 24:29 2.0+4.0i -- unboxed literal
|
||||
TR opt: unboxed-letrec-syntaxes+values.rkt 24:29 2.0+4.0i -- unboxed literal
|
||||
TR opt: unboxed-letrec-syntaxes+values.rkt 19:0 (letrec-syntaxes+values (((s) (syntax-rules () ((_ x) x)))) (((x) (+ 1.0+2.0i 2.0+4.0i))) (+ x 2.0+4.0i)) -- unboxed let bindings
|
||||
TR opt: unboxed-letrec-syntaxes+values.rkt 20:30 (+ 1.0+2.0i 2.0+4.0i) -- unboxed binary float complex
|
||||
TR opt: unboxed-letrec-syntaxes+values.rkt 20:33 1.0+2.0i -- unboxed literal
|
||||
TR opt: unboxed-letrec-syntaxes+values.rkt 20:42 2.0+4.0i -- unboxed literal
|
||||
TR opt: unboxed-letrec-syntaxes+values.rkt 21:24 (+ x 2.0+4.0i) -- unboxed binary float complex
|
||||
TR opt: unboxed-letrec-syntaxes+values.rkt 21:27 x -- leave var unboxed
|
||||
TR opt: unboxed-letrec-syntaxes+values.rkt 21:29 2.0+4.0i -- unboxed literal
|
||||
END
|
||||
#<<END
|
||||
5.0+10.0i
|
||||
|
|
|
@ -1,19 +1,13 @@
|
|||
#;#;
|
||||
#<<END
|
||||
TR opt: unboxed-letrec.rkt 28:0 (letrec: ((f : (Any -> Any) (lambda: ((x : Any)) (f x))) (x : Float-Complex 1.0+2.0i) (y : Float-Complex (+ 2.0+4.0i 3.0+6.0i))) (+ x y)) -- unboxed let bindings
|
||||
TR opt: unboxed-letrec.rkt 29:31 1.0+2.0i -- unboxed literal
|
||||
TR opt: unboxed-letrec.rkt 30:31 (+ 2.0+4.0i 3.0+6.0i) -- unboxed binary float complex
|
||||
TR opt: unboxed-letrec.rkt 30:34 2.0+4.0i -- unboxed literal
|
||||
TR opt: unboxed-letrec.rkt 30:43 3.0+6.0i -- unboxed literal
|
||||
TR opt: unboxed-letrec.rkt 31:2 (+ x y) -- unboxed binary float complex
|
||||
TR opt: unboxed-letrec.rkt 31:2 (+ x y) -- unboxed binary float complex
|
||||
TR opt: unboxed-letrec.rkt 31:2 (+ x y) -- unboxed binary float complex
|
||||
TR opt: unboxed-letrec.rkt 31:5 x -- leave var unboxed
|
||||
TR opt: unboxed-letrec.rkt 31:5 x -- unbox float-complex
|
||||
TR opt: unboxed-letrec.rkt 31:5 x -- unbox float-complex
|
||||
TR opt: unboxed-letrec.rkt 31:7 y -- leave var unboxed
|
||||
TR opt: unboxed-letrec.rkt 31:7 y -- unbox float-complex
|
||||
TR opt: unboxed-letrec.rkt 31:7 y -- unbox float-complex
|
||||
TR opt: unboxed-letrec.rkt 22:0 (letrec: ((f : (Any -> Any) (lambda: ((x : Any)) (f x))) (x : Float-Complex 1.0+2.0i) (y : Float-Complex (+ 2.0+4.0i 3.0+6.0i))) (+ x y)) -- unboxed let bindings
|
||||
TR opt: unboxed-letrec.rkt 23:31 1.0+2.0i -- unboxed literal
|
||||
TR opt: unboxed-letrec.rkt 24:31 (+ 2.0+4.0i 3.0+6.0i) -- unboxed binary float complex
|
||||
TR opt: unboxed-letrec.rkt 24:34 2.0+4.0i -- unboxed literal
|
||||
TR opt: unboxed-letrec.rkt 24:43 3.0+6.0i -- unboxed literal
|
||||
TR opt: unboxed-letrec.rkt 25:2 (+ x y) -- unboxed binary float complex
|
||||
TR opt: unboxed-letrec.rkt 25:5 x -- leave var unboxed
|
||||
TR opt: unboxed-letrec.rkt 25:7 y -- leave var unboxed
|
||||
END
|
||||
#<<END
|
||||
6.0+12.0i
|
||||
|
|
|
@ -1,21 +1,15 @@
|
|||
#;#;
|
||||
#<<END
|
||||
TR opt: unboxed-make-rectangular.rkt 32:0 (let ((x (make-rectangular 1.0 2.0))) (+ x 2.0+4.0i)) -- unboxed let bindings
|
||||
TR opt: unboxed-make-rectangular.rkt 32:9 (make-rectangular 1.0 2.0) -- make-rectangular elimination
|
||||
TR opt: unboxed-make-rectangular.rkt 33:2 (+ x 2.0+4.0i) -- unboxed binary float complex
|
||||
TR opt: unboxed-make-rectangular.rkt 33:2 (+ x 2.0+4.0i) -- unboxed binary float complex
|
||||
TR opt: unboxed-make-rectangular.rkt 33:5 x -- leave var unboxed
|
||||
TR opt: unboxed-make-rectangular.rkt 33:5 x -- unbox float-complex
|
||||
TR opt: unboxed-make-rectangular.rkt 33:7 2.0+4.0i -- unboxed literal
|
||||
TR opt: unboxed-make-rectangular.rkt 33:7 2.0+4.0i -- unboxed literal
|
||||
TR opt: unboxed-make-rectangular.rkt 34:0 (let ((x (unsafe-make-flrectangular 1.0 2.0))) (+ x 2.0+4.0i)) -- unboxed let bindings
|
||||
TR opt: unboxed-make-rectangular.rkt 34:9 (unsafe-make-flrectangular 1.0 2.0) -- make-rectangular elimination
|
||||
TR opt: unboxed-make-rectangular.rkt 35:2 (+ x 2.0+4.0i) -- unboxed binary float complex
|
||||
TR opt: unboxed-make-rectangular.rkt 35:2 (+ x 2.0+4.0i) -- unboxed binary float complex
|
||||
TR opt: unboxed-make-rectangular.rkt 35:5 x -- leave var unboxed
|
||||
TR opt: unboxed-make-rectangular.rkt 35:5 x -- unbox float-complex
|
||||
TR opt: unboxed-make-rectangular.rkt 35:7 2.0+4.0i -- unboxed literal
|
||||
TR opt: unboxed-make-rectangular.rkt 35:7 2.0+4.0i -- unboxed literal
|
||||
TR opt: unboxed-make-rectangular.rkt 26:0 (let ((x (make-rectangular 1.0 2.0))) (+ x 2.0+4.0i)) -- unboxed let bindings
|
||||
TR opt: unboxed-make-rectangular.rkt 26:9 (make-rectangular 1.0 2.0) -- make-rectangular elimination
|
||||
TR opt: unboxed-make-rectangular.rkt 27:2 (+ x 2.0+4.0i) -- unboxed binary float complex
|
||||
TR opt: unboxed-make-rectangular.rkt 27:5 x -- leave var unboxed
|
||||
TR opt: unboxed-make-rectangular.rkt 27:7 2.0+4.0i -- unboxed literal
|
||||
TR opt: unboxed-make-rectangular.rkt 28:0 (let ((x (unsafe-make-flrectangular 1.0 2.0))) (+ x 2.0+4.0i)) -- unboxed let bindings
|
||||
TR opt: unboxed-make-rectangular.rkt 28:9 (unsafe-make-flrectangular 1.0 2.0) -- make-rectangular elimination
|
||||
TR opt: unboxed-make-rectangular.rkt 29:2 (+ x 2.0+4.0i) -- unboxed binary float complex
|
||||
TR opt: unboxed-make-rectangular.rkt 29:5 x -- leave var unboxed
|
||||
TR opt: unboxed-make-rectangular.rkt 29:7 2.0+4.0i -- unboxed literal
|
||||
END
|
||||
#<<END
|
||||
3.0+6.0i
|
||||
|
|
Loading…
Reference in New Issue
Block a user