Change messaging on non float complex expressions.

original commit: 70d9f4bdb6a8fd4b4aa037e0a4b472eec9f3f16c
This commit is contained in:
Eric Dobson 2013-10-29 22:13:46 -07:00
parent fcc8ef6eb4
commit 8914d82b77
20 changed files with 69 additions and 62 deletions

View File

@ -31,6 +31,7 @@
(define-merged-syntax-class float-complex-op (+^ -^ *^ conjugate^ exp^))
(define-syntax-class/specialize number-expr (subtyped-expr -Number))
(define-syntax-class/specialize float-expr (subtyped-expr -Flonum))
(define-syntax-class/specialize float-complex-expr (subtyped-expr -FloatComplex))
@ -331,22 +332,28 @@
((real-binding) (unsafe-flreal-part e*))
((imag-binding) (unsafe-flimag-part e*))))
;; The following optimizations are incorrect and cause bugs because they turn exact numbers into inexact
(pattern e:float-arg-expr
#:with real-binding (generate-temporary 'unboxed-float-)
#:with imag-binding #'0.0
#:do [(log-unboxing-opt "float-arg-expr in complex ops")]
#:with (bindings ...) #`(((real-binding) e.opt)))
(pattern e:opt-expr
#:when (subtypeof? #'e -Number) ; complex, maybe exact, maybe not
;; The following optimization is incorrect and causes bugs because it turns exact numbers into inexact
(pattern e:number-expr
#:with e* (generate-temporary)
#:with (real-binding imag-binding) (binding-names)
#:do [(log-unboxing-opt "unbox complex")]
#:do [(log-unboxing-opt
(if (subtypeof? #'e -Flonum)
"float in complex ops"
"non float complex in complex ops"))]
#:with real-binding-value
(cond
[(subtypeof? #'e -Flonum) #'e*]
[(subtypeof? #'e -Real) #'(real->double-flonum e*)]
[else #'(real->double-flonum (real-part e*))])
#:with imag-binding-value
(cond
[(subtypeof? #'e -Real) #'0.0]
[else #'(real->double-flonum (imag-part e*))])
#:with (bindings ...)
#'(((e*) e.opt)
((real-binding) (real->double-flonum (real-part e*)))
((imag-binding) (real->double-flonum (imag-part e*)))))
((real-binding) real-binding-value)
((imag-binding) imag-binding-value)))
(pattern e:expr
#:do [(error (format "non exhaustive pattern match ~a" #'e))]
#:with (bindings ...) (list)

View File

@ -2,7 +2,7 @@
#<<END
TR missed opt: unexpected-complex.rkt 18:0 (sqrt (ann 4 Integer)) -- unexpected complex type
TR opt: unexpected-complex.rkt 19:0 (+ 1.2+3.4i 2.0) -- unboxed binary float complex
TR opt: unexpected-complex.rkt 19:12 2.0 -- float-arg-expr in complex ops
TR opt: unexpected-complex.rkt 19:12 2.0 -- float in complex ops
TR opt: unexpected-complex.rkt 19:3 1.2+3.4i -- unboxed literal
END
#<<END

View File

@ -3,8 +3,8 @@
TR missed opt: complex-exp.rkt 16:3 (exp 0) -- non-complex value in complex arithmetic
TR opt: complex-exp.rkt 16:0 (- (exp 0) 1.0+2.0i) -- unboxed binary float complex
TR opt: complex-exp.rkt 16:11 1.0+2.0i -- unboxed literal
TR opt: complex-exp.rkt 16:3 (exp 0) -- float-arg-expr in complex ops
TR opt: complex-exp.rkt 16:8 0 -- float-arg-expr in complex ops
TR opt: complex-exp.rkt 16:3 (exp 0) -- non float complex in complex ops
TR opt: complex-exp.rkt 16:8 0 -- non float complex in complex ops
END
#<<END
0.0-2.0i

View File

@ -4,7 +4,7 @@ TR opt: float-complex-fixnum.rkt 17:0 (+ (modulo 2 1) 1.0+2.0i 3.0+6.0i) -- unbo
TR opt: float-complex-fixnum.rkt 17:16 1.0+2.0i -- unboxed literal
TR opt: float-complex-fixnum.rkt 17:25 3.0+6.0i -- unboxed literal
TR opt: float-complex-fixnum.rkt 17:3 (modulo 2 1) -- binary nonzero fixnum
TR opt: float-complex-fixnum.rkt 17:3 (modulo 2 1) -- float-arg-expr in complex ops
TR opt: float-complex-fixnum.rkt 17:3 (modulo 2 1) -- non float complex in complex ops
END
#<<END
4.0+8.0i

View File

@ -6,30 +6,30 @@ TR opt: float-complex-float-div.rkt 44:51 (imag-part x) -- complex accessor elim
TR opt: float-complex-float-div.rkt 44:62 x -- unbox float-complex
TR opt: float-complex-float-div.rkt 46:13 2.0+4.0i -- unboxed literal
TR opt: float-complex-float-div.rkt 46:6 (/ 1.0 2.0+4.0i) -- unboxed binary float complex
TR opt: float-complex-float-div.rkt 46:9 1.0 -- float-arg-expr in complex ops
TR opt: float-complex-float-div.rkt 47:18 2.0 -- float-arg-expr in complex ops
TR opt: float-complex-float-div.rkt 46:9 1.0 -- float in complex ops
TR opt: float-complex-float-div.rkt 47:18 2.0 -- float in complex ops
TR opt: float-complex-float-div.rkt 47:6 (/ 1.0+2.0i 2.0) -- unboxed binary float complex
TR opt: float-complex-float-div.rkt 47:9 1.0+2.0i -- unboxed literal
TR opt: float-complex-float-div.rkt 48:13 2.0+4.0i -- unboxed literal
TR opt: float-complex-float-div.rkt 48:22 3.0+6.0i -- unboxed literal
TR opt: float-complex-float-div.rkt 48:6 (/ 1.0 2.0+4.0i 3.0+6.0i) -- unboxed binary float complex
TR opt: float-complex-float-div.rkt 48:9 1.0 -- float-arg-expr in complex ops
TR opt: float-complex-float-div.rkt 49:18 2.0 -- float-arg-expr in complex ops
TR opt: float-complex-float-div.rkt 48:9 1.0 -- float in complex ops
TR opt: float-complex-float-div.rkt 49:18 2.0 -- float in complex ops
TR opt: float-complex-float-div.rkt 49:22 3.0+6.0i -- unboxed literal
TR opt: float-complex-float-div.rkt 49:6 (/ 1.0+2.0i 2.0 3.0+6.0i) -- unboxed binary float complex
TR opt: float-complex-float-div.rkt 49:9 1.0+2.0i -- unboxed literal
TR opt: float-complex-float-div.rkt 50:18 2.0+4.0i -- unboxed literal
TR opt: float-complex-float-div.rkt 50:27 3.0 -- float-arg-expr in complex ops
TR opt: float-complex-float-div.rkt 50:27 3.0 -- float in complex ops
TR opt: float-complex-float-div.rkt 50:6 (/ 1.0+2.0i 2.0+4.0i 3.0) -- unboxed binary float complex
TR opt: float-complex-float-div.rkt 50:9 1.0+2.0i -- unboxed literal
TR opt: float-complex-float-div.rkt 51:18 2.0 -- float-arg-expr in complex ops
TR opt: float-complex-float-div.rkt 51:22 3.0 -- float-arg-expr in complex ops
TR opt: float-complex-float-div.rkt 51:18 2.0 -- float in complex ops
TR opt: float-complex-float-div.rkt 51:22 3.0 -- float in complex ops
TR opt: float-complex-float-div.rkt 51:6 (/ 1.0+2.0i 2.0 3.0) -- unboxed binary float complex
TR opt: float-complex-float-div.rkt 51:9 1.0+2.0i -- unboxed literal
TR opt: float-complex-float-div.rkt 52:13 2.0 -- float-arg-expr in complex ops
TR opt: float-complex-float-div.rkt 52:13 2.0 -- float in complex ops
TR opt: float-complex-float-div.rkt 52:17 3.0+6.0i -- unboxed literal
TR opt: float-complex-float-div.rkt 52:6 (/ 1.0 2.0 3.0+6.0i) -- unboxed binary float complex
TR opt: float-complex-float-div.rkt 52:9 1.0 -- float-arg-expr in complex ops
TR opt: float-complex-float-div.rkt 52:9 1.0 -- float in complex ops
END
#<<END
'("0.1000000000-0.2000000000" "0.50000000001.0000000000" "-0.0200000000-0.0266666667" "0.16666666670.0000000000" "0.16666666670.0000000000" "0.16666666670.3333333333" "0.0333333333-0.0666666667")

View File

@ -1,26 +1,26 @@
#;#;
#<<END
TR opt: float-complex-float-mul.rkt 39:0 (* 1.0 2.0+4.0i) -- unboxed binary float complex
TR opt: float-complex-float-mul.rkt 39:3 1.0 -- float-arg-expr in complex ops
TR opt: float-complex-float-mul.rkt 39:3 1.0 -- float in complex ops
TR opt: float-complex-float-mul.rkt 39:7 2.0+4.0i -- unboxed literal
TR opt: float-complex-float-mul.rkt 40:0 (* 1.0+2.0i 2.0) -- unboxed binary float complex
TR opt: float-complex-float-mul.rkt 40:12 2.0 -- float-arg-expr in complex ops
TR opt: float-complex-float-mul.rkt 40:12 2.0 -- float in complex ops
TR opt: float-complex-float-mul.rkt 40:3 1.0+2.0i -- unboxed literal
TR opt: float-complex-float-mul.rkt 41:0 (* 1.0 2.0+4.0i 3.0+6.0i) -- unboxed binary float complex
TR opt: float-complex-float-mul.rkt 41:16 3.0+6.0i -- unboxed literal
TR opt: float-complex-float-mul.rkt 41:3 1.0 -- float-arg-expr in complex ops
TR opt: float-complex-float-mul.rkt 41:3 1.0 -- float in complex ops
TR opt: float-complex-float-mul.rkt 41:7 2.0+4.0i -- unboxed literal
TR opt: float-complex-float-mul.rkt 42:0 (* 1.0+2.0i 2.0 3.0+6.0i) -- unboxed binary float complex
TR opt: float-complex-float-mul.rkt 42:12 2.0 -- float-arg-expr in complex ops
TR opt: float-complex-float-mul.rkt 42:12 2.0 -- float in complex ops
TR opt: float-complex-float-mul.rkt 42:16 3.0+6.0i -- unboxed literal
TR opt: float-complex-float-mul.rkt 42:3 1.0+2.0i -- unboxed literal
TR opt: float-complex-float-mul.rkt 43:0 (* 1.0+2.0i 2.0+4.0i 3.0) -- unboxed binary float complex
TR opt: float-complex-float-mul.rkt 43:12 2.0+4.0i -- unboxed literal
TR opt: float-complex-float-mul.rkt 43:21 3.0 -- float-arg-expr in complex ops
TR opt: float-complex-float-mul.rkt 43:21 3.0 -- float in complex ops
TR opt: float-complex-float-mul.rkt 43:3 1.0+2.0i -- unboxed literal
TR opt: float-complex-float-mul.rkt 44:0 (* 1.0+2.0i 2.0 3.0) -- unboxed binary float complex
TR opt: float-complex-float-mul.rkt 44:12 2.0 -- float-arg-expr in complex ops
TR opt: float-complex-float-mul.rkt 44:16 3.0 -- float-arg-expr in complex ops
TR opt: float-complex-float-mul.rkt 44:12 2.0 -- float in complex ops
TR opt: float-complex-float-mul.rkt 44:16 3.0 -- float in complex ops
TR opt: float-complex-float-mul.rkt 44:3 1.0+2.0i -- unboxed literal
END
#<<END

View File

@ -1,23 +1,23 @@
#;#;
#<<END
TR opt: float-complex-float-small.rkt 35:0 (+ 1.0+2.0i 3.0) -- unboxed binary float complex
TR opt: float-complex-float-small.rkt 35:12 3.0 -- float-arg-expr in complex ops
TR opt: float-complex-float-small.rkt 35:12 3.0 -- float in complex ops
TR opt: float-complex-float-small.rkt 35:3 1.0+2.0i -- unboxed literal
TR opt: float-complex-float-small.rkt 36:0 (+ 1.0 2.0+4.0i) -- unboxed binary float complex
TR opt: float-complex-float-small.rkt 36:3 1.0 -- float-arg-expr in complex ops
TR opt: float-complex-float-small.rkt 36:3 1.0 -- float in complex ops
TR opt: float-complex-float-small.rkt 36:7 2.0+4.0i -- unboxed literal
TR opt: float-complex-float-small.rkt 37:0 (- 1.0+2.0i 3.0) -- unboxed binary float complex
TR opt: float-complex-float-small.rkt 37:12 3.0 -- float-arg-expr in complex ops
TR opt: float-complex-float-small.rkt 37:12 3.0 -- float in complex ops
TR opt: float-complex-float-small.rkt 37:3 1.0+2.0i -- unboxed literal
TR opt: float-complex-float-small.rkt 38:0 (- 1.0 2.0+4.0i) -- unboxed binary float complex
TR opt: float-complex-float-small.rkt 38:3 1.0 -- float-arg-expr in complex ops
TR opt: float-complex-float-small.rkt 38:3 1.0 -- float in complex ops
TR opt: float-complex-float-small.rkt 38:7 2.0+4.0i -- unboxed literal
TR opt: float-complex-float-small.rkt 39:0 (+ 1.0+2.0i (+ 1.0 2.0)) -- unboxed binary float complex
TR opt: float-complex-float-small.rkt 39:12 (+ 1.0 2.0) -- binary float
TR opt: float-complex-float-small.rkt 39:12 (+ 1.0 2.0) -- float-arg-expr in complex ops
TR opt: float-complex-float-small.rkt 39:15 1.0 -- float-arg-expr in complex ops
TR opt: float-complex-float-small.rkt 39:15 1.0 -- float-arg-expr in complex ops
TR opt: float-complex-float-small.rkt 39:19 2.0 -- float-arg-expr in complex ops
TR opt: float-complex-float-small.rkt 39:12 (+ 1.0 2.0) -- float in complex ops
TR opt: float-complex-float-small.rkt 39:15 1.0 -- float in complex ops
TR opt: float-complex-float-small.rkt 39:15 1.0 -- float in complex ops
TR opt: float-complex-float-small.rkt 39:19 2.0 -- float in complex ops
TR opt: float-complex-float-small.rkt 39:3 1.0+2.0i -- unboxed literal
END
#<<END

View File

@ -1,20 +1,20 @@
#;#;
#<<END
TR opt: float-complex-float.rkt 31:0 (+ 1.0+2.0i 2.0 3.0+6.0i) -- unboxed binary float complex
TR opt: float-complex-float.rkt 31:12 2.0 -- float-arg-expr in complex ops
TR opt: float-complex-float.rkt 31:12 2.0 -- float in complex ops
TR opt: float-complex-float.rkt 31:16 3.0+6.0i -- unboxed literal
TR opt: float-complex-float.rkt 31:3 1.0+2.0i -- unboxed literal
TR opt: float-complex-float.rkt 32:0 (- 1.0 2.0+4.0i 3.0+6.0i) -- unboxed binary float complex
TR opt: float-complex-float.rkt 32:16 3.0+6.0i -- unboxed literal
TR opt: float-complex-float.rkt 32:3 1.0 -- float-arg-expr in complex ops
TR opt: float-complex-float.rkt 32:3 1.0 -- float in complex ops
TR opt: float-complex-float.rkt 32:7 2.0+4.0i -- unboxed literal
TR opt: float-complex-float.rkt 33:0 (- 1.0+2.0i 2.0 3.0+6.0i) -- unboxed binary float complex
TR opt: float-complex-float.rkt 33:12 2.0 -- float-arg-expr in complex ops
TR opt: float-complex-float.rkt 33:12 2.0 -- float in complex ops
TR opt: float-complex-float.rkt 33:16 3.0+6.0i -- unboxed literal
TR opt: float-complex-float.rkt 33:3 1.0+2.0i -- unboxed literal
TR opt: float-complex-float.rkt 34:0 (- 1.0+2.0i 2.0+4.0i 3.0) -- unboxed binary float complex
TR opt: float-complex-float.rkt 34:12 2.0+4.0i -- unboxed literal
TR opt: float-complex-float.rkt 34:21 3.0 -- float-arg-expr in complex ops
TR opt: float-complex-float.rkt 34:21 3.0 -- float in complex ops
TR opt: float-complex-float.rkt 34:3 1.0+2.0i -- unboxed literal
END
#<<END

View File

@ -1,7 +1,7 @@
#;#;
#<<END
TR opt: float-complex-i.rkt 18:0 (+ 1.0+2.0i (* 0+1.0i 2.0+4.0i)) -- unboxed binary float complex
TR opt: float-complex-i.rkt 18:12 (* 0+1.0i 2.0+4.0i) -- unbox complex
TR opt: float-complex-i.rkt 18:12 (* 0+1.0i 2.0+4.0i) -- non float complex in complex ops
TR opt: float-complex-i.rkt 18:15 0+1.0i -- unboxed literal
TR opt: float-complex-i.rkt 18:15 0+1.0i -- unboxed literal
TR opt: float-complex-i.rkt 18:21 2.0+4.0i -- unboxed literal

View File

@ -2,7 +2,7 @@
#<<END
TR opt: float-complex-integer.rkt 15:0 (+ (expt 2 100) 1.0+2.0i) -- unboxed binary float complex
TR opt: float-complex-integer.rkt 15:16 1.0+2.0i -- unboxed literal
TR opt: float-complex-integer.rkt 15:3 (expt 2 100) -- float-arg-expr in complex ops
TR opt: float-complex-integer.rkt 15:3 (expt 2 100) -- non float complex in complex ops
END
#<<END
1.2676506002282294e+30+2.0i

View File

@ -4,10 +4,10 @@ TR opt: float-complex-number-mul.rkt 17:0 (imag-part (* 0.0+1.0i (* 1 2))) -- co
TR opt: float-complex-number-mul.rkt 17:11 (* 0.0+1.0i (* 1 2)) -- unboxed binary float complex
TR opt: float-complex-number-mul.rkt 17:14 0.0+1.0i -- unboxed literal
TR opt: float-complex-number-mul.rkt 17:23 (* 1 2) -- fixnum bounded expr
TR opt: float-complex-number-mul.rkt 17:23 (* 1 2) -- float-arg-expr in complex ops
TR opt: float-complex-number-mul.rkt 17:26 1 -- float-arg-expr in complex ops
TR opt: float-complex-number-mul.rkt 17:26 1 -- float-arg-expr in complex ops
TR opt: float-complex-number-mul.rkt 17:28 2 -- float-arg-expr in complex ops
TR opt: float-complex-number-mul.rkt 17:23 (* 1 2) -- non float complex in complex ops
TR opt: float-complex-number-mul.rkt 17:26 1 -- non float complex in complex ops
TR opt: float-complex-number-mul.rkt 17:26 1 -- non float complex in complex ops
TR opt: float-complex-number-mul.rkt 17:28 2 -- non float complex in complex ops
END
#<<END
2.0

View File

@ -2,28 +2,28 @@
#<<END
TR opt: float-complex-parts3.rkt 45:0 (+ 1.0+2.0i (real-part (+ 2.0+4.0i 3.0+6.0i))) -- unboxed binary float complex
TR opt: float-complex-parts3.rkt 45:12 (real-part (+ 2.0+4.0i 3.0+6.0i)) -- complex accessor elimination
TR opt: float-complex-parts3.rkt 45:12 (real-part (+ 2.0+4.0i 3.0+6.0i)) -- float-arg-expr in complex ops
TR opt: float-complex-parts3.rkt 45:12 (real-part (+ 2.0+4.0i 3.0+6.0i)) -- float in complex ops
TR opt: float-complex-parts3.rkt 45:23 (+ 2.0+4.0i 3.0+6.0i) -- unboxed binary float complex
TR opt: float-complex-parts3.rkt 45:26 2.0+4.0i -- unboxed literal
TR opt: float-complex-parts3.rkt 45:3 1.0+2.0i -- unboxed literal
TR opt: float-complex-parts3.rkt 45:35 3.0+6.0i -- unboxed literal
TR opt: float-complex-parts3.rkt 46:0 (+ 1.0+2.0i (unsafe-flreal-part (+ 2.0+4.0i 3.0+6.0i))) -- unboxed binary float complex
TR opt: float-complex-parts3.rkt 46:12 (unsafe-flreal-part (+ 2.0+4.0i 3.0+6.0i)) -- complex accessor elimination
TR opt: float-complex-parts3.rkt 46:12 (unsafe-flreal-part (+ 2.0+4.0i 3.0+6.0i)) -- float-arg-expr in complex ops
TR opt: float-complex-parts3.rkt 46:12 (unsafe-flreal-part (+ 2.0+4.0i 3.0+6.0i)) -- float in complex ops
TR opt: float-complex-parts3.rkt 46:3 1.0+2.0i -- unboxed literal
TR opt: float-complex-parts3.rkt 46:32 (+ 2.0+4.0i 3.0+6.0i) -- unboxed binary float complex
TR opt: float-complex-parts3.rkt 46:35 2.0+4.0i -- unboxed literal
TR opt: float-complex-parts3.rkt 46:44 3.0+6.0i -- unboxed literal
TR opt: float-complex-parts3.rkt 47:0 (+ 1.0+2.0i (imag-part (+ 2.0+4.0i 3.0+6.0i))) -- unboxed binary float complex
TR opt: float-complex-parts3.rkt 47:12 (imag-part (+ 2.0+4.0i 3.0+6.0i)) -- complex accessor elimination
TR opt: float-complex-parts3.rkt 47:12 (imag-part (+ 2.0+4.0i 3.0+6.0i)) -- float-arg-expr in complex ops
TR opt: float-complex-parts3.rkt 47:12 (imag-part (+ 2.0+4.0i 3.0+6.0i)) -- float in complex ops
TR opt: float-complex-parts3.rkt 47:23 (+ 2.0+4.0i 3.0+6.0i) -- unboxed binary float complex
TR opt: float-complex-parts3.rkt 47:26 2.0+4.0i -- unboxed literal
TR opt: float-complex-parts3.rkt 47:3 1.0+2.0i -- unboxed literal
TR opt: float-complex-parts3.rkt 47:35 3.0+6.0i -- unboxed literal
TR opt: float-complex-parts3.rkt 48:0 (+ 1.0+2.0i (unsafe-flimag-part (+ 2.0+4.0i 3.0+6.0i))) -- unboxed binary float complex
TR opt: float-complex-parts3.rkt 48:12 (unsafe-flimag-part (+ 2.0+4.0i 3.0+6.0i)) -- complex accessor elimination
TR opt: float-complex-parts3.rkt 48:12 (unsafe-flimag-part (+ 2.0+4.0i 3.0+6.0i)) -- float-arg-expr in complex ops
TR opt: float-complex-parts3.rkt 48:12 (unsafe-flimag-part (+ 2.0+4.0i 3.0+6.0i)) -- float in complex ops
TR opt: float-complex-parts3.rkt 48:3 1.0+2.0i -- unboxed literal
TR opt: float-complex-parts3.rkt 48:32 (+ 2.0+4.0i 3.0+6.0i) -- unboxed binary float complex
TR opt: float-complex-parts3.rkt 48:35 2.0+4.0i -- unboxed literal

View File

@ -5,7 +5,7 @@ TR info: float-complex-sin.rkt 21:18 (* t 6.28) -- exact real arith
TR missed opt: float-complex-sin.rkt 21:13 (sin (* t 6.28)) -- all args float-arg-expr, result not Float -- caused by: 21:18 (* t 6.28)
TR missed opt: float-complex-sin.rkt 21:18 (* t 6.28) -- all args float-arg-expr, result not Float -- caused by: 21:21 t
TR opt: float-complex-sin.rkt 21:10 (+ (sin (* t 6.28)) 0.0+0.0i) -- unboxed binary float complex
TR opt: float-complex-sin.rkt 21:13 (sin (* t 6.28)) -- float-arg-expr in complex ops
TR opt: float-complex-sin.rkt 21:13 (sin (* t 6.28)) -- non float complex in complex ops
TR opt: float-complex-sin.rkt 21:30 0.0+0.0i -- unboxed literal
END
#<<END

View File

@ -5,7 +5,7 @@ TR opt: pr12475.rkt 18:21 for-loop -- fun -> unboxed fun
TR opt: pr12475.rkt 19:29 so-far-init -- unboxed var -> table
TR opt: pr12475.rkt 21:26 (* so-far-init (quote 1.0)) -- unboxed binary float complex
TR opt: pr12475.rkt 21:29 so-far-init -- leave var unboxed
TR opt: pr12475.rkt 21:41 (quote 1.0) -- float-arg-expr in complex ops
TR opt: pr12475.rkt 21:41 (quote 1.0) -- float in complex ops
TR opt: pr12475.rkt 22:26 so-far-init -- dead else branch
TR opt: pr12475.rkt 23:5 for-loop -- unboxed let loop
TR opt: pr12475.rkt 24:3 (quote 0.0+0.0i) -- unboxed literal

View File

@ -3,7 +3,7 @@
TR info: pr14284.rkt 26:26 displayln -- hidden parameter
TR opt: pr14284.rkt 24:13 0.0+2.0i -- unboxed literal
TR opt: pr14284.rkt 24:6 (+ 1.0 0.0+2.0i) -- unboxed binary float complex
TR opt: pr14284.rkt 24:9 1.0 -- float-arg-expr in complex ops
TR opt: pr14284.rkt 24:9 1.0 -- float in complex ops
TR opt: pr14284.rkt 25:27 x -- unboxed var -> table
TR opt: pr14284.rkt 25:4 optimizable -- fun -> unboxed fun
TR opt: pr14284.rkt 27:25 (+ x y) -- unboxed binary float complex

View File

@ -10,7 +10,7 @@ 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:17 3.6 -- float 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

View File

@ -4,7 +4,7 @@ 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 24:23 y -- float 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

View File

@ -4,7 +4,7 @@ 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 24:23 y -- float 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

View File

@ -12,7 +12,7 @@ TR opt: unboxed-let-functions6.rkt 31:10 (loop (+ z (car l)) (cdr l)) -- call to
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) -- non float complex 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

View File

@ -8,7 +8,7 @@ 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) -- non float complex 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