Make TR optimizer tests reset the port line counting.

This means new logging lines should not change the numbering of all existing
logs making diffs much cleaner.
This commit is contained in:
Eric Dobson 2014-02-05 00:00:21 -08:00
parent ec4793ad16
commit f1b52be26a
172 changed files with 1477 additions and 1488 deletions

View File

@ -1,17 +1,17 @@
#;#;
#<<END
TR info: all-real.rkt 29:0 (+ (ann 3 Real) (ann 4 Real)) -- possible exact real arith
TR info: all-real.rkt 30:0 (* (ann 3 Real) (ann 4 Real)) -- possible exact real arith
TR missed opt: all-real.rkt 29:0 (+ (ann 3 Real) (ann 4 Real)) -- all args float-arg-expr, result not Float -- caused by: 29:8 3, 29:21 4
TR missed opt: all-real.rkt 30:0 (* (ann 3 Real) (ann 4 Real)) -- all args float-arg-expr, result not Float -- caused by: 30:8 3, 30:21 4
TR info: all-real.rkt 15:0 (+ (ann 3 Real) (ann 4 Real)) -- possible exact real arith
TR info: all-real.rkt 16:0 (* (ann 3 Real) (ann 4 Real)) -- possible exact real arith
TR missed opt: all-real.rkt 15:0 (+ (ann 3 Real) (ann 4 Real)) -- all args float-arg-expr, result not Float -- caused by: 15:8 3, 15:21 4
TR missed opt: all-real.rkt 16:0 (* (ann 3 Real) (ann 4 Real)) -- all args float-arg-expr, result not Float -- caused by: 16:8 3, 16:21 4
END
#<<END
7
12
END
#lang typed/racket
#reader tests/typed-racket/optimizer/reset-port
;; all-real expressions
;; They currently get reported as missed float optimizations.

View File

@ -1,11 +1,11 @@
#;#;
#<<END
TR info: fixnum-no-bound.rkt 22:0 (fx+ (ann 2 Fixnum) (ann 3 Fixnum)) -- non-optimized fixnum op
TR info: fixnum-no-bound.rkt 23:0 (fx- (ann 2 Fixnum) (ann 3 Fixnum)) -- non-optimized fixnum op
TR info: fixnum-no-bound.rkt 24:0 (fx* (ann 2 Fixnum) (ann 3 Fixnum)) -- non-optimized fixnum op
TR info: fixnum-no-bound.rkt 25:0 (fxquotient (ann 2 Fixnum) (ann 3 Fixnum)) -- non-optimized fixnum op
TR info: fixnum-no-bound.rkt 26:0 (fxmodulo (ann 2 Fixnum) (ann 3 Fixnum)) -- non-optimized fixnum op
TR info: fixnum-no-bound.rkt 27:0 (fxremainder (ann 2 Fixnum) (ann 3 Fixnum)) -- non-optimized fixnum op
TR info: fixnum-no-bound.rkt 2:0 (fx+ (ann 2 Fixnum) (ann 3 Fixnum)) -- non-optimized fixnum op
TR info: fixnum-no-bound.rkt 3:0 (fx- (ann 2 Fixnum) (ann 3 Fixnum)) -- non-optimized fixnum op
TR info: fixnum-no-bound.rkt 4:0 (fx* (ann 2 Fixnum) (ann 3 Fixnum)) -- non-optimized fixnum op
TR info: fixnum-no-bound.rkt 5:0 (fxquotient (ann 2 Fixnum) (ann 3 Fixnum)) -- non-optimized fixnum op
TR info: fixnum-no-bound.rkt 6:0 (fxmodulo (ann 2 Fixnum) (ann 3 Fixnum)) -- non-optimized fixnum op
TR info: fixnum-no-bound.rkt 7:0 (fxremainder (ann 2 Fixnum) (ann 3 Fixnum)) -- non-optimized fixnum op
END
#<<END
5
@ -16,8 +16,8 @@ END
2
END
#lang typed/racket
#reader tests/typed-racket/optimizer/reset-port
(require racket/fixnum)
(fx+ (ann 2 Fixnum) (ann 3 Fixnum))
(fx- (ann 2 Fixnum) (ann 3 Fixnum))

View File

@ -1,35 +1,35 @@
#;#;
#<<END
TR info: fixnum.rkt 105:28 (- 1 (expt 2 (- (system-type (quote word)) 2))) -- possible exact real arith
TR info: fixnum.rkt 73:0 (fx* (values (ann x Index)) (values (ann y Index))) -- non-optimized fixnum op
TR info: fixnum.rkt 76:0 (fx+ (+ 300 301) (+ 301 302)) -- non-optimized fixnum op
TR info: fixnum.rkt 77:0 (fxquotient -4 -5) -- non-optimized fixnum op
TR missed opt: fixnum.rkt 101:3 (+ max-fixnum max-fixnum) -- out of fixnum range
TR missed opt: fixnum.rkt 102:3 (+ min-fixnum min-fixnum) -- out of fixnum range
TR missed opt: fixnum.rkt 106:3 (quotient min-fixnum -1) -- out of fixnum range
TR missed opt: fixnum.rkt 71:0 (+ (ann z Fixnum) 234) -- out of fixnum range
TR missed opt: fixnum.rkt 72:0 (* (ann x Index) (ann y Index)) -- out of fixnum range
TR missed opt: fixnum.rkt 75:0 (+ (+ 300 301) (+ 301 302)) -- out of fixnum range
TR missed opt: fixnum.rkt 88:0 (sub1 min-fixnum) -- out of fixnum range
TR missed opt: fixnum.rkt 94:0 (add1 max-fixnum) -- out of fixnum range
TR missed opt: fixnum.rkt 98:3 (- max-fixnum min-fixnum) -- out of fixnum range
TR missed opt: fixnum.rkt 99:3 (- min-fixnum max-fixnum) -- out of fixnum range
TR opt: fixnum.rkt 103:0 (= (+ max-fixnum min-fixnum) -1) -- binary fixnum comp
TR opt: fixnum.rkt 103:3 (+ max-fixnum min-fixnum) -- fixnum bounded expr
TR opt: fixnum.rkt 105:3 (quotient max-fixnum -1) -- nonzero fixnum bounded expr
TR opt: fixnum.rkt 68:10 (* x y) -- fixnum bounded expr
TR opt: fixnum.rkt 75:15 (+ 301 302) -- fixnum bounded expr
TR opt: fixnum.rkt 75:3 (+ 300 301) -- fixnum bounded expr
TR opt: fixnum.rkt 76:17 (+ 301 302) -- fixnum bounded expr
TR opt: fixnum.rkt 76:5 (+ 300 301) -- fixnum bounded expr
TR opt: fixnum.rkt 89:0 (add1 min-fixnum) -- fixnum add1
TR opt: fixnum.rkt 91:0 (- max-fixnum) -- unary fixnum
TR opt: fixnum.rkt 92:0 (abs max-fixnum) -- fixnum fxabs
TR opt: fixnum.rkt 93:0 (sub1 max-fixnum) -- fixnum sub1
TR opt: fixnum.rkt 96:0 (= (- max-fixnum max-fixnum) 0) -- binary fixnum comp
TR opt: fixnum.rkt 96:3 (- max-fixnum max-fixnum) -- fixnum bounded expr
TR opt: fixnum.rkt 97:0 (= (- min-fixnum min-fixnum) 0) -- binary fixnum comp
TR opt: fixnum.rkt 97:3 (- min-fixnum min-fixnum) -- fixnum bounded expr
TR info: fixnum.rkt 12:0 (fx* (values (ann x Index)) (values (ann y Index))) -- non-optimized fixnum op
TR info: fixnum.rkt 15:0 (fx+ (+ 300 301) (+ 301 302)) -- non-optimized fixnum op
TR info: fixnum.rkt 16:0 (fxquotient -4 -5) -- non-optimized fixnum op
TR info: fixnum.rkt 44:28 (- 1 (expt 2 (- (system-type (quote word)) 2))) -- possible exact real arith
TR missed opt: fixnum.rkt 10:0 (+ (ann z Fixnum) 234) -- out of fixnum range
TR missed opt: fixnum.rkt 11:0 (* (ann x Index) (ann y Index)) -- out of fixnum range
TR missed opt: fixnum.rkt 14:0 (+ (+ 300 301) (+ 301 302)) -- out of fixnum range
TR missed opt: fixnum.rkt 27:0 (sub1 min-fixnum) -- out of fixnum range
TR missed opt: fixnum.rkt 33:0 (add1 max-fixnum) -- out of fixnum range
TR missed opt: fixnum.rkt 37:3 (- max-fixnum min-fixnum) -- out of fixnum range
TR missed opt: fixnum.rkt 38:3 (- min-fixnum max-fixnum) -- out of fixnum range
TR missed opt: fixnum.rkt 40:3 (+ max-fixnum max-fixnum) -- out of fixnum range
TR missed opt: fixnum.rkt 41:3 (+ min-fixnum min-fixnum) -- out of fixnum range
TR missed opt: fixnum.rkt 45:3 (quotient min-fixnum -1) -- out of fixnum range
TR opt: fixnum.rkt 14:15 (+ 301 302) -- fixnum bounded expr
TR opt: fixnum.rkt 14:3 (+ 300 301) -- fixnum bounded expr
TR opt: fixnum.rkt 15:17 (+ 301 302) -- fixnum bounded expr
TR opt: fixnum.rkt 15:5 (+ 300 301) -- fixnum bounded expr
TR opt: fixnum.rkt 28:0 (add1 min-fixnum) -- fixnum add1
TR opt: fixnum.rkt 30:0 (- max-fixnum) -- unary fixnum
TR opt: fixnum.rkt 31:0 (abs max-fixnum) -- fixnum fxabs
TR opt: fixnum.rkt 32:0 (sub1 max-fixnum) -- fixnum sub1
TR opt: fixnum.rkt 35:0 (= (- max-fixnum max-fixnum) 0) -- binary fixnum comp
TR opt: fixnum.rkt 35:3 (- max-fixnum max-fixnum) -- fixnum bounded expr
TR opt: fixnum.rkt 36:0 (= (- min-fixnum min-fixnum) 0) -- binary fixnum comp
TR opt: fixnum.rkt 36:3 (- min-fixnum min-fixnum) -- fixnum bounded expr
TR opt: fixnum.rkt 42:0 (= (+ max-fixnum min-fixnum) -1) -- binary fixnum comp
TR opt: fixnum.rkt 42:3 (+ max-fixnum min-fixnum) -- fixnum bounded expr
TR opt: fixnum.rkt 44:3 (quotient max-fixnum -1) -- nonzero fixnum bounded expr
TR opt: fixnum.rkt 7:10 (* x y) -- fixnum bounded expr
END
#<<END
468
@ -59,6 +59,7 @@ END
END
#lang typed/racket
#reader tests/typed-racket/optimizer/reset-port
(require racket/fixnum)

View File

@ -1,39 +1,40 @@
#;#;
#<<END
TR info: mandelbrot.rkt 46:15 (/ (* 2.0 y) n) -- possible exact real arith
TR info: mandelbrot.rkt 46:18 (* 2.0 y) -- possible exact real arith
TR info: mandelbrot.rkt 47:15 (/ (* 2.0 x) n) -- possible exact real arith
TR info: mandelbrot.rkt 47:18 (* 2.0 x) -- possible exact real arith
TR info: mandelbrot.rkt 57:28 (* 2 zr zi) -- possible exact real arith
TR info: mandelbrot.rkt 57:28 (* 2 zr zi) -- possible exact real arith
TR missed opt: mandelbrot.rkt 46:12 (- (/ (* 2.0 y) n) 1.0) -- all args float-arg-expr, result not Float -- caused by: 46:15 (/ (* 2.0 y) n)
TR missed opt: mandelbrot.rkt 46:12 (- (/ (* 2.0 y) n) 1.0) -- exact ops inside float expr -- caused by: 46:15 (/ (* 2.0 y) n)
TR missed opt: mandelbrot.rkt 46:15 (/ (* 2.0 y) n) -- all args float-arg-expr, result not Float -- caused by: 46:18 (* 2.0 y), 46:28 n
TR missed opt: mandelbrot.rkt 46:18 (* 2.0 y) -- all args float-arg-expr, result not Float -- caused by: 46:25 y
TR missed opt: mandelbrot.rkt 47:12 (- (/ (* 2.0 x) n) 1.5) -- all args float-arg-expr, result not Float -- caused by: 47:15 (/ (* 2.0 x) n)
TR missed opt: mandelbrot.rkt 47:12 (- (/ (* 2.0 x) n) 1.5) -- exact ops inside float expr -- caused by: 47:15 (/ (* 2.0 x) n)
TR missed opt: mandelbrot.rkt 47:15 (/ (* 2.0 x) n) -- all args float-arg-expr, result not Float -- caused by: 47:18 (* 2.0 x), 47:28 n
TR missed opt: mandelbrot.rkt 47:18 (* 2.0 x) -- all args float-arg-expr, result not Float -- caused by: 47:25 x
TR missed opt: mandelbrot.rkt 54:14 (> (+ zrq ziq) 4) -- generic comparison -- caused by: 54:29 4
TR missed opt: mandelbrot.rkt 54:14 (> (+ zrq ziq) 4) -- generic comparison -- caused by: 54:29 4
TR missed opt: mandelbrot.rkt 57:25 (- (* 2 zr zi) ci) -- all args float-arg-expr, result not Float -- caused by: 57:28 (* 2 zr zi)
TR missed opt: mandelbrot.rkt 57:25 (- (* 2 zr zi) ci) -- all args float-arg-expr, result not Float -- caused by: 57:28 (* 2 zr zi)
TR missed opt: mandelbrot.rkt 57:28 (* 2 zr zi) -- all args float-arg-expr, result not Float -- caused by: 57:31 2
TR missed opt: mandelbrot.rkt 57:28 (* 2 zr zi) -- all args float-arg-expr, result not Float -- caused by: 57:31 2
TR opt: mandelbrot.rkt 51:21 (* zr zr) -- binary float
TR opt: mandelbrot.rkt 51:21 (* zr zr) -- binary float
TR opt: mandelbrot.rkt 52:21 (* zi zi) -- binary float
TR opt: mandelbrot.rkt 52:21 (* zi zi) -- binary float
TR opt: mandelbrot.rkt 54:17 (+ zrq ziq) -- binary float
TR opt: mandelbrot.rkt 54:17 (+ zrq ziq) -- binary float
TR opt: mandelbrot.rkt 56:25 (+ (- zrq ziq) cr) -- binary float
TR opt: mandelbrot.rkt 56:25 (+ (- zrq ziq) cr) -- binary float
TR opt: mandelbrot.rkt 56:28 (- zrq ziq) -- binary float
TR opt: mandelbrot.rkt 56:28 (- zrq ziq) -- binary float
TR info: mandelbrot.rkt 10:15 (/ (* 2.0 y) n) -- possible exact real arith
TR info: mandelbrot.rkt 10:18 (* 2.0 y) -- possible exact real arith
TR info: mandelbrot.rkt 11:15 (/ (* 2.0 x) n) -- possible exact real arith
TR info: mandelbrot.rkt 11:18 (* 2.0 x) -- possible exact real arith
TR info: mandelbrot.rkt 21:28 (* 2 zr zi) -- possible exact real arith
TR info: mandelbrot.rkt 21:28 (* 2 zr zi) -- possible exact real arith
TR missed opt: mandelbrot.rkt 10:12 (- (/ (* 2.0 y) n) 1.0) -- all args float-arg-expr, result not Float -- caused by: 10:15 (/ (* 2.0 y) n)
TR missed opt: mandelbrot.rkt 10:12 (- (/ (* 2.0 y) n) 1.0) -- exact ops inside float expr -- caused by: 10:15 (/ (* 2.0 y) n)
TR missed opt: mandelbrot.rkt 10:15 (/ (* 2.0 y) n) -- all args float-arg-expr, result not Float -- caused by: 10:18 (* 2.0 y), 10:28 n
TR missed opt: mandelbrot.rkt 10:18 (* 2.0 y) -- all args float-arg-expr, result not Float -- caused by: 10:25 y
TR missed opt: mandelbrot.rkt 11:12 (- (/ (* 2.0 x) n) 1.5) -- all args float-arg-expr, result not Float -- caused by: 11:15 (/ (* 2.0 x) n)
TR missed opt: mandelbrot.rkt 11:12 (- (/ (* 2.0 x) n) 1.5) -- exact ops inside float expr -- caused by: 11:15 (/ (* 2.0 x) n)
TR missed opt: mandelbrot.rkt 11:15 (/ (* 2.0 x) n) -- all args float-arg-expr, result not Float -- caused by: 11:18 (* 2.0 x), 11:28 n
TR missed opt: mandelbrot.rkt 11:18 (* 2.0 x) -- all args float-arg-expr, result not Float -- caused by: 11:25 x
TR missed opt: mandelbrot.rkt 18:14 (> (+ zrq ziq) 4) -- generic comparison -- caused by: 18:29 4
TR missed opt: mandelbrot.rkt 18:14 (> (+ zrq ziq) 4) -- generic comparison -- caused by: 18:29 4
TR missed opt: mandelbrot.rkt 21:25 (- (* 2 zr zi) ci) -- all args float-arg-expr, result not Float -- caused by: 21:28 (* 2 zr zi)
TR missed opt: mandelbrot.rkt 21:25 (- (* 2 zr zi) ci) -- all args float-arg-expr, result not Float -- caused by: 21:28 (* 2 zr zi)
TR missed opt: mandelbrot.rkt 21:28 (* 2 zr zi) -- all args float-arg-expr, result not Float -- caused by: 21:31 2
TR missed opt: mandelbrot.rkt 21:28 (* 2 zr zi) -- all args float-arg-expr, result not Float -- caused by: 21:31 2
TR opt: mandelbrot.rkt 15:21 (* zr zr) -- binary float
TR opt: mandelbrot.rkt 15:21 (* zr zr) -- binary float
TR opt: mandelbrot.rkt 16:21 (* zi zi) -- binary float
TR opt: mandelbrot.rkt 16:21 (* zi zi) -- binary float
TR opt: mandelbrot.rkt 18:17 (+ zrq ziq) -- binary float
TR opt: mandelbrot.rkt 18:17 (+ zrq ziq) -- binary float
TR opt: mandelbrot.rkt 20:25 (+ (- zrq ziq) cr) -- binary float
TR opt: mandelbrot.rkt 20:25 (+ (- zrq ziq) cr) -- binary float
TR opt: mandelbrot.rkt 20:28 (- zrq ziq) -- binary float
TR opt: mandelbrot.rkt 20:28 (- zrq ziq) -- binary float
END
""
#lang typed/racket
#reader tests/typed-racket/optimizer/reset-port
;; from Matthew's talk at Mozilla
;; 2 things were blocking futures:

View File

@ -1,31 +1,32 @@
#;#;
#<<END
TR info: marketplace-struct.rkt 117:39 process -- struct constructor
TR info: marketplace-struct.rkt 124:3 vm -- struct constructor
TR info: marketplace-struct.rkt 66:9 vm -- struct constructor
TR info: marketplace-struct.rkt 66:9 vm -- struct constructor
TR missed opt: marketplace-struct.rkt 146:34 (in-hash-keys (vm-processes state)) -- non-specialized for clause
TR missed opt: marketplace-struct.rkt 155:32 (in-hash-keys (vm-processes state)) -- non-specialized for clause
TR missed opt: marketplace-struct.rkt 160:46 (in-hash-keys (process-endpoints p)) -- non-specialized for clause
TR missed opt: marketplace-struct.rkt 160:46 (in-hash-keys (process-endpoints p)) -- non-specialized for clause
TR opt: marketplace-struct.rkt 131:2 (struct-copy vm state (processes (hash-set (vm-processes state) (Process-pid wp) wp))) -- dead else branch
TR opt: marketplace-struct.rkt 131:2 (struct-copy vm state (processes (hash-set (vm-processes state) (Process-pid wp) wp))) -- struct ref
TR opt: marketplace-struct.rkt 131:45 (vm-processes state) -- struct ref
TR opt: marketplace-struct.rkt 138:23 (vm-processes state) -- struct ref
TR opt: marketplace-struct.rkt 139:10 (if wp (struct-copy vm state (processes (hash-remove (vm-processes state) pid))) state) -- dead else branch
TR opt: marketplace-struct.rkt 139:10 (if wp (struct-copy vm state (processes (hash-remove (vm-processes state) pid))) state) -- struct ref
TR opt: marketplace-struct.rkt 140:60 (vm-processes state) -- struct ref
TR opt: marketplace-struct.rkt 146:48 (vm-processes state) -- struct ref
TR opt: marketplace-struct.rkt 155:46 (vm-processes state) -- struct ref
TR opt: marketplace-struct.rkt 160:60 (process-endpoints p) -- struct ref
TR opt: marketplace-struct.rkt 160:60 (process-endpoints p) -- struct ref
TR opt: marketplace-struct.rkt 161:35 (process-endpoints p) -- struct ref
TR opt: marketplace-struct.rkt 161:35 (process-endpoints p) -- struct ref
TR opt: marketplace-struct.rkt 161:35 (process-endpoints p) -- struct ref
TR opt: marketplace-struct.rkt 161:35 (process-endpoints p) -- struct ref
TR info: marketplace-struct.rkt 38:9 vm -- struct constructor
TR info: marketplace-struct.rkt 38:9 vm -- struct constructor
TR info: marketplace-struct.rkt 89:39 process -- struct constructor
TR info: marketplace-struct.rkt 96:3 vm -- struct constructor
TR missed opt: marketplace-struct.rkt 118:34 (in-hash-keys (vm-processes state)) -- non-specialized for clause
TR missed opt: marketplace-struct.rkt 127:32 (in-hash-keys (vm-processes state)) -- non-specialized for clause
TR missed opt: marketplace-struct.rkt 132:46 (in-hash-keys (process-endpoints p)) -- non-specialized for clause
TR missed opt: marketplace-struct.rkt 132:46 (in-hash-keys (process-endpoints p)) -- non-specialized for clause
TR opt: marketplace-struct.rkt 103:2 (struct-copy vm state (processes (hash-set (vm-processes state) (Process-pid wp) wp))) -- dead else branch
TR opt: marketplace-struct.rkt 103:2 (struct-copy vm state (processes (hash-set (vm-processes state) (Process-pid wp) wp))) -- struct ref
TR opt: marketplace-struct.rkt 103:45 (vm-processes state) -- struct ref
TR opt: marketplace-struct.rkt 110:23 (vm-processes state) -- struct ref
TR opt: marketplace-struct.rkt 111:10 (if wp (struct-copy vm state (processes (hash-remove (vm-processes state) pid))) state) -- dead else branch
TR opt: marketplace-struct.rkt 111:10 (if wp (struct-copy vm state (processes (hash-remove (vm-processes state) pid))) state) -- struct ref
TR opt: marketplace-struct.rkt 112:60 (vm-processes state) -- struct ref
TR opt: marketplace-struct.rkt 118:48 (vm-processes state) -- struct ref
TR opt: marketplace-struct.rkt 127:46 (vm-processes state) -- struct ref
TR opt: marketplace-struct.rkt 132:60 (process-endpoints p) -- struct ref
TR opt: marketplace-struct.rkt 132:60 (process-endpoints p) -- struct ref
TR opt: marketplace-struct.rkt 133:35 (process-endpoints p) -- struct ref
TR opt: marketplace-struct.rkt 133:35 (process-endpoints p) -- struct ref
TR opt: marketplace-struct.rkt 133:35 (process-endpoints p) -- struct ref
TR opt: marketplace-struct.rkt 133:35 (process-endpoints p) -- struct ref
END
""
#lang typed/racket/base
#reader tests/typed-racket/optimizer/reset-port
;; excerpt from marketplace
;; a struct constructor logging bug was causing this to fail

View File

@ -1,11 +1,11 @@
#;#;
#<<END
TR info: multi-file1.rkt 13:2 (* x (ann 3 Integer)) -- possible exact real arith
TR missed opt: multi-file1.rkt 13:2 (* x (ann 3 Integer)) -- all args float-arg-expr, result not Float -- caused by: 13:12 3
TR info: multi-file1.rkt 5:2 (* x (ann 3 Integer)) -- possible exact real arith
TR missed opt: multi-file1.rkt 5:2 (* x (ann 3 Integer)) -- all args float-arg-expr, result not Float -- caused by: 5:12 3
END
""
#lang typed/racket
#reader tests/typed-racket/optimizer/reset-port
(provide f)
(: f : Float -> Real)

View File

@ -1,14 +1,14 @@
#;#;
#<<END
TR opt: multi-file2.rkt 14:10 (+ 3 5) -- fixnum bounded expr
TR opt: multi-file2.rkt 14:3 (* 3.4 (+ 3 5)) -- binary float
TR opt: multi-file2.rkt 3:10 (+ 3 5) -- fixnum bounded expr
TR opt: multi-file2.rkt 3:3 (* 3.4 (+ 3 5)) -- binary float
END
#<<END
81.6
END
#lang typed/racket
#reader tests/typed-racket/optimizer/reset-port
(require "multi-file1.rkt")
(f (* 3.4 (+ 3 5)))

View File

@ -1,13 +1,13 @@
#;#;
#<<END
TR info: multiple-irritants.rkt 13:0 (* (ann 4 Integer) (ann 5 Integer) 6.0) -- possible exact real arith
TR missed opt: multiple-irritants.rkt 13:0 (* (ann 4 Integer) (ann 5 Integer) 6.0) -- all args float-arg-expr, result not Float -- caused by: 13:8 4, 13:24 5
TR info: multiple-irritants.rkt 2:0 (* (ann 4 Integer) (ann 5 Integer) 6.0) -- possible exact real arith
TR missed opt: multiple-irritants.rkt 2:0 (* (ann 4 Integer) (ann 5 Integer) 6.0) -- all args float-arg-expr, result not Float -- caused by: 2:8 4, 2:24 5
END
#<<END
120.0
END
#lang typed/racket
#reader tests/typed-racket/optimizer/reset-port
(* (ann 4 Integer) (ann 5 Integer) 6.0)

View File

@ -1,25 +1,25 @@
#;#;
#<<END
TR info: nested-same-kind.rkt 37:0 (* 2.0 (* 3.0 (ann 4 Integer))) -- possible exact real arith
TR info: nested-same-kind.rkt 37:7 (* 3.0 (ann 4 Integer)) -- possible exact real arith
TR info: nested-same-kind.rkt 38:0 (* 1.0 (* 2.0 (* 3.0 (ann 4 Integer)))) -- possible exact real arith
TR info: nested-same-kind.rkt 38:14 (* 3.0 (ann 4 Integer)) -- possible exact real arith
TR info: nested-same-kind.rkt 38:7 (* 2.0 (* 3.0 (ann 4 Integer))) -- possible exact real arith
TR info: nested-same-kind.rkt 39:0 (* 2.0 (* 3.0 (ann 4 Integer) (ann 5 Integer))) -- possible exact real arith
TR info: nested-same-kind.rkt 39:7 (* 3.0 (ann 4 Integer) (ann 5 Integer)) -- possible exact real arith
TR info: nested-same-kind.rkt 40:0 (* (* 3.0 (ann 4 Integer)) (* 3.0 (ann 4 Integer))) -- possible exact real arith
TR info: nested-same-kind.rkt 40:27 (* 3.0 (ann 4 Integer)) -- possible exact real arith
TR info: nested-same-kind.rkt 40:3 (* 3.0 (ann 4 Integer)) -- possible exact real arith
TR missed opt: nested-same-kind.rkt 37:0 (* 2.0 (* 3.0 (ann 4 Integer))) -- all args float-arg-expr, result not Float -- caused by: 37:7 (* 3.0 (ann 4 Integer))
TR missed opt: nested-same-kind.rkt 37:7 (* 3.0 (ann 4 Integer)) -- all args float-arg-expr, result not Float -- caused by: 37:19 4
TR missed opt: nested-same-kind.rkt 38:0 (* 1.0 (* 2.0 (* 3.0 (ann 4 Integer)))) -- all args float-arg-expr, result not Float -- caused by: 38:7 (* 2.0 (* 3.0 (ann 4 Integer)))
TR missed opt: nested-same-kind.rkt 38:14 (* 3.0 (ann 4 Integer)) -- all args float-arg-expr, result not Float -- caused by: 38:26 4
TR missed opt: nested-same-kind.rkt 38:7 (* 2.0 (* 3.0 (ann 4 Integer))) -- all args float-arg-expr, result not Float -- caused by: 38:14 (* 3.0 (ann 4 Integer))
TR missed opt: nested-same-kind.rkt 39:0 (* 2.0 (* 3.0 (ann 4 Integer) (ann 5 Integer))) -- all args float-arg-expr, result not Float -- caused by: 39:7 (* 3.0 (ann 4 Integer) (ann 5 Integer))
TR missed opt: nested-same-kind.rkt 39:7 (* 3.0 (ann 4 Integer) (ann 5 Integer)) -- all args float-arg-expr, result not Float -- caused by: 39:19 4, 39:35 5
TR missed opt: nested-same-kind.rkt 40:0 (* (* 3.0 (ann 4 Integer)) (* 3.0 (ann 4 Integer))) -- all args float-arg-expr, result not Float -- caused by: 40:3 (* 3.0 (ann 4 Integer)), 40:27 (* 3.0 (ann 4 Integer))
TR missed opt: nested-same-kind.rkt 40:27 (* 3.0 (ann 4 Integer)) -- all args float-arg-expr, result not Float -- caused by: 40:39 4
TR missed opt: nested-same-kind.rkt 40:3 (* 3.0 (ann 4 Integer)) -- all args float-arg-expr, result not Float -- caused by: 40:15 4
TR info: nested-same-kind.rkt 5:0 (* 2.0 (* 3.0 (ann 4 Integer))) -- possible exact real arith
TR info: nested-same-kind.rkt 5:7 (* 3.0 (ann 4 Integer)) -- possible exact real arith
TR info: nested-same-kind.rkt 6:0 (* 1.0 (* 2.0 (* 3.0 (ann 4 Integer)))) -- possible exact real arith
TR info: nested-same-kind.rkt 6:14 (* 3.0 (ann 4 Integer)) -- possible exact real arith
TR info: nested-same-kind.rkt 6:7 (* 2.0 (* 3.0 (ann 4 Integer))) -- possible exact real arith
TR info: nested-same-kind.rkt 7:0 (* 2.0 (* 3.0 (ann 4 Integer) (ann 5 Integer))) -- possible exact real arith
TR info: nested-same-kind.rkt 7:7 (* 3.0 (ann 4 Integer) (ann 5 Integer)) -- possible exact real arith
TR info: nested-same-kind.rkt 8:0 (* (* 3.0 (ann 4 Integer)) (* 3.0 (ann 4 Integer))) -- possible exact real arith
TR info: nested-same-kind.rkt 8:27 (* 3.0 (ann 4 Integer)) -- possible exact real arith
TR info: nested-same-kind.rkt 8:3 (* 3.0 (ann 4 Integer)) -- possible exact real arith
TR missed opt: nested-same-kind.rkt 5:0 (* 2.0 (* 3.0 (ann 4 Integer))) -- all args float-arg-expr, result not Float -- caused by: 5:7 (* 3.0 (ann 4 Integer))
TR missed opt: nested-same-kind.rkt 5:7 (* 3.0 (ann 4 Integer)) -- all args float-arg-expr, result not Float -- caused by: 5:19 4
TR missed opt: nested-same-kind.rkt 6:0 (* 1.0 (* 2.0 (* 3.0 (ann 4 Integer)))) -- all args float-arg-expr, result not Float -- caused by: 6:7 (* 2.0 (* 3.0 (ann 4 Integer)))
TR missed opt: nested-same-kind.rkt 6:14 (* 3.0 (ann 4 Integer)) -- all args float-arg-expr, result not Float -- caused by: 6:26 4
TR missed opt: nested-same-kind.rkt 6:7 (* 2.0 (* 3.0 (ann 4 Integer))) -- all args float-arg-expr, result not Float -- caused by: 6:14 (* 3.0 (ann 4 Integer))
TR missed opt: nested-same-kind.rkt 7:0 (* 2.0 (* 3.0 (ann 4 Integer) (ann 5 Integer))) -- all args float-arg-expr, result not Float -- caused by: 7:7 (* 3.0 (ann 4 Integer) (ann 5 Integer))
TR missed opt: nested-same-kind.rkt 7:7 (* 3.0 (ann 4 Integer) (ann 5 Integer)) -- all args float-arg-expr, result not Float -- caused by: 7:19 4, 7:35 5
TR missed opt: nested-same-kind.rkt 8:0 (* (* 3.0 (ann 4 Integer)) (* 3.0 (ann 4 Integer))) -- all args float-arg-expr, result not Float -- caused by: 8:3 (* 3.0 (ann 4 Integer)), 8:27 (* 3.0 (ann 4 Integer))
TR missed opt: nested-same-kind.rkt 8:27 (* 3.0 (ann 4 Integer)) -- all args float-arg-expr, result not Float -- caused by: 8:39 4
TR missed opt: nested-same-kind.rkt 8:3 (* 3.0 (ann 4 Integer)) -- all args float-arg-expr, result not Float -- caused by: 8:15 4
END
#<<END
24.0
@ -28,8 +28,8 @@ END
144.0
END
#lang typed/racket
#reader tests/typed-racket/optimizer/reset-port
;; when a single "bubble" causes missed optimizations to cascade, a single
;; close call should be reported, with the outermost expression being reported
;; but with the innermost flagged as the cause

View File

@ -1,38 +1,38 @@
#;#;
#<<END
TR missed opt: pair.rkt 61:0 (car (ann (list 1 2 3) (Listof Byte))) -- car/cdr on a potentially empty list -- caused by: 61:10 (list 1 2 3)
TR missed opt: pair.rkt 63:0 (cdr (ann (list 1 2 3) (Listof Byte))) -- car/cdr on a potentially empty list -- caused by: 63:10 (list 1 2 3)
TR missed opt: pair.rkt 67:16 (cdr (cdr (cdr (cdr (list 1 2 3))))) -- car/cdr on a potentially empty list -- caused by: 67:21 (cdr (cdr (cdr (list 1 2 3))))
TR missed opt: pair.rkt 70:0 (mcar (values (ann (mlist 1) (MListof Byte)))) -- car/cdr on a potentially empty list -- caused by: 70:6 (values (ann (mlist 1) (MListof Byte)))
TR missed opt: pair.rkt 72:0 (mcdr (values (ann (mlist 1) (MListof Byte)))) -- car/cdr on a potentially empty list -- caused by: 72:6 (values (ann (mlist 1) (MListof Byte)))
TR missed opt: pair.rkt 76:0 (set-mcar! (values (ann (mlist 2) (MListof Byte))) 2) -- car/cdr on a potentially empty list -- caused by: 76:11 (values (ann (mlist 2) (MListof Byte)))
TR missed opt: pair.rkt 78:0 (set-mcdr! (values (ann (mlist 2) (MListof Byte))) (values (ann (mlist 2) (MListof Byte)))) -- car/cdr on a potentially empty list -- caused by: 78:11 (values (ann (mlist 2) (MListof Byte)))
TR missed opt: pair.rkt 84:17 (mcar (quote ())) -- car/cdr on a potentially empty list -- caused by: 84:23 (quote ())
TR missed opt: pair.rkt 85:17 (mcdr (quote ())) -- car/cdr on a potentially empty list -- caused by: 85:23 (quote ())
TR missed opt: pair.rkt 86:17 (set-mcar! (quote ()) 2) -- car/cdr on a potentially empty list -- caused by: 86:28 (quote ())
TR missed opt: pair.rkt 87:17 (set-mcdr! (ann (quote ()) (MListof Integer)) (ann (mlist 3) (MListof Integer))) -- car/cdr on a potentially empty list -- caused by: 87:33 (quote ())
TR opt: pair.rkt 62:0 (car (list 1 2 3)) -- pair
TR opt: pair.rkt 64:0 (cdr (list 1 2 3)) -- pair
TR opt: pair.rkt 65:0 (cdr (cdr (list 1 2 3))) -- pair
TR opt: pair.rkt 65:5 (cdr (list 1 2 3)) -- pair
TR opt: pair.rkt 66:0 (cdr (cdr (cdr (list 1 2 3)))) -- pair
TR opt: pair.rkt 66:10 (cdr (list 1 2 3)) -- pair
TR opt: pair.rkt 66:5 (cdr (cdr (list 1 2 3))) -- pair
TR opt: pair.rkt 67:21 (cdr (cdr (cdr (list 1 2 3)))) -- pair
TR opt: pair.rkt 67:26 (cdr (cdr (list 1 2 3))) -- pair
TR opt: pair.rkt 67:31 (cdr (list 1 2 3)) -- pair
TR opt: pair.rkt 71:0 (mcar (mlist 1 2 3)) -- pair
TR opt: pair.rkt 73:0 (mcdr (mlist 1 2 3)) -- pair
TR opt: pair.rkt 74:0 (mcdr (mcdr (mlist 1 2 3))) -- pair
TR opt: pair.rkt 74:6 (mcdr (mlist 1 2 3)) -- pair
TR opt: pair.rkt 75:0 (mcdr (mcdr (mcdr (mlist 1 2 3)))) -- pair
TR opt: pair.rkt 75:12 (mcdr (mlist 1 2 3)) -- pair
TR opt: pair.rkt 75:6 (mcdr (mcdr (mlist 1 2 3))) -- pair
TR opt: pair.rkt 77:0 (set-mcar! (mlist 2 3 4) 2) -- pair
TR opt: pair.rkt 80:0 (mcar (mcons 2 3)) -- pair
TR opt: pair.rkt 81:0 (mcdr (mcons 2 3)) -- pair
TR opt: pair.rkt 82:0 (set-mcar! (mcons 2 3) 3) -- pair
TR opt: pair.rkt 83:0 (set-mcdr! (mcons 2 3) 4) -- pair
TR missed opt: pair.rkt 12:16 (cdr (cdr (cdr (cdr (list 1 2 3))))) -- car/cdr on a potentially empty list -- caused by: 12:21 (cdr (cdr (cdr (list 1 2 3))))
TR missed opt: pair.rkt 15:0 (mcar (values (ann (mlist 1) (MListof Byte)))) -- car/cdr on a potentially empty list -- caused by: 15:6 (values (ann (mlist 1) (MListof Byte)))
TR missed opt: pair.rkt 17:0 (mcdr (values (ann (mlist 1) (MListof Byte)))) -- car/cdr on a potentially empty list -- caused by: 17:6 (values (ann (mlist 1) (MListof Byte)))
TR missed opt: pair.rkt 21:0 (set-mcar! (values (ann (mlist 2) (MListof Byte))) 2) -- car/cdr on a potentially empty list -- caused by: 21:11 (values (ann (mlist 2) (MListof Byte)))
TR missed opt: pair.rkt 23:0 (set-mcdr! (values (ann (mlist 2) (MListof Byte))) (values (ann (mlist 2) (MListof Byte)))) -- car/cdr on a potentially empty list -- caused by: 23:11 (values (ann (mlist 2) (MListof Byte)))
TR missed opt: pair.rkt 29:17 (mcar (quote ())) -- car/cdr on a potentially empty list -- caused by: 29:23 (quote ())
TR missed opt: pair.rkt 30:17 (mcdr (quote ())) -- car/cdr on a potentially empty list -- caused by: 30:23 (quote ())
TR missed opt: pair.rkt 31:17 (set-mcar! (quote ()) 2) -- car/cdr on a potentially empty list -- caused by: 31:28 (quote ())
TR missed opt: pair.rkt 32:17 (set-mcdr! (ann (quote ()) (MListof Integer)) (ann (mlist 3) (MListof Integer))) -- car/cdr on a potentially empty list -- caused by: 32:33 (quote ())
TR missed opt: pair.rkt 6:0 (car (ann (list 1 2 3) (Listof Byte))) -- car/cdr on a potentially empty list -- caused by: 6:10 (list 1 2 3)
TR missed opt: pair.rkt 8:0 (cdr (ann (list 1 2 3) (Listof Byte))) -- car/cdr on a potentially empty list -- caused by: 8:10 (list 1 2 3)
TR opt: pair.rkt 10:0 (cdr (cdr (list 1 2 3))) -- pair
TR opt: pair.rkt 10:5 (cdr (list 1 2 3)) -- pair
TR opt: pair.rkt 11:0 (cdr (cdr (cdr (list 1 2 3)))) -- pair
TR opt: pair.rkt 11:10 (cdr (list 1 2 3)) -- pair
TR opt: pair.rkt 11:5 (cdr (cdr (list 1 2 3))) -- pair
TR opt: pair.rkt 12:21 (cdr (cdr (cdr (list 1 2 3)))) -- pair
TR opt: pair.rkt 12:26 (cdr (cdr (list 1 2 3))) -- pair
TR opt: pair.rkt 12:31 (cdr (list 1 2 3)) -- pair
TR opt: pair.rkt 16:0 (mcar (mlist 1 2 3)) -- pair
TR opt: pair.rkt 18:0 (mcdr (mlist 1 2 3)) -- pair
TR opt: pair.rkt 19:0 (mcdr (mcdr (mlist 1 2 3))) -- pair
TR opt: pair.rkt 19:6 (mcdr (mlist 1 2 3)) -- pair
TR opt: pair.rkt 20:0 (mcdr (mcdr (mcdr (mlist 1 2 3)))) -- pair
TR opt: pair.rkt 20:12 (mcdr (mlist 1 2 3)) -- pair
TR opt: pair.rkt 20:6 (mcdr (mcdr (mlist 1 2 3))) -- pair
TR opt: pair.rkt 22:0 (set-mcar! (mlist 2 3 4) 2) -- pair
TR opt: pair.rkt 25:0 (mcar (mcons 2 3)) -- pair
TR opt: pair.rkt 26:0 (mcdr (mcons 2 3)) -- pair
TR opt: pair.rkt 27:0 (set-mcar! (mcons 2 3) 3) -- pair
TR opt: pair.rkt 28:0 (set-mcdr! (mcons 2 3) 4) -- pair
TR opt: pair.rkt 7:0 (car (list 1 2 3)) -- pair
TR opt: pair.rkt 9:0 (cdr (list 1 2 3)) -- pair
END
#<<END
1
@ -51,8 +51,8 @@ END
3
END
#lang typed/racket
#reader tests/typed-racket/optimizer/reset-port
(require compatibility/mlist)
;; car/cdr can be optimized if they are guaranteed to be applied only to

View File

@ -1,23 +1,23 @@
#;#;
#<<END
TR info: precision-loss.rkt 38:3 (* 3/4 2/3) -- possible exact real arith
TR info: precision-loss.rkt 42:3 (- 3/4) -- possible exact real arith
TR info: precision-loss.rkt 44:39 (+ 1/4 3/4) -- possible exact real arith
TR info: precision-loss.rkt 50:0 (* (* (r 3/4) 2/3) (car (list (* 2.0 (* (r 3/4) 2/3)))) 2.0) -- possible exact real arith
TR info: precision-loss.rkt 50:3 (* (r 3/4) 2/3) -- possible exact real arith
TR info: precision-loss.rkt 51:14 (* 2.0 (* (r 3/4) 2/3)) -- possible exact real arith
TR info: precision-loss.rkt 51:21 (* (r 3/4) 2/3) -- possible exact real arith
TR missed opt: precision-loss.rkt 38:0 (+ (* 3/4 2/3) 2.0) -- exact ops inside float expr -- caused by: 38:3 (* 3/4 2/3)
TR missed opt: precision-loss.rkt 42:0 (+ (- 3/4) 2.0) -- exact ops inside float expr -- caused by: 42:3 (- 3/4)
TR missed opt: precision-loss.rkt 44:0 (+ (vector-ref (quote #(2/3 1/2 3/4)) (assert (+ 1/4 3/4) exact-integer?)) 2.0) -- all args float-arg-expr, result not Float -- caused by: 44:3 (vector-ref (quote #(2/3 1/2 3/4)) (assert (+ 1/4 3/4) exact-integer?))
TR missed opt: precision-loss.rkt 50:0 (* (* (r 3/4) 2/3) (car (list (* 2.0 (* (r 3/4) 2/3)))) 2.0) -- all args float-arg-expr, result not Float -- caused by: 50:3 (* (r 3/4) 2/3), 51:3 (car (list (* 2.0 (* (r 3/4) 2/3))))
TR missed opt: precision-loss.rkt 50:3 (* (r 3/4) 2/3) -- all args float-arg-expr, result not Float -- caused by: 50:6 (r 3/4), 50:14 2/3
TR missed opt: precision-loss.rkt 51:14 (* 2.0 (* (r 3/4) 2/3)) -- all args float-arg-expr, result not Float -- caused by: 51:21 (* (r 3/4) 2/3)
TR missed opt: precision-loss.rkt 51:21 (* (r 3/4) 2/3) -- all args float-arg-expr, result not Float -- caused by: 51:24 (r 3/4), 51:32 2/3
TR opt: precision-loss.rkt 38:0 (+ (* 3/4 2/3) 2.0) -- binary float
TR opt: precision-loss.rkt 40:0 (+ 3/4 2.0) -- binary float
TR opt: precision-loss.rkt 42:0 (+ (- 3/4) 2.0) -- binary float
TR opt: precision-loss.rkt 51:3 (car (list (* 2.0 (* (r 3/4) 2/3)))) -- pair
TR info: precision-loss.rkt 10:3 (- 3/4) -- possible exact real arith
TR info: precision-loss.rkt 12:39 (+ 1/4 3/4) -- possible exact real arith
TR info: precision-loss.rkt 18:0 (* (* (r 3/4) 2/3) (car (list (* 2.0 (* (r 3/4) 2/3)))) 2.0) -- possible exact real arith
TR info: precision-loss.rkt 18:3 (* (r 3/4) 2/3) -- possible exact real arith
TR info: precision-loss.rkt 19:14 (* 2.0 (* (r 3/4) 2/3)) -- possible exact real arith
TR info: precision-loss.rkt 19:21 (* (r 3/4) 2/3) -- possible exact real arith
TR info: precision-loss.rkt 6:3 (* 3/4 2/3) -- possible exact real arith
TR missed opt: precision-loss.rkt 10:0 (+ (- 3/4) 2.0) -- exact ops inside float expr -- caused by: 10:3 (- 3/4)
TR missed opt: precision-loss.rkt 12:0 (+ (vector-ref (quote #(2/3 1/2 3/4)) (assert (+ 1/4 3/4) exact-integer?)) 2.0) -- all args float-arg-expr, result not Float -- caused by: 12:3 (vector-ref (quote #(2/3 1/2 3/4)) (assert (+ 1/4 3/4) exact-integer?))
TR missed opt: precision-loss.rkt 18:0 (* (* (r 3/4) 2/3) (car (list (* 2.0 (* (r 3/4) 2/3)))) 2.0) -- all args float-arg-expr, result not Float -- caused by: 18:3 (* (r 3/4) 2/3), 19:3 (car (list (* 2.0 (* (r 3/4) 2/3))))
TR missed opt: precision-loss.rkt 18:3 (* (r 3/4) 2/3) -- all args float-arg-expr, result not Float -- caused by: 18:6 (r 3/4), 18:14 2/3
TR missed opt: precision-loss.rkt 19:14 (* 2.0 (* (r 3/4) 2/3)) -- all args float-arg-expr, result not Float -- caused by: 19:21 (* (r 3/4) 2/3)
TR missed opt: precision-loss.rkt 19:21 (* (r 3/4) 2/3) -- all args float-arg-expr, result not Float -- caused by: 19:24 (r 3/4), 19:32 2/3
TR missed opt: precision-loss.rkt 6:0 (+ (* 3/4 2/3) 2.0) -- exact ops inside float expr -- caused by: 6:3 (* 3/4 2/3)
TR opt: precision-loss.rkt 10:0 (+ (- 3/4) 2.0) -- binary float
TR opt: precision-loss.rkt 19:3 (car (list (* 2.0 (* (r 3/4) 2/3)))) -- pair
TR opt: precision-loss.rkt 6:0 (+ (* 3/4 2/3) 2.0) -- binary float
TR opt: precision-loss.rkt 8:0 (+ 3/4 2.0) -- binary float
END
#<<END
2.5
@ -27,9 +27,8 @@ END
1.0
END
#lang typed/racket
#reader tests/typed-racket/optimizer/reset-port
(: r (Real -> Real))
(define (r x) x)
;; warn when the extra precision gained by doing exact computations would

View File

@ -1,12 +1,12 @@
#;#;
#<<END
TR info: real-in-float-expr.rkt 23:0 (* (ann 3 Real) 2.3) -- possible exact real arith
TR info: real-in-float-expr.rkt 30:0 (+ 2/3 3/4) -- possible exact real arith
TR info: real-in-float-expr.rkt 32:0 (* (ann 2 Natural) 2.0) -- possible exact real arith
TR missed opt: real-in-float-expr.rkt 23:0 (* (ann 3 Real) 2.3) -- all args float-arg-expr, result not Float -- caused by: 23:8 3
TR missed opt: real-in-float-expr.rkt 32:0 (* (ann 2 Natural) 2.0) -- all args float-arg-expr, result not Float -- caused by: 32:8 2
TR opt: real-in-float-expr.rkt 28:0 (* 2 3) -- fixnum bounded expr
TR opt: real-in-float-expr.rkt 29:0 (+ 2 3) -- fixnum bounded expr
TR info: real-in-float-expr.rkt 11:0 (* (ann 2 Natural) 2.0) -- possible exact real arith
TR info: real-in-float-expr.rkt 2:0 (* (ann 3 Real) 2.3) -- possible exact real arith
TR info: real-in-float-expr.rkt 9:0 (+ 2/3 3/4) -- possible exact real arith
TR missed opt: real-in-float-expr.rkt 11:0 (* (ann 2 Natural) 2.0) -- all args float-arg-expr, result not Float -- caused by: 11:8 2
TR missed opt: real-in-float-expr.rkt 2:0 (* (ann 3 Real) 2.3) -- all args float-arg-expr, result not Float -- caused by: 2:8 3
TR opt: real-in-float-expr.rkt 7:0 (* 2 3) -- fixnum bounded expr
TR opt: real-in-float-expr.rkt 8:0 (+ 2 3) -- fixnum bounded expr
END
#<<END
6.8999999999999995
@ -19,6 +19,7 @@ END
END
#lang typed/racket
#reader tests/typed-racket/optimizer/reset-port
(* (ann 3 Real) ; with type Real, typechecker must assume it could be exact 0
2.3)

View File

@ -1,9 +1,10 @@
#;#;
#<<END
TR missed opt: sequence.rkt 10:22 s -- non-specialized for clause
TR missed opt: sequence.rkt 4:22 s -- non-specialized for clause
END
""
#lang typed/racket/base
#reader tests/typed-racket/optimizer/reset-port
(: seq-generic : (Sequenceof Integer) -> Void)
(define (seq-generic s)

View File

@ -1,11 +1,10 @@
#;#;
#<<END
TR info: struct-constructor.rkt 14:7 foo -- struct constructor
TR info: struct-constructor.rkt 6:7 foo -- struct constructor
END
""
#lang typed/racket
#reader tests/typed-racket/optimizer/reset-port
(provide (struct-out foo))

View File

@ -1,11 +1,11 @@
#;#;
#<<END
TR info: unary-float.rkt 20:0 (sin (ann 3.4 Real)) -- possible exact real arith
TR info: unary-float.rkt 21:0 (sin 3) -- possible exact real arith
TR info: unary-float.rkt 22:0 (abs (ann 3.4 Real)) -- possible exact real arith
TR missed opt: unary-float.rkt 20:0 (sin (ann 3.4 Real)) -- all args float-arg-expr, result not Float -- caused by: 20:10 3.4
TR missed opt: unary-float.rkt 21:0 (sin 3) -- all args float-arg-expr, result not Float -- caused by: 21:5 3
TR missed opt: unary-float.rkt 22:0 (abs (ann 3.4 Real)) -- all args float-arg-expr, result not Float -- caused by: 22:10 3.4
TR info: unary-float.rkt 2:0 (sin (ann 3.4 Real)) -- possible exact real arith
TR info: unary-float.rkt 3:0 (sin 3) -- possible exact real arith
TR info: unary-float.rkt 4:0 (abs (ann 3.4 Real)) -- possible exact real arith
TR missed opt: unary-float.rkt 2:0 (sin (ann 3.4 Real)) -- all args float-arg-expr, result not Float -- caused by: 2:10 3.4
TR missed opt: unary-float.rkt 3:0 (sin 3) -- all args float-arg-expr, result not Float -- caused by: 3:5 3
TR missed opt: unary-float.rkt 4:0 (abs (ann 3.4 Real)) -- all args float-arg-expr, result not Float -- caused by: 4:10 3.4
END
#<<END
-0.2555411020268312
@ -14,8 +14,8 @@ END
3
END
#lang typed/racket
#reader tests/typed-racket/optimizer/reset-port
(sin (ann 3.4 Real))
(sin 3)

View File

@ -1,17 +1,17 @@
#;#;
#<<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 in complex ops
TR opt: unexpected-complex.rkt 19:3 1.2+3.4i -- unboxed literal
TR missed opt: unexpected-complex.rkt 4:0 (sqrt (ann 4 Integer)) -- unexpected complex type
TR opt: unexpected-complex.rkt 5:0 (+ 1.2+3.4i 2.0) -- unboxed binary float complex
TR opt: unexpected-complex.rkt 5:12 2.0 -- float in complex ops
TR opt: unexpected-complex.rkt 5:3 1.2+3.4i -- unboxed literal
END
#<<END
2
3.2+3.4i
END
#lang typed/racket
#reader tests/typed-racket/optimizer/reset-port
;; a Complex type is "unexpected" if it pops up in an expressions for which
;; all subexpressions have a Real type

View File

@ -0,0 +1,11 @@
#lang racket/base
;; Reader extension used by the optimizer tests to make changes to the logging less disruptive to
;; existing logging.
(provide read-syntax)
(define (read-syntax name port)
(read-line port)
(when (port-counts-lines? port)
(set-port-next-location! port 1 0 1))
(make-special-comment 'typed-racket/optimizer/reset-port))

View File

@ -1,9 +1,9 @@
#;#;
#<<END
TR opt: add1.rkt 17:5 (add1 5) -- fixnum add1
TR opt: add1.rkt 18:5 (sub1 3) -- fixnum sub1
TR opt: add1.rkt 19:5 (add1 2.3) -- float add1
TR opt: add1.rkt 20:5 (sub1 2.25) -- float sub1
TR opt: add1.rkt 1:5 (add1 5) -- fixnum add1
TR opt: add1.rkt 2:5 (sub1 3) -- fixnum sub1
TR opt: add1.rkt 3:5 (add1 2.3) -- float add1
TR opt: add1.rkt 4:5 (sub1 2.25) -- float sub1
END
#<<END
6
@ -12,8 +12,8 @@ END
1.25
END
#lang typed/racket #:optimize
#reader tests/typed-racket/optimizer/reset-port
(ann (add1 5) Fixnum)
(ann (sub1 3) Fixnum)
(ann (add1 2.3) Float)

View File

@ -1,12 +1,13 @@
#;#;
#<<END
TR opt: annotations.rkt 11:10 (+ 1.0 2.0) -- binary float
TR opt: annotations.rkt 14:10 (+ 1.0 2.0) -- binary float
TR opt: annotations.rkt 17:10 (+ 1.0 2.0) -- binary float
TR opt: annotations.rkt 19:15 (+ 1.0 2.0) -- binary float
TR opt: annotations.rkt 10:15 (+ 1.0 2.0) -- binary float
TR opt: annotations.rkt 2:10 (+ 1.0 2.0) -- binary float
TR opt: annotations.rkt 5:10 (+ 1.0 2.0) -- binary float
TR opt: annotations.rkt 8:10 (+ 1.0 2.0) -- binary float
END
""
#lang typed/racket #:optimize
#reader tests/typed-racket/optimizer/reset-port
(define a (+ 1.0 2.0))

View File

@ -1,7 +1,7 @@
#;#;
#<<END
TR opt: apply-plus.rkt 15:0 (apply + (map add1 (list 1 2 3))) -- apply-map
TR opt: apply-plus.rkt 16:0 (apply * (map add1 (list 1 2 3))) -- apply-map
TR opt: apply-plus.rkt 2:0 (apply + (map add1 (list 1 2 3))) -- apply-map
TR opt: apply-plus.rkt 3:0 (apply * (map add1 (list 1 2 3))) -- apply-map
END
#<<END
9
@ -11,6 +11,7 @@ END
#lang typed/racket
#:optimize
#reader tests/typed-racket/optimizer/reset-port
(apply + (map add1 (list 1 2 3)))
(apply * (map add1 (list 1 2 3)))

View File

@ -1,7 +1,7 @@
#;#;
#<<END
TR opt: begin-float.rkt 15:7 (- 2.0 3.0) -- binary float
TR opt: begin-float.rkt 16:7 (* 2.0 3.0) -- binary float
TR opt: begin-float.rkt 2:7 (- 2.0 3.0) -- binary float
TR opt: begin-float.rkt 3:7 (* 2.0 3.0) -- binary float
END
#<<END
-1.0
@ -11,6 +11,7 @@ END
#lang typed/scheme
#:optimize
#reader tests/typed-racket/optimizer/reset-port
(begin (- 2.0 3.0)
(* 2.0 3.0))

View File

@ -1,12 +1,12 @@
#;#;
#<<END
TR opt: binary-fixnum.rkt 13:15 (vector-length v) -- vector-length
TR opt: binary-fixnum.rkt 13:2 (bitwise-and (vector-length v) 1) -- binary fixnum
TR opt: binary-fixnum.rkt 4:15 (vector-length v) -- vector-length
TR opt: binary-fixnum.rkt 4:2 (bitwise-and (vector-length v) 1) -- binary fixnum
END
""
#lang typed/scheme
#:optimize
#reader tests/typed-racket/optimizer/reset-port
(: f (All (X) ((Vectorof X) -> Natural)))
(define (f v)

View File

@ -1,7 +1,7 @@
#;#;
#<<END
TR opt: binary-nonzero-fixnum.rkt 14:0 (modulo (vector-length (quote #(1 2 3))) 2) -- binary nonzero fixnum
TR opt: binary-nonzero-fixnum.rkt 14:8 (vector-length (quote #(1 2 3))) -- known-length vector-length
TR opt: binary-nonzero-fixnum.rkt 2:0 (modulo (vector-length (quote #(1 2 3))) 2) -- binary nonzero fixnum
TR opt: binary-nonzero-fixnum.rkt 2:8 (vector-length (quote #(1 2 3))) -- known-length vector-length
END
#<<END
1
@ -10,5 +10,6 @@ END
#lang typed/scheme
#:optimize
#reader tests/typed-racket/optimizer/reset-port
(modulo (vector-length '#(1 2 3)) 2)

View File

@ -1,19 +1,19 @@
#;#;
#<<END
TR info: bounds-check.rkt 46:1 displayln -- hidden parameter
TR info: bounds-check.rkt 48:1 displayln -- hidden parameter
TR info: bounds-check.rkt 50:1 displayln -- hidden parameter
TR info: bounds-check.rkt 67:1 displayln -- hidden parameter
TR info: bounds-check.rkt 69:1 displayln -- hidden parameter
TR info: bounds-check.rkt 71:1 displayln -- hidden parameter
TR opt: bounds-check.rkt 34:2 (vector-ref v i) -- vector partial bounds checking elimination
TR opt: bounds-check.rkt 37:2 (vector-set! v i n) -- vector partial bounds checking elimination
TR opt: bounds-check.rkt 40:2 (vector-ref v i) -- vector partial bounds checking elimination
TR opt: bounds-check.rkt 43:2 (vector-set! v i n) -- vector partial bounds checking elimination
TR opt: bounds-check.rkt 55:2 (flvector-ref v i) -- flvector partial bounds checking elimination
TR opt: bounds-check.rkt 58:2 (flvector-set! v i n) -- flvector partial bounds checking elimination
TR opt: bounds-check.rkt 61:2 (flvector-ref v i) -- flvector partial bounds checking elimination
TR opt: bounds-check.rkt 64:2 (flvector-set! v i n) -- flvector partial bounds checking elimination
TR info: bounds-check.rkt 18:1 displayln -- hidden parameter
TR info: bounds-check.rkt 20:1 displayln -- hidden parameter
TR info: bounds-check.rkt 22:1 displayln -- hidden parameter
TR info: bounds-check.rkt 39:1 displayln -- hidden parameter
TR info: bounds-check.rkt 41:1 displayln -- hidden parameter
TR info: bounds-check.rkt 43:1 displayln -- hidden parameter
TR opt: bounds-check.rkt 12:2 (vector-ref v i) -- vector partial bounds checking elimination
TR opt: bounds-check.rkt 15:2 (vector-set! v i n) -- vector partial bounds checking elimination
TR opt: bounds-check.rkt 27:2 (flvector-ref v i) -- flvector partial bounds checking elimination
TR opt: bounds-check.rkt 30:2 (flvector-set! v i n) -- flvector partial bounds checking elimination
TR opt: bounds-check.rkt 33:2 (flvector-ref v i) -- flvector partial bounds checking elimination
TR opt: bounds-check.rkt 36:2 (flvector-set! v i n) -- flvector partial bounds checking elimination
TR opt: bounds-check.rkt 6:2 (vector-ref v i) -- vector partial bounds checking elimination
TR opt: bounds-check.rkt 9:2 (vector-set! v i n) -- vector partial bounds checking elimination
END
#<<END
3
@ -26,6 +26,7 @@ END
END
#lang typed/racket
#reader tests/typed-racket/optimizer/reset-port
(require racket/flonum)

View File

@ -1,8 +1,8 @@
#;#;
#<<END
TR opt: box.rkt 20:0 (unbox x) -- box
TR opt: box.rkt 21:0 (set-box! x 2) -- box
TR opt: box.rkt 22:0 (unbox x) -- box
TR opt: box.rkt 4:0 (unbox x) -- box
TR opt: box.rkt 5:0 (set-box! x 2) -- box
TR opt: box.rkt 6:0 (unbox x) -- box
END
#<<END
1
@ -12,8 +12,7 @@ END
#lang typed/scheme
#:optimize
#reader tests/typed-racket/optimizer/reset-port
(: x (Boxof Integer))
(define x (box 1))

View File

@ -1,30 +1,17 @@
#;#;
#<<END
TR info: case-arrow.rkt 42:12 (* (- max min) x) -- possible exact real arith
TR info: case-arrow.rkt 42:15 (- max min) -- possible exact real arith
TR info: case-arrow.rkt 42:2 (+ min (/ (* (- max min) x) p)) -- possible exact real arith
TR info: case-arrow.rkt 42:9 (/ (* (- max min) x) p) -- possible exact real arith
TR missed opt: case-arrow.rkt 42:12 (* (- max min) x) -- all args float-arg-expr, result not Float -- caused by: 42:15 (- max min), 42:27 x
TR missed opt: case-arrow.rkt 42:15 (- max min) -- all args float-arg-expr, result not Float -- caused by: 42:18 max, 42:22 min
TR missed opt: case-arrow.rkt 42:2 (+ min (/ (* (- max min) x) p)) -- all args float-arg-expr, result not Float -- caused by: 42:5 min, 42:9 (/ (* (- max min) x) p)
TR missed opt: case-arrow.rkt 42:9 (/ (* (- max min) x) p) -- all args float-arg-expr, result not Float -- caused by: 42:12 (* (- max min) x), 42:30 p
TR info: case-arrow.rkt 15:12 (* (- max min) x) -- possible exact real arith
TR info: case-arrow.rkt 15:15 (- max min) -- possible exact real arith
TR info: case-arrow.rkt 15:2 (+ min (/ (* (- max min) x) p)) -- possible exact real arith
TR info: case-arrow.rkt 15:9 (/ (* (- max min) x) p) -- possible exact real arith
TR missed opt: case-arrow.rkt 15:12 (* (- max min) x) -- all args float-arg-expr, result not Float -- caused by: 15:15 (- max min), 15:27 x
TR missed opt: case-arrow.rkt 15:15 (- max min) -- all args float-arg-expr, result not Float -- caused by: 15:18 max, 15:22 min
TR missed opt: case-arrow.rkt 15:2 (+ min (/ (* (- max min) x) p)) -- all args float-arg-expr, result not Float -- caused by: 15:5 min, 15:9 (/ (* (- max min) x) p)
TR missed opt: case-arrow.rkt 15:9 (/ (* (- max min) x) p) -- all args float-arg-expr, result not Float -- caused by: 15:12 (* (- max min) x), 15:30 p
END
""
#lang typed/racket
#reader tests/typed-racket/optimizer/reset-port
;; Typechecking functions with case-> types causes the body to be typechecked
;; multiple times, which is fine, except that it used to cause the type table

View File

@ -1,10 +1,11 @@
#;#;
#<<END
TR opt: case-lambda-dead-branch.rkt 13:5 (x y) -- dead case-lambda branch
TR opt: case-lambda-dead-branch.rkt 19:5 (x y) -- dead case-lambda branch
TR opt: case-lambda-dead-branch.rkt 12:5 (x y) -- dead case-lambda branch
TR opt: case-lambda-dead-branch.rkt 6:5 (x y) -- dead case-lambda branch
END
""
#lang typed/racket
#reader tests/typed-racket/optimizer/reset-port
(: f (case-> (Symbol Symbol -> String)))
(define f

View File

@ -1,16 +1,16 @@
#;#;
#<<END
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) -- non float complex in complex ops
TR opt: complex-exp.rkt 16:8 0 -- non float complex in complex ops
TR missed opt: complex-exp.rkt 2:3 (exp 0) -- non-complex value in complex arithmetic
TR opt: complex-exp.rkt 2:0 (- (exp 0) 1.0+2.0i) -- unboxed binary float complex
TR opt: complex-exp.rkt 2:11 1.0+2.0i -- unboxed literal
TR opt: complex-exp.rkt 2:3 (exp 0) -- non float complex in complex ops
TR opt: complex-exp.rkt 2:8 0 -- non float complex in complex ops
END
#<<END
0.0-2.0i
END
#lang typed/racket
#reader tests/typed-racket/optimizer/reset-port
(- (exp 0) 1.0+2.0i)

View File

@ -2,8 +2,8 @@
#<<END
END
""
#lang typed/scheme #:optimize
#reader tests/typed-racket/optimizer/reset-port
;; will be imported by cross-module-struct2
(provide (struct-out x))

View File

@ -1,13 +1,13 @@
#;#;
#<<END
TR opt: cross-module-struct2.rkt 14:0 (x-x a) -- struct ref
TR opt: cross-module-struct2.rkt 4:0 (x-x a) -- struct ref
END
#<<END
1
END
#lang typed/scheme #:optimize
#reader tests/typed-racket/optimizer/reset-port
(require (file "cross-module-struct.rkt"))
(define a (make-x 1))

View File

@ -1,15 +1,16 @@
#;#;
#<<END
TR info: dead-else.rkt 13:1 display -- hidden parameter
TR info: dead-else.rkt 16:1 display -- hidden parameter
TR opt: dead-else.rkt 14:13 (+ 2.0 3.0) -- binary float
TR opt: dead-else.rkt 15:13 (+ 4.0 5.0) -- dead else branch
TR opt: dead-else.rkt 17:13 (+ 2.0 3.0) -- binary float
TR opt: dead-else.rkt 18:13 (+ 4.0 5.0) -- dead else branch
TR info: dead-else.rkt 1:1 display -- hidden parameter
TR info: dead-else.rkt 4:1 display -- hidden parameter
TR opt: dead-else.rkt 2:13 (+ 2.0 3.0) -- binary float
TR opt: dead-else.rkt 3:13 (+ 4.0 5.0) -- dead else branch
TR opt: dead-else.rkt 5:13 (+ 2.0 3.0) -- binary float
TR opt: dead-else.rkt 6:13 (+ 4.0 5.0) -- dead else branch
END
"5.05.0"
#lang typed/scheme
#:optimize
#reader tests/typed-racket/optimizer/reset-port
(display (if (number? 3)
(+ 2.0 3.0)
(+ 4.0 5.0)))

View File

@ -1,83 +1,83 @@
#;#;
#<<END
TR info: dead-inf-comp.rkt 177:4 (< rat +inf.f) -- possible exact real arith
TR info: dead-inf-comp.rkt 180:4 (< +inf.f rat) -- possible exact real arith
TR info: dead-inf-comp.rkt 183:4 (< rat -inf.f) -- possible exact real arith
TR info: dead-inf-comp.rkt 186:4 (< -inf.f rat) -- possible exact real arith
TR info: dead-inf-comp.rkt 190:4 (> +inf.f rat) -- possible exact real arith
TR info: dead-inf-comp.rkt 193:4 (> rat +inf.f) -- possible exact real arith
TR info: dead-inf-comp.rkt 196:4 (> -inf.f rat) -- possible exact real arith
TR info: dead-inf-comp.rkt 199:4 (> rat -inf.f) -- possible exact real arith
TR info: dead-inf-comp.rkt 203:4 (<= rat +inf.f) -- possible exact real arith
TR info: dead-inf-comp.rkt 206:4 (<= +inf.f rat) -- possible exact real arith
TR info: dead-inf-comp.rkt 209:4 (<= rat -inf.f) -- possible exact real arith
TR info: dead-inf-comp.rkt 212:4 (<= -inf.f rat) -- possible exact real arith
TR info: dead-inf-comp.rkt 216:4 (>= +inf.f rat) -- possible exact real arith
TR info: dead-inf-comp.rkt 219:4 (>= rat +inf.f) -- possible exact real arith
TR info: dead-inf-comp.rkt 222:4 (>= -inf.f rat) -- possible exact real arith
TR info: dead-inf-comp.rkt 225:4 (>= rat -inf.f) -- possible exact real arith
TR info: dead-inf-comp.rkt 230:41 displayln -- hidden parameter
TR info: dead-inf-comp.rkt 230:41 displayln -- hidden parameter
TR missed opt: dead-inf-comp.rkt 124:4 (< rat +inf.0) -- generic comparison -- caused by: 124:7 rat
TR missed opt: dead-inf-comp.rkt 127:4 (< +inf.0 rat) -- generic comparison -- caused by: 127:14 rat
TR missed opt: dead-inf-comp.rkt 130:4 (< rat -inf.0) -- generic comparison -- caused by: 130:7 rat
TR missed opt: dead-inf-comp.rkt 133:4 (< -inf.0 rat) -- generic comparison -- caused by: 133:14 rat
TR missed opt: dead-inf-comp.rkt 137:4 (> +inf.0 rat) -- generic comparison -- caused by: 137:14 rat
TR missed opt: dead-inf-comp.rkt 140:4 (> rat +inf.0) -- generic comparison -- caused by: 140:7 rat
TR missed opt: dead-inf-comp.rkt 143:4 (> -inf.0 rat) -- generic comparison -- caused by: 143:14 rat
TR missed opt: dead-inf-comp.rkt 146:4 (> rat -inf.0) -- generic comparison -- caused by: 146:7 rat
TR missed opt: dead-inf-comp.rkt 150:4 (<= rat +inf.0) -- generic comparison -- caused by: 150:8 rat
TR missed opt: dead-inf-comp.rkt 153:4 (<= +inf.0 rat) -- generic comparison -- caused by: 153:15 rat
TR missed opt: dead-inf-comp.rkt 156:4 (<= rat -inf.0) -- generic comparison -- caused by: 156:8 rat
TR missed opt: dead-inf-comp.rkt 159:4 (<= -inf.0 rat) -- generic comparison -- caused by: 159:15 rat
TR missed opt: dead-inf-comp.rkt 163:4 (>= +inf.0 rat) -- generic comparison -- caused by: 163:15 rat
TR missed opt: dead-inf-comp.rkt 166:4 (>= rat +inf.0) -- generic comparison -- caused by: 166:8 rat
TR missed opt: dead-inf-comp.rkt 169:4 (>= -inf.0 rat) -- generic comparison -- caused by: 169:15 rat
TR missed opt: dead-inf-comp.rkt 172:4 (>= rat -inf.0) -- generic comparison -- caused by: 172:8 rat
TR missed opt: dead-inf-comp.rkt 230:0 (for: ((i (in-range 5 +inf.0 2)) (j 3)) (displayln i)) -- generic comparison -- caused by: 230:0 (for: ((i (in-range 5 +inf.0 2)) (j 3)) (displayln i))
TR missed opt: dead-inf-comp.rkt 230:0 (for: ((i (in-range 5 +inf.0 2)) (j 3)) (displayln i)) -- generic comparison -- caused by: 230:0 (for: ((i (in-range 5 +inf.0 2)) (j 3)) (displayln i))
TR opt: dead-inf-comp.rkt 126:4 (quote dead) -- dead else branch
TR opt: dead-inf-comp.rkt 128:4 (quote dead) -- dead then branch
TR opt: dead-inf-comp.rkt 131:4 (quote dead) -- dead then branch
TR opt: dead-inf-comp.rkt 135:4 (quote dead) -- dead else branch
TR opt: dead-inf-comp.rkt 139:4 (quote dead) -- dead else branch
TR opt: dead-inf-comp.rkt 141:4 (quote dead) -- dead then branch
TR opt: dead-inf-comp.rkt 144:4 (quote dead) -- dead then branch
TR opt: dead-inf-comp.rkt 148:4 (quote dead) -- dead else branch
TR opt: dead-inf-comp.rkt 152:4 (quote dead) -- dead else branch
TR opt: dead-inf-comp.rkt 154:4 (quote dead) -- dead then branch
TR opt: dead-inf-comp.rkt 157:4 (quote dead) -- dead then branch
TR opt: dead-inf-comp.rkt 161:4 (quote dead) -- dead else branch
TR opt: dead-inf-comp.rkt 165:4 (quote dead) -- dead else branch
TR opt: dead-inf-comp.rkt 167:4 (quote dead) -- dead then branch
TR opt: dead-inf-comp.rkt 170:4 (quote dead) -- dead then branch
TR opt: dead-inf-comp.rkt 174:4 (quote dead) -- dead else branch
TR opt: dead-inf-comp.rkt 179:4 (quote dead) -- dead else branch
TR opt: dead-inf-comp.rkt 181:4 (quote dead) -- dead then branch
TR opt: dead-inf-comp.rkt 184:4 (quote dead) -- dead then branch
TR opt: dead-inf-comp.rkt 188:4 (quote dead) -- dead else branch
TR opt: dead-inf-comp.rkt 192:4 (quote dead) -- dead else branch
TR opt: dead-inf-comp.rkt 194:4 (quote dead) -- dead then branch
TR opt: dead-inf-comp.rkt 197:4 (quote dead) -- dead then branch
TR opt: dead-inf-comp.rkt 201:4 (quote dead) -- dead else branch
TR opt: dead-inf-comp.rkt 205:4 (quote dead) -- dead else branch
TR opt: dead-inf-comp.rkt 207:4 (quote dead) -- dead then branch
TR opt: dead-inf-comp.rkt 210:4 (quote dead) -- dead then branch
TR opt: dead-inf-comp.rkt 214:4 (quote dead) -- dead else branch
TR opt: dead-inf-comp.rkt 218:4 (quote dead) -- dead else branch
TR opt: dead-inf-comp.rkt 220:4 (quote dead) -- dead then branch
TR opt: dead-inf-comp.rkt 223:4 (quote dead) -- dead then branch
TR opt: dead-inf-comp.rkt 227:4 (quote dead) -- dead else branch
TR opt: dead-inf-comp.rkt 230:0 (for: ((i (in-range 5 +inf.0 2)) (j 3)) (displayln i)) -- dead else branch
TR opt: dead-inf-comp.rkt 230:0 (for: ((i (in-range 5 +inf.0 2)) (j 3)) (displayln i)) -- dead else branch
TR opt: dead-inf-comp.rkt 230:0 (for: ((i (in-range 5 +inf.0 2)) (j 3)) (displayln i)) -- dead else branch
TR opt: dead-inf-comp.rkt 230:0 (for: ((i (in-range 5 +inf.0 2)) (j 3)) (displayln i)) -- dead else branch
TR opt: dead-inf-comp.rkt 230:0 (for: ((i (in-range 5 +inf.0 2)) (j 3)) (displayln i)) -- dead else branch
TR opt: dead-inf-comp.rkt 230:0 (for: ((i (in-range 5 +inf.0 2)) (j 3)) (displayln i)) -- dead else branch
TR opt: dead-inf-comp.rkt 230:0 (for: ((i (in-range 5 +inf.0 2)) (j 3)) (displayln i)) -- dead else branch
TR opt: dead-inf-comp.rkt 230:0 (for: ((i (in-range 5 +inf.0 2)) (j 3)) (displayln i)) -- dead else branch
TR opt: dead-inf-comp.rkt 230:0 (for: ((i (in-range 5 +inf.0 2)) (j 3)) (displayln i)) -- dead else branch
TR opt: dead-inf-comp.rkt 230:36 3 -- in-range
TR info: dead-inf-comp.rkt 102:4 (>= -inf.f rat) -- possible exact real arith
TR info: dead-inf-comp.rkt 105:4 (>= rat -inf.f) -- possible exact real arith
TR info: dead-inf-comp.rkt 110:41 displayln -- hidden parameter
TR info: dead-inf-comp.rkt 110:41 displayln -- hidden parameter
TR info: dead-inf-comp.rkt 57:4 (< rat +inf.f) -- possible exact real arith
TR info: dead-inf-comp.rkt 60:4 (< +inf.f rat) -- possible exact real arith
TR info: dead-inf-comp.rkt 63:4 (< rat -inf.f) -- possible exact real arith
TR info: dead-inf-comp.rkt 66:4 (< -inf.f rat) -- possible exact real arith
TR info: dead-inf-comp.rkt 70:4 (> +inf.f rat) -- possible exact real arith
TR info: dead-inf-comp.rkt 73:4 (> rat +inf.f) -- possible exact real arith
TR info: dead-inf-comp.rkt 76:4 (> -inf.f rat) -- possible exact real arith
TR info: dead-inf-comp.rkt 79:4 (> rat -inf.f) -- possible exact real arith
TR info: dead-inf-comp.rkt 83:4 (<= rat +inf.f) -- possible exact real arith
TR info: dead-inf-comp.rkt 86:4 (<= +inf.f rat) -- possible exact real arith
TR info: dead-inf-comp.rkt 89:4 (<= rat -inf.f) -- possible exact real arith
TR info: dead-inf-comp.rkt 92:4 (<= -inf.f rat) -- possible exact real arith
TR info: dead-inf-comp.rkt 96:4 (>= +inf.f rat) -- possible exact real arith
TR info: dead-inf-comp.rkt 99:4 (>= rat +inf.f) -- possible exact real arith
TR missed opt: dead-inf-comp.rkt 10:4 (< rat -inf.0) -- generic comparison -- caused by: 10:7 rat
TR missed opt: dead-inf-comp.rkt 110:0 (for: ((i (in-range 5 +inf.0 2)) (j 3)) (displayln i)) -- generic comparison -- caused by: 110:0 (for: ((i (in-range 5 +inf.0 2)) (j 3)) (displayln i))
TR missed opt: dead-inf-comp.rkt 110:0 (for: ((i (in-range 5 +inf.0 2)) (j 3)) (displayln i)) -- generic comparison -- caused by: 110:0 (for: ((i (in-range 5 +inf.0 2)) (j 3)) (displayln i))
TR missed opt: dead-inf-comp.rkt 13:4 (< -inf.0 rat) -- generic comparison -- caused by: 13:14 rat
TR missed opt: dead-inf-comp.rkt 17:4 (> +inf.0 rat) -- generic comparison -- caused by: 17:14 rat
TR missed opt: dead-inf-comp.rkt 20:4 (> rat +inf.0) -- generic comparison -- caused by: 20:7 rat
TR missed opt: dead-inf-comp.rkt 23:4 (> -inf.0 rat) -- generic comparison -- caused by: 23:14 rat
TR missed opt: dead-inf-comp.rkt 26:4 (> rat -inf.0) -- generic comparison -- caused by: 26:7 rat
TR missed opt: dead-inf-comp.rkt 30:4 (<= rat +inf.0) -- generic comparison -- caused by: 30:8 rat
TR missed opt: dead-inf-comp.rkt 33:4 (<= +inf.0 rat) -- generic comparison -- caused by: 33:15 rat
TR missed opt: dead-inf-comp.rkt 36:4 (<= rat -inf.0) -- generic comparison -- caused by: 36:8 rat
TR missed opt: dead-inf-comp.rkt 39:4 (<= -inf.0 rat) -- generic comparison -- caused by: 39:15 rat
TR missed opt: dead-inf-comp.rkt 43:4 (>= +inf.0 rat) -- generic comparison -- caused by: 43:15 rat
TR missed opt: dead-inf-comp.rkt 46:4 (>= rat +inf.0) -- generic comparison -- caused by: 46:8 rat
TR missed opt: dead-inf-comp.rkt 49:4 (>= -inf.0 rat) -- generic comparison -- caused by: 49:15 rat
TR missed opt: dead-inf-comp.rkt 4:4 (< rat +inf.0) -- generic comparison -- caused by: 4:7 rat
TR missed opt: dead-inf-comp.rkt 52:4 (>= rat -inf.0) -- generic comparison -- caused by: 52:8 rat
TR missed opt: dead-inf-comp.rkt 7:4 (< +inf.0 rat) -- generic comparison -- caused by: 7:14 rat
TR opt: dead-inf-comp.rkt 100:4 (quote dead) -- dead then branch
TR opt: dead-inf-comp.rkt 103:4 (quote dead) -- dead then branch
TR opt: dead-inf-comp.rkt 107:4 (quote dead) -- dead else branch
TR opt: dead-inf-comp.rkt 110:0 (for: ((i (in-range 5 +inf.0 2)) (j 3)) (displayln i)) -- dead else branch
TR opt: dead-inf-comp.rkt 110:0 (for: ((i (in-range 5 +inf.0 2)) (j 3)) (displayln i)) -- dead else branch
TR opt: dead-inf-comp.rkt 110:0 (for: ((i (in-range 5 +inf.0 2)) (j 3)) (displayln i)) -- dead else branch
TR opt: dead-inf-comp.rkt 110:0 (for: ((i (in-range 5 +inf.0 2)) (j 3)) (displayln i)) -- dead else branch
TR opt: dead-inf-comp.rkt 110:0 (for: ((i (in-range 5 +inf.0 2)) (j 3)) (displayln i)) -- dead else branch
TR opt: dead-inf-comp.rkt 110:0 (for: ((i (in-range 5 +inf.0 2)) (j 3)) (displayln i)) -- dead else branch
TR opt: dead-inf-comp.rkt 110:0 (for: ((i (in-range 5 +inf.0 2)) (j 3)) (displayln i)) -- dead else branch
TR opt: dead-inf-comp.rkt 110:0 (for: ((i (in-range 5 +inf.0 2)) (j 3)) (displayln i)) -- dead else branch
TR opt: dead-inf-comp.rkt 110:0 (for: ((i (in-range 5 +inf.0 2)) (j 3)) (displayln i)) -- dead else branch
TR opt: dead-inf-comp.rkt 110:36 3 -- in-range
TR opt: dead-inf-comp.rkt 11:4 (quote dead) -- dead then branch
TR opt: dead-inf-comp.rkt 15:4 (quote dead) -- dead else branch
TR opt: dead-inf-comp.rkt 19:4 (quote dead) -- dead else branch
TR opt: dead-inf-comp.rkt 21:4 (quote dead) -- dead then branch
TR opt: dead-inf-comp.rkt 24:4 (quote dead) -- dead then branch
TR opt: dead-inf-comp.rkt 28:4 (quote dead) -- dead else branch
TR opt: dead-inf-comp.rkt 32:4 (quote dead) -- dead else branch
TR opt: dead-inf-comp.rkt 34:4 (quote dead) -- dead then branch
TR opt: dead-inf-comp.rkt 37:4 (quote dead) -- dead then branch
TR opt: dead-inf-comp.rkt 41:4 (quote dead) -- dead else branch
TR opt: dead-inf-comp.rkt 45:4 (quote dead) -- dead else branch
TR opt: dead-inf-comp.rkt 47:4 (quote dead) -- dead then branch
TR opt: dead-inf-comp.rkt 50:4 (quote dead) -- dead then branch
TR opt: dead-inf-comp.rkt 54:4 (quote dead) -- dead else branch
TR opt: dead-inf-comp.rkt 59:4 (quote dead) -- dead else branch
TR opt: dead-inf-comp.rkt 61:4 (quote dead) -- dead then branch
TR opt: dead-inf-comp.rkt 64:4 (quote dead) -- dead then branch
TR opt: dead-inf-comp.rkt 68:4 (quote dead) -- dead else branch
TR opt: dead-inf-comp.rkt 6:4 (quote dead) -- dead else branch
TR opt: dead-inf-comp.rkt 72:4 (quote dead) -- dead else branch
TR opt: dead-inf-comp.rkt 74:4 (quote dead) -- dead then branch
TR opt: dead-inf-comp.rkt 77:4 (quote dead) -- dead then branch
TR opt: dead-inf-comp.rkt 81:4 (quote dead) -- dead else branch
TR opt: dead-inf-comp.rkt 85:4 (quote dead) -- dead else branch
TR opt: dead-inf-comp.rkt 87:4 (quote dead) -- dead then branch
TR opt: dead-inf-comp.rkt 8:4 (quote dead) -- dead then branch
TR opt: dead-inf-comp.rkt 90:4 (quote dead) -- dead then branch
TR opt: dead-inf-comp.rkt 94:4 (quote dead) -- dead else branch
TR opt: dead-inf-comp.rkt 98:4 (quote dead) -- dead else branch
END
#<<END
'live
@ -118,6 +118,7 @@ END
END
#lang typed/racket/base
#reader tests/typed-racket/optimizer/reset-port
(define: rat : Exact-Rational 2/3)

View File

@ -1,16 +1,16 @@
#;#;
#<<END
TR info: dead-substructs.rkt 28:4 make-child1 -- struct constructor
TR info: dead-substructs.rkt 29:4 make-child2 -- struct constructor
TR info: dead-substructs.rkt 15:4 make-child1 -- struct constructor
TR info: dead-substructs.rkt 16:4 make-child2 -- struct constructor
END
#<<END
1
2
END
#lang typed/scheme
#:optimize
#reader tests/typed-racket/optimizer/reset-port
;; originally from nucleic3
;; cond on substructs, branches were considered dead

View File

@ -1,15 +1,16 @@
#;#;
#<<END
TR info: dead-then.rkt 13:1 display -- hidden parameter
TR info: dead-then.rkt 16:1 display -- hidden parameter
TR opt: dead-then.rkt 14:13 (+ 2.0 3.0) -- dead then branch
TR opt: dead-then.rkt 15:13 (+ 4.0 5.0) -- binary float
TR opt: dead-then.rkt 17:13 (+ 2.0 3.0) -- dead then branch
TR opt: dead-then.rkt 18:13 (+ 4.0 5.0) -- binary float
TR info: dead-then.rkt 1:1 display -- hidden parameter
TR info: dead-then.rkt 4:1 display -- hidden parameter
TR opt: dead-then.rkt 2:13 (+ 2.0 3.0) -- dead then branch
TR opt: dead-then.rkt 3:13 (+ 4.0 5.0) -- binary float
TR opt: dead-then.rkt 5:13 (+ 2.0 3.0) -- dead then branch
TR opt: dead-then.rkt 6:13 (+ 4.0 5.0) -- binary float
END
"9.09.0"
#lang typed/scheme
#:optimize
#reader tests/typed-racket/optimizer/reset-port
(display (if (number? "eh")
(+ 2.0 3.0)
(+ 4.0 5.0)))

View File

@ -1,12 +1,12 @@
#;#;
#<<END
TR info: define-begin-float.rkt 11:18 display -- hidden parameter
TR opt: define-begin-float.rkt 11:26 (- 2.0 3.0) -- binary float
TR opt: define-begin-float.rkt 12:17 (* 2.0 3.0) -- binary float
TR info: define-begin-float.rkt 1:18 display -- hidden parameter
TR opt: define-begin-float.rkt 1:26 (- 2.0 3.0) -- binary float
TR opt: define-begin-float.rkt 2:17 (* 2.0 3.0) -- binary float
END
"-1.0"
#lang typed/scheme
#:optimize
#reader tests/typed-racket/optimizer/reset-port
(define a (begin (display (- 2.0 3.0))
(* 2.0 3.0)))

View File

@ -1,10 +1,10 @@
#;#;
#<<END
TR opt: define-call-float.rkt 10:16 (+ 1.0 2.0) -- binary float
TR opt: define-call-float.rkt 2:16 (+ 1.0 2.0) -- binary float
END
""
#lang typed/scheme
#:optimize
#reader tests/typed-racket/optimizer/reset-port
(define x (cons (+ 1.0 2.0) 3.0))

View File

@ -1,10 +1,10 @@
#;#;
#<<END
TR opt: define-float.rkt 10:10 (+ 1.0 2.0) -- binary float
TR opt: define-float.rkt 2:10 (+ 1.0 2.0) -- binary float
END
""
#lang typed/scheme
#:optimize
#reader tests/typed-racket/optimizer/reset-port
(define x (+ 1.0 2.0))

View File

@ -1,10 +1,10 @@
#;#;
#<<END
TR opt: define-pair.rkt 10:10 (car (quote (1 3))) -- pair
TR opt: define-pair.rkt 2:10 (car (quote (1 3))) -- pair
END
""
#lang typed/scheme
#:optimize
#reader tests/typed-racket/optimizer/reset-port
(define x (car '(1 3)))

View File

@ -1,13 +1,13 @@
#;#;
#<<END
TR opt: derived-pair.rkt 22:0 (caar (cons (cons 1 2) 3)) -- pair
TR opt: derived-pair.rkt 22:0 (caar (cons (cons 1 2) 3)) -- pair
TR opt: derived-pair.rkt 23:0 (cadr (cons 1 (cons 2 3))) -- pair
TR opt: derived-pair.rkt 23:0 (cadr (cons 1 (cons 2 3))) -- pair
TR opt: derived-pair.rkt 24:0 (cdar (cons (cons 1 2) 3)) -- pair
TR opt: derived-pair.rkt 24:0 (cdar (cons (cons 1 2) 3)) -- pair
TR opt: derived-pair.rkt 25:0 (cddr (cons 1 (cons 2 3))) -- pair
TR opt: derived-pair.rkt 25:0 (cddr (cons 1 (cons 2 3))) -- pair
TR opt: derived-pair.rkt 2:0 (caar (cons (cons 1 2) 3)) -- pair
TR opt: derived-pair.rkt 2:0 (caar (cons (cons 1 2) 3)) -- pair
TR opt: derived-pair.rkt 3:0 (cadr (cons 1 (cons 2 3))) -- pair
TR opt: derived-pair.rkt 3:0 (cadr (cons 1 (cons 2 3))) -- pair
TR opt: derived-pair.rkt 4:0 (cdar (cons (cons 1 2) 3)) -- pair
TR opt: derived-pair.rkt 4:0 (cdar (cons (cons 1 2) 3)) -- pair
TR opt: derived-pair.rkt 5:0 (cddr (cons 1 (cons 2 3))) -- pair
TR opt: derived-pair.rkt 5:0 (cddr (cons 1 (cons 2 3))) -- pair
END
#<<END
1
@ -16,8 +16,8 @@ END
3
END
#lang typed/racket #:optimize
#reader tests/typed-racket/optimizer/reset-port
(caar (cons (cons 1 2) 3))
(cadr (cons 1 (cons 2 3)))

View File

@ -1,29 +1,29 @@
#;#;
#<<END
TR opt: derived-pair2.rkt 42:0 (caaar (cons (cons (cons 1 2) 3) 4)) -- pair
TR opt: derived-pair2.rkt 42:0 (caaar (cons (cons (cons 1 2) 3) 4)) -- pair
TR opt: derived-pair2.rkt 42:0 (caaar (cons (cons (cons 1 2) 3) 4)) -- pair
TR opt: derived-pair2.rkt 43:0 (caadr (cons 1 (cons (cons 2 3) 4))) -- pair
TR opt: derived-pair2.rkt 43:0 (caadr (cons 1 (cons (cons 2 3) 4))) -- pair
TR opt: derived-pair2.rkt 43:0 (caadr (cons 1 (cons (cons 2 3) 4))) -- pair
TR opt: derived-pair2.rkt 44:0 (cadar (cons (cons 1 (cons 2 3)) 4)) -- pair
TR opt: derived-pair2.rkt 44:0 (cadar (cons (cons 1 (cons 2 3)) 4)) -- pair
TR opt: derived-pair2.rkt 44:0 (cadar (cons (cons 1 (cons 2 3)) 4)) -- pair
TR opt: derived-pair2.rkt 45:0 (caddr (cons 1 (cons 2 (cons 3 4)))) -- pair
TR opt: derived-pair2.rkt 45:0 (caddr (cons 1 (cons 2 (cons 3 4)))) -- pair
TR opt: derived-pair2.rkt 45:0 (caddr (cons 1 (cons 2 (cons 3 4)))) -- pair
TR opt: derived-pair2.rkt 46:0 (cdaar (cons (cons (cons 1 2) 3) 4)) -- pair
TR opt: derived-pair2.rkt 46:0 (cdaar (cons (cons (cons 1 2) 3) 4)) -- pair
TR opt: derived-pair2.rkt 46:0 (cdaar (cons (cons (cons 1 2) 3) 4)) -- pair
TR opt: derived-pair2.rkt 47:0 (cdadr (cons 1 (cons (cons 2 3) 4))) -- pair
TR opt: derived-pair2.rkt 47:0 (cdadr (cons 1 (cons (cons 2 3) 4))) -- pair
TR opt: derived-pair2.rkt 47:0 (cdadr (cons 1 (cons (cons 2 3) 4))) -- pair
TR opt: derived-pair2.rkt 48:0 (cddar (cons (cons 1 (cons 2 3)) 4)) -- pair
TR opt: derived-pair2.rkt 48:0 (cddar (cons (cons 1 (cons 2 3)) 4)) -- pair
TR opt: derived-pair2.rkt 48:0 (cddar (cons (cons 1 (cons 2 3)) 4)) -- pair
TR opt: derived-pair2.rkt 49:0 (cdddr (cons 1 (cons 2 (cons 3 4)))) -- pair
TR opt: derived-pair2.rkt 49:0 (cdddr (cons 1 (cons 2 (cons 3 4)))) -- pair
TR opt: derived-pair2.rkt 49:0 (cdddr (cons 1 (cons 2 (cons 3 4)))) -- pair
TR opt: derived-pair2.rkt 2:0 (caaar (cons (cons (cons 1 2) 3) 4)) -- pair
TR opt: derived-pair2.rkt 2:0 (caaar (cons (cons (cons 1 2) 3) 4)) -- pair
TR opt: derived-pair2.rkt 2:0 (caaar (cons (cons (cons 1 2) 3) 4)) -- pair
TR opt: derived-pair2.rkt 3:0 (caadr (cons 1 (cons (cons 2 3) 4))) -- pair
TR opt: derived-pair2.rkt 3:0 (caadr (cons 1 (cons (cons 2 3) 4))) -- pair
TR opt: derived-pair2.rkt 3:0 (caadr (cons 1 (cons (cons 2 3) 4))) -- pair
TR opt: derived-pair2.rkt 4:0 (cadar (cons (cons 1 (cons 2 3)) 4)) -- pair
TR opt: derived-pair2.rkt 4:0 (cadar (cons (cons 1 (cons 2 3)) 4)) -- pair
TR opt: derived-pair2.rkt 4:0 (cadar (cons (cons 1 (cons 2 3)) 4)) -- pair
TR opt: derived-pair2.rkt 5:0 (caddr (cons 1 (cons 2 (cons 3 4)))) -- pair
TR opt: derived-pair2.rkt 5:0 (caddr (cons 1 (cons 2 (cons 3 4)))) -- pair
TR opt: derived-pair2.rkt 5:0 (caddr (cons 1 (cons 2 (cons 3 4)))) -- pair
TR opt: derived-pair2.rkt 6:0 (cdaar (cons (cons (cons 1 2) 3) 4)) -- pair
TR opt: derived-pair2.rkt 6:0 (cdaar (cons (cons (cons 1 2) 3) 4)) -- pair
TR opt: derived-pair2.rkt 6:0 (cdaar (cons (cons (cons 1 2) 3) 4)) -- pair
TR opt: derived-pair2.rkt 7:0 (cdadr (cons 1 (cons (cons 2 3) 4))) -- pair
TR opt: derived-pair2.rkt 7:0 (cdadr (cons 1 (cons (cons 2 3) 4))) -- pair
TR opt: derived-pair2.rkt 7:0 (cdadr (cons 1 (cons (cons 2 3) 4))) -- pair
TR opt: derived-pair2.rkt 8:0 (cddar (cons (cons 1 (cons 2 3)) 4)) -- pair
TR opt: derived-pair2.rkt 8:0 (cddar (cons (cons 1 (cons 2 3)) 4)) -- pair
TR opt: derived-pair2.rkt 8:0 (cddar (cons (cons 1 (cons 2 3)) 4)) -- pair
TR opt: derived-pair2.rkt 9:0 (cdddr (cons 1 (cons 2 (cons 3 4)))) -- pair
TR opt: derived-pair2.rkt 9:0 (cdddr (cons 1 (cons 2 (cons 3 4)))) -- pair
TR opt: derived-pair2.rkt 9:0 (cdddr (cons 1 (cons 2 (cons 3 4)))) -- pair
END
#<<END
1
@ -36,8 +36,8 @@ END
4
END
#lang typed/racket #:optimize
#reader tests/typed-racket/optimizer/reset-port
(caaar (cons (cons (cons 1 2) 3) 4))
(caadr (cons 1 (cons (cons 2 3) 4)))

View File

@ -1,69 +1,69 @@
#;#;
#<<END
TR opt: derived-pair3.rkt 100:0 (cdadar (cons (cons 1 (cons (cons 2 3) 4)) 5)) -- pair
TR opt: derived-pair3.rkt 100:0 (cdadar (cons (cons 1 (cons (cons 2 3) 4)) 5)) -- pair
TR opt: derived-pair3.rkt 100:0 (cdadar (cons (cons 1 (cons (cons 2 3) 4)) 5)) -- pair
TR opt: derived-pair3.rkt 100:0 (cdadar (cons (cons 1 (cons (cons 2 3) 4)) 5)) -- pair
TR opt: derived-pair3.rkt 101:0 (cdaddr (cons 1 (cons 2 (cons (cons 3 4) 5)))) -- pair
TR opt: derived-pair3.rkt 101:0 (cdaddr (cons 1 (cons 2 (cons (cons 3 4) 5)))) -- pair
TR opt: derived-pair3.rkt 101:0 (cdaddr (cons 1 (cons 2 (cons (cons 3 4) 5)))) -- pair
TR opt: derived-pair3.rkt 101:0 (cdaddr (cons 1 (cons 2 (cons (cons 3 4) 5)))) -- pair
TR opt: derived-pair3.rkt 102:0 (cddaar (cons (cons (cons 1 (cons 2 3)) 4) 5)) -- pair
TR opt: derived-pair3.rkt 102:0 (cddaar (cons (cons (cons 1 (cons 2 3)) 4) 5)) -- pair
TR opt: derived-pair3.rkt 102:0 (cddaar (cons (cons (cons 1 (cons 2 3)) 4) 5)) -- pair
TR opt: derived-pair3.rkt 102:0 (cddaar (cons (cons (cons 1 (cons 2 3)) 4) 5)) -- pair
TR opt: derived-pair3.rkt 103:0 (cddadr (cons 1 (cons (cons 2 (cons 3 4)) 5))) -- pair
TR opt: derived-pair3.rkt 103:0 (cddadr (cons 1 (cons (cons 2 (cons 3 4)) 5))) -- pair
TR opt: derived-pair3.rkt 103:0 (cddadr (cons 1 (cons (cons 2 (cons 3 4)) 5))) -- pair
TR opt: derived-pair3.rkt 103:0 (cddadr (cons 1 (cons (cons 2 (cons 3 4)) 5))) -- pair
TR opt: derived-pair3.rkt 104:0 (cdddar (cons (cons 1 (cons 2 (cons 3 4))) 5)) -- pair
TR opt: derived-pair3.rkt 104:0 (cdddar (cons (cons 1 (cons 2 (cons 3 4))) 5)) -- pair
TR opt: derived-pair3.rkt 104:0 (cdddar (cons (cons 1 (cons 2 (cons 3 4))) 5)) -- pair
TR opt: derived-pair3.rkt 104:0 (cdddar (cons (cons 1 (cons 2 (cons 3 4))) 5)) -- pair
TR opt: derived-pair3.rkt 105:0 (cddddr (cons 1 (cons 2 (cons 3 (cons 4 5))))) -- pair
TR opt: derived-pair3.rkt 105:0 (cddddr (cons 1 (cons 2 (cons 3 (cons 4 5))))) -- pair
TR opt: derived-pair3.rkt 105:0 (cddddr (cons 1 (cons 2 (cons 3 (cons 4 5))))) -- pair
TR opt: derived-pair3.rkt 105:0 (cddddr (cons 1 (cons 2 (cons 3 (cons 4 5))))) -- pair
TR opt: derived-pair3.rkt 90:0 (caaaar (cons (cons (cons (cons 1 2) 3) 4) 5)) -- pair
TR opt: derived-pair3.rkt 90:0 (caaaar (cons (cons (cons (cons 1 2) 3) 4) 5)) -- pair
TR opt: derived-pair3.rkt 90:0 (caaaar (cons (cons (cons (cons 1 2) 3) 4) 5)) -- pair
TR opt: derived-pair3.rkt 90:0 (caaaar (cons (cons (cons (cons 1 2) 3) 4) 5)) -- pair
TR opt: derived-pair3.rkt 91:0 (caaadr (cons 1 (cons (cons (cons 2 3) 4) 5))) -- pair
TR opt: derived-pair3.rkt 91:0 (caaadr (cons 1 (cons (cons (cons 2 3) 4) 5))) -- pair
TR opt: derived-pair3.rkt 91:0 (caaadr (cons 1 (cons (cons (cons 2 3) 4) 5))) -- pair
TR opt: derived-pair3.rkt 91:0 (caaadr (cons 1 (cons (cons (cons 2 3) 4) 5))) -- pair
TR opt: derived-pair3.rkt 92:0 (caadar (cons (cons 1 (cons (cons 2 3) 4)) 5)) -- pair
TR opt: derived-pair3.rkt 92:0 (caadar (cons (cons 1 (cons (cons 2 3) 4)) 5)) -- pair
TR opt: derived-pair3.rkt 92:0 (caadar (cons (cons 1 (cons (cons 2 3) 4)) 5)) -- pair
TR opt: derived-pair3.rkt 92:0 (caadar (cons (cons 1 (cons (cons 2 3) 4)) 5)) -- pair
TR opt: derived-pair3.rkt 93:0 (caaddr (cons 1 (cons 2 (cons (cons 3 4) 5)))) -- pair
TR opt: derived-pair3.rkt 93:0 (caaddr (cons 1 (cons 2 (cons (cons 3 4) 5)))) -- pair
TR opt: derived-pair3.rkt 93:0 (caaddr (cons 1 (cons 2 (cons (cons 3 4) 5)))) -- pair
TR opt: derived-pair3.rkt 93:0 (caaddr (cons 1 (cons 2 (cons (cons 3 4) 5)))) -- pair
TR opt: derived-pair3.rkt 94:0 (cadaar (cons (cons (cons 1 (cons 2 3)) 4) 5)) -- pair
TR opt: derived-pair3.rkt 94:0 (cadaar (cons (cons (cons 1 (cons 2 3)) 4) 5)) -- pair
TR opt: derived-pair3.rkt 94:0 (cadaar (cons (cons (cons 1 (cons 2 3)) 4) 5)) -- pair
TR opt: derived-pair3.rkt 94:0 (cadaar (cons (cons (cons 1 (cons 2 3)) 4) 5)) -- pair
TR opt: derived-pair3.rkt 95:0 (cadadr (cons 1 (cons (cons 2 (cons 3 4)) 5))) -- pair
TR opt: derived-pair3.rkt 95:0 (cadadr (cons 1 (cons (cons 2 (cons 3 4)) 5))) -- pair
TR opt: derived-pair3.rkt 95:0 (cadadr (cons 1 (cons (cons 2 (cons 3 4)) 5))) -- pair
TR opt: derived-pair3.rkt 95:0 (cadadr (cons 1 (cons (cons 2 (cons 3 4)) 5))) -- pair
TR opt: derived-pair3.rkt 96:0 (caddar (cons (cons 1 (cons 2 (cons 3 4))) 5)) -- pair
TR opt: derived-pair3.rkt 96:0 (caddar (cons (cons 1 (cons 2 (cons 3 4))) 5)) -- pair
TR opt: derived-pair3.rkt 96:0 (caddar (cons (cons 1 (cons 2 (cons 3 4))) 5)) -- pair
TR opt: derived-pair3.rkt 96:0 (caddar (cons (cons 1 (cons 2 (cons 3 4))) 5)) -- pair
TR opt: derived-pair3.rkt 97:0 (cadddr (cons 1 (cons 2 (cons 3 (cons 4 5))))) -- pair
TR opt: derived-pair3.rkt 97:0 (cadddr (cons 1 (cons 2 (cons 3 (cons 4 5))))) -- pair
TR opt: derived-pair3.rkt 97:0 (cadddr (cons 1 (cons 2 (cons 3 (cons 4 5))))) -- pair
TR opt: derived-pair3.rkt 97:0 (cadddr (cons 1 (cons 2 (cons 3 (cons 4 5))))) -- pair
TR opt: derived-pair3.rkt 98:0 (cdaaar (cons (cons (cons (cons 1 2) 3) 4) 5)) -- pair
TR opt: derived-pair3.rkt 98:0 (cdaaar (cons (cons (cons (cons 1 2) 3) 4) 5)) -- pair
TR opt: derived-pair3.rkt 98:0 (cdaaar (cons (cons (cons (cons 1 2) 3) 4) 5)) -- pair
TR opt: derived-pair3.rkt 98:0 (cdaaar (cons (cons (cons (cons 1 2) 3) 4) 5)) -- pair
TR opt: derived-pair3.rkt 99:0 (cdaadr (cons 1 (cons (cons (cons 2 3) 4) 5))) -- pair
TR opt: derived-pair3.rkt 99:0 (cdaadr (cons 1 (cons (cons (cons 2 3) 4) 5))) -- pair
TR opt: derived-pair3.rkt 99:0 (cdaadr (cons 1 (cons (cons (cons 2 3) 4) 5))) -- pair
TR opt: derived-pair3.rkt 99:0 (cdaadr (cons 1 (cons (cons (cons 2 3) 4) 5))) -- pair
TR opt: derived-pair3.rkt 10:0 (cdaaar (cons (cons (cons (cons 1 2) 3) 4) 5)) -- pair
TR opt: derived-pair3.rkt 10:0 (cdaaar (cons (cons (cons (cons 1 2) 3) 4) 5)) -- pair
TR opt: derived-pair3.rkt 10:0 (cdaaar (cons (cons (cons (cons 1 2) 3) 4) 5)) -- pair
TR opt: derived-pair3.rkt 10:0 (cdaaar (cons (cons (cons (cons 1 2) 3) 4) 5)) -- pair
TR opt: derived-pair3.rkt 11:0 (cdaadr (cons 1 (cons (cons (cons 2 3) 4) 5))) -- pair
TR opt: derived-pair3.rkt 11:0 (cdaadr (cons 1 (cons (cons (cons 2 3) 4) 5))) -- pair
TR opt: derived-pair3.rkt 11:0 (cdaadr (cons 1 (cons (cons (cons 2 3) 4) 5))) -- pair
TR opt: derived-pair3.rkt 11:0 (cdaadr (cons 1 (cons (cons (cons 2 3) 4) 5))) -- pair
TR opt: derived-pair3.rkt 12:0 (cdadar (cons (cons 1 (cons (cons 2 3) 4)) 5)) -- pair
TR opt: derived-pair3.rkt 12:0 (cdadar (cons (cons 1 (cons (cons 2 3) 4)) 5)) -- pair
TR opt: derived-pair3.rkt 12:0 (cdadar (cons (cons 1 (cons (cons 2 3) 4)) 5)) -- pair
TR opt: derived-pair3.rkt 12:0 (cdadar (cons (cons 1 (cons (cons 2 3) 4)) 5)) -- pair
TR opt: derived-pair3.rkt 13:0 (cdaddr (cons 1 (cons 2 (cons (cons 3 4) 5)))) -- pair
TR opt: derived-pair3.rkt 13:0 (cdaddr (cons 1 (cons 2 (cons (cons 3 4) 5)))) -- pair
TR opt: derived-pair3.rkt 13:0 (cdaddr (cons 1 (cons 2 (cons (cons 3 4) 5)))) -- pair
TR opt: derived-pair3.rkt 13:0 (cdaddr (cons 1 (cons 2 (cons (cons 3 4) 5)))) -- pair
TR opt: derived-pair3.rkt 14:0 (cddaar (cons (cons (cons 1 (cons 2 3)) 4) 5)) -- pair
TR opt: derived-pair3.rkt 14:0 (cddaar (cons (cons (cons 1 (cons 2 3)) 4) 5)) -- pair
TR opt: derived-pair3.rkt 14:0 (cddaar (cons (cons (cons 1 (cons 2 3)) 4) 5)) -- pair
TR opt: derived-pair3.rkt 14:0 (cddaar (cons (cons (cons 1 (cons 2 3)) 4) 5)) -- pair
TR opt: derived-pair3.rkt 15:0 (cddadr (cons 1 (cons (cons 2 (cons 3 4)) 5))) -- pair
TR opt: derived-pair3.rkt 15:0 (cddadr (cons 1 (cons (cons 2 (cons 3 4)) 5))) -- pair
TR opt: derived-pair3.rkt 15:0 (cddadr (cons 1 (cons (cons 2 (cons 3 4)) 5))) -- pair
TR opt: derived-pair3.rkt 15:0 (cddadr (cons 1 (cons (cons 2 (cons 3 4)) 5))) -- pair
TR opt: derived-pair3.rkt 16:0 (cdddar (cons (cons 1 (cons 2 (cons 3 4))) 5)) -- pair
TR opt: derived-pair3.rkt 16:0 (cdddar (cons (cons 1 (cons 2 (cons 3 4))) 5)) -- pair
TR opt: derived-pair3.rkt 16:0 (cdddar (cons (cons 1 (cons 2 (cons 3 4))) 5)) -- pair
TR opt: derived-pair3.rkt 16:0 (cdddar (cons (cons 1 (cons 2 (cons 3 4))) 5)) -- pair
TR opt: derived-pair3.rkt 17:0 (cddddr (cons 1 (cons 2 (cons 3 (cons 4 5))))) -- pair
TR opt: derived-pair3.rkt 17:0 (cddddr (cons 1 (cons 2 (cons 3 (cons 4 5))))) -- pair
TR opt: derived-pair3.rkt 17:0 (cddddr (cons 1 (cons 2 (cons 3 (cons 4 5))))) -- pair
TR opt: derived-pair3.rkt 17:0 (cddddr (cons 1 (cons 2 (cons 3 (cons 4 5))))) -- pair
TR opt: derived-pair3.rkt 2:0 (caaaar (cons (cons (cons (cons 1 2) 3) 4) 5)) -- pair
TR opt: derived-pair3.rkt 2:0 (caaaar (cons (cons (cons (cons 1 2) 3) 4) 5)) -- pair
TR opt: derived-pair3.rkt 2:0 (caaaar (cons (cons (cons (cons 1 2) 3) 4) 5)) -- pair
TR opt: derived-pair3.rkt 2:0 (caaaar (cons (cons (cons (cons 1 2) 3) 4) 5)) -- pair
TR opt: derived-pair3.rkt 3:0 (caaadr (cons 1 (cons (cons (cons 2 3) 4) 5))) -- pair
TR opt: derived-pair3.rkt 3:0 (caaadr (cons 1 (cons (cons (cons 2 3) 4) 5))) -- pair
TR opt: derived-pair3.rkt 3:0 (caaadr (cons 1 (cons (cons (cons 2 3) 4) 5))) -- pair
TR opt: derived-pair3.rkt 3:0 (caaadr (cons 1 (cons (cons (cons 2 3) 4) 5))) -- pair
TR opt: derived-pair3.rkt 4:0 (caadar (cons (cons 1 (cons (cons 2 3) 4)) 5)) -- pair
TR opt: derived-pair3.rkt 4:0 (caadar (cons (cons 1 (cons (cons 2 3) 4)) 5)) -- pair
TR opt: derived-pair3.rkt 4:0 (caadar (cons (cons 1 (cons (cons 2 3) 4)) 5)) -- pair
TR opt: derived-pair3.rkt 4:0 (caadar (cons (cons 1 (cons (cons 2 3) 4)) 5)) -- pair
TR opt: derived-pair3.rkt 5:0 (caaddr (cons 1 (cons 2 (cons (cons 3 4) 5)))) -- pair
TR opt: derived-pair3.rkt 5:0 (caaddr (cons 1 (cons 2 (cons (cons 3 4) 5)))) -- pair
TR opt: derived-pair3.rkt 5:0 (caaddr (cons 1 (cons 2 (cons (cons 3 4) 5)))) -- pair
TR opt: derived-pair3.rkt 5:0 (caaddr (cons 1 (cons 2 (cons (cons 3 4) 5)))) -- pair
TR opt: derived-pair3.rkt 6:0 (cadaar (cons (cons (cons 1 (cons 2 3)) 4) 5)) -- pair
TR opt: derived-pair3.rkt 6:0 (cadaar (cons (cons (cons 1 (cons 2 3)) 4) 5)) -- pair
TR opt: derived-pair3.rkt 6:0 (cadaar (cons (cons (cons 1 (cons 2 3)) 4) 5)) -- pair
TR opt: derived-pair3.rkt 6:0 (cadaar (cons (cons (cons 1 (cons 2 3)) 4) 5)) -- pair
TR opt: derived-pair3.rkt 7:0 (cadadr (cons 1 (cons (cons 2 (cons 3 4)) 5))) -- pair
TR opt: derived-pair3.rkt 7:0 (cadadr (cons 1 (cons (cons 2 (cons 3 4)) 5))) -- pair
TR opt: derived-pair3.rkt 7:0 (cadadr (cons 1 (cons (cons 2 (cons 3 4)) 5))) -- pair
TR opt: derived-pair3.rkt 7:0 (cadadr (cons 1 (cons (cons 2 (cons 3 4)) 5))) -- pair
TR opt: derived-pair3.rkt 8:0 (caddar (cons (cons 1 (cons 2 (cons 3 4))) 5)) -- pair
TR opt: derived-pair3.rkt 8:0 (caddar (cons (cons 1 (cons 2 (cons 3 4))) 5)) -- pair
TR opt: derived-pair3.rkt 8:0 (caddar (cons (cons 1 (cons 2 (cons 3 4))) 5)) -- pair
TR opt: derived-pair3.rkt 8:0 (caddar (cons (cons 1 (cons 2 (cons 3 4))) 5)) -- pair
TR opt: derived-pair3.rkt 9:0 (cadddr (cons 1 (cons 2 (cons 3 (cons 4 5))))) -- pair
TR opt: derived-pair3.rkt 9:0 (cadddr (cons 1 (cons 2 (cons 3 (cons 4 5))))) -- pair
TR opt: derived-pair3.rkt 9:0 (cadddr (cons 1 (cons 2 (cons 3 (cons 4 5))))) -- pair
TR opt: derived-pair3.rkt 9:0 (cadddr (cons 1 (cons 2 (cons 3 (cons 4 5))))) -- pair
END
#<<END
1
@ -84,8 +84,8 @@ END
5
END
#lang typed/racket #:optimize
#reader tests/typed-racket/optimizer/reset-port
(caaaar (cons (cons (cons (cons 1 2) 3) 4) 5))
(caaadr (cons 1 (cons (cons (cons 2 3) 4) 5)))

View File

@ -1,14 +1,14 @@
#;#;
#<<END
TR info: different-langs.rkt 14:0 (/ 1 2) -- possible exact real arith
TR info: different-langs.rkt 3:0 (/ 1 2) -- possible exact real arith
END
#<<END
1/2
END
#lang typed/scheme
#:optimize
#reader tests/typed-racket/optimizer/reset-port
;; to see if the harness supports having the 2 versions of a test being
;; written in different languages
(/ 1 2)

View File

@ -1,13 +1,13 @@
#;#;
#<<END
TR opt: double-float.rkt 13:0 (+ 2.0 2.0 2.0) -- binary float
TR opt: double-float.rkt 2:0 (+ 2.0 2.0 2.0) -- binary float
END
#<<END
6.0
END
#lang typed/scheme
#:optimize
#reader tests/typed-racket/optimizer/reset-port
(+ 2.0 2.0 2.0)

View File

@ -1,14 +1,14 @@
#;#;
#<<END
TR opt: drop-pure-pred.rkt 17:6 (list 2) -- dead else branch
TR opt: drop-pure-pred.rkt 6:6 (list 2) -- dead else branch
END
#<<END
'(1)
END
#lang typed/scheme
#:optimize
#reader tests/typed-racket/optimizer/reset-port
(let ()
(define x 7)

View File

@ -1,13 +1,13 @@
#;#;
#<<END
TR opt: exact-inexact.rkt 25:0 (exact->inexact (expt 10 100)) -- int to float
TR opt: exact-inexact.rkt 26:0 (round (exact->inexact (expt 2.3 3.2))) -- unary float
TR opt: exact-inexact.rkt 26:7 (exact->inexact (expt 2.3 3.2)) -- float to float
TR opt: exact-inexact.rkt 27:0 (real->double-flonum (expt 10 100)) -- int to float
TR opt: exact-inexact.rkt 28:0 (round (real->double-flonum (expt 2.3 3.2))) -- unary float
TR opt: exact-inexact.rkt 28:7 (real->double-flonum (expt 2.3 3.2)) -- float to float
TR opt: exact-inexact.rkt 31:0 (exact->inexact (expt 1.0f0 2.0f0)) -- single-float to single-float
TR opt: exact-inexact.rkt 32:0 (real->single-flonum (expt 1.0f0 2.0f0)) -- single-float to single-float
TR opt: exact-inexact.rkt 2:0 (exact->inexact (expt 10 100)) -- int to float
TR opt: exact-inexact.rkt 3:0 (round (exact->inexact (expt 2.3 3.2))) -- unary float
TR opt: exact-inexact.rkt 3:7 (exact->inexact (expt 2.3 3.2)) -- float to float
TR opt: exact-inexact.rkt 4:0 (real->double-flonum (expt 10 100)) -- int to float
TR opt: exact-inexact.rkt 5:0 (round (real->double-flonum (expt 2.3 3.2))) -- unary float
TR opt: exact-inexact.rkt 5:7 (real->double-flonum (expt 2.3 3.2)) -- float to float
TR opt: exact-inexact.rkt 8:0 (exact->inexact (expt 1.0f0 2.0f0)) -- single-float to single-float
TR opt: exact-inexact.rkt 9:0 (real->single-flonum (expt 1.0f0 2.0f0)) -- single-float to single-float
END
#<<END
1e+100
@ -18,9 +18,9 @@ END
1.0f0
END
#lang typed/scheme
#:optimize
#reader tests/typed-racket/optimizer/reset-port
(exact->inexact (expt 10 100)) ; must not be a fixnum
(round (exact->inexact (expt 2.3 3.2))) ; already a float

View File

@ -1,12 +1,12 @@
#;#;
#<<END
TR info: expt.rkt 15:2 (real-part (expt (sin 0.25) 1.0)) -- possible exact real arith
TR missed opt: expt.rkt 15:13 (expt (sin 0.25) 1.0) -- unexpected complex type
TR opt: expt.rkt 15:19 (sin 0.25) -- unary float
TR info: expt.rkt 6:2 (real-part (expt (sin 0.25) 1.0)) -- possible exact real arith
TR missed opt: expt.rkt 6:13 (expt (sin 0.25) 1.0) -- unexpected complex type
TR opt: expt.rkt 6:19 (sin 0.25) -- unary float
END
""
#lang typed/racket
#reader tests/typed-racket/optimizer/reset-port
;; PR 12526
;; result of expt was Float-Complex, and shouldn't have been

View File

@ -1,14 +1,14 @@
#;#;
#<<END
TR opt: false-huh-dead-code.rkt 13:16 1 -- dead then branch
TR opt: false-huh-dead-code.rkt 14:13 1 -- dead then branch
TR opt: false-huh-dead-code.rkt 1:16 1 -- dead then branch
TR opt: false-huh-dead-code.rkt 2:13 1 -- dead then branch
END
#<<END
2
2
END
#lang typed/racket
#reader tests/typed-racket/optimizer/reset-port
(if (false? #t) 1 2)
(if (not #t) 1 2)

View File

@ -1,34 +1,34 @@
#;#;
#<<END
TR info: fixnum-bounded-expr.rkt 101:0 (fx- (ann 3 Fixnum) (ann 4 Fixnum)) -- non-optimized fixnum op
TR info: fixnum-bounded-expr.rkt 104:0 (fx* 300 300) -- non-optimized fixnum op
TR info: fixnum-bounded-expr.rkt 107:0 (fxquotient -4 -5) -- non-optimized fixnum op
TR info: fixnum-bounded-expr.rkt 98:0 (fx+ (+ 300 301) (+ 301 302)) -- non-optimized fixnum op
TR missed opt: fixnum-bounded-expr.rkt 89:2 (+ x y) -- out of fixnum range
TR opt: fixnum-bounded-expr.rkt 100:0 (fx- (+ 300 301) (+ 301 302)) -- fixnum fx-
TR opt: fixnum-bounded-expr.rkt 100:17 (+ 301 302) -- fixnum bounded expr
TR opt: fixnum-bounded-expr.rkt 100:5 (+ 300 301) -- fixnum bounded expr
TR opt: fixnum-bounded-expr.rkt 103:0 (fx* 4 5) -- fixnum fx*
TR opt: fixnum-bounded-expr.rkt 106:0 (fxquotient (ann 34 Nonnegative-Fixnum) (ann -4 Negative-Fixnum)) -- fixnum fxquotient
TR opt: fixnum-bounded-expr.rkt 109:0 (fxabs (ann 64235 Nonnegative-Fixnum)) -- fixnum fxabs
TR opt: fixnum-bounded-expr.rkt 70:2 (+ x (sqr y)) -- fixnum bounded expr
TR opt: fixnum-bounded-expr.rkt 76:2 (- x (* y y)) -- fixnum bounded expr
TR opt: fixnum-bounded-expr.rkt 76:7 (* y y) -- fixnum bounded expr
TR opt: fixnum-bounded-expr.rkt 83:2 (+ x y) -- fixnum bounded expr
TR opt: fixnum-bounded-expr.rkt 86:2 (+ x y) -- fixnum bounded expr
TR opt: fixnum-bounded-expr.rkt 91:0 (abs 45) -- fixnum fxabs
TR opt: fixnum-bounded-expr.rkt 94:0 (fx+ 5 2) -- fixnum fx+
TR opt: fixnum-bounded-expr.rkt 95:0 (fx+ (+ 34 231) (* 24 25)) -- fixnum fx+
TR opt: fixnum-bounded-expr.rkt 95:16 (* 24 25) -- fixnum bounded expr
TR opt: fixnum-bounded-expr.rkt 95:5 (+ 34 231) -- fixnum bounded expr
TR opt: fixnum-bounded-expr.rkt 96:0 (fx+ (+ (+ 34 231) 23) -4) -- fixnum fx+
TR opt: fixnum-bounded-expr.rkt 96:5 (+ (+ 34 231) 23) -- fixnum bounded expr
TR opt: fixnum-bounded-expr.rkt 96:8 (+ 34 231) -- fixnum bounded expr
TR opt: fixnum-bounded-expr.rkt 97:0 (fx+ -4 (+ (+ 34 231) 23)) -- fixnum fx+
TR opt: fixnum-bounded-expr.rkt 97:11 (+ 34 231) -- fixnum bounded expr
TR opt: fixnum-bounded-expr.rkt 97:8 (+ (+ 34 231) 23) -- fixnum bounded expr
TR opt: fixnum-bounded-expr.rkt 98:17 (+ 301 302) -- fixnum bounded expr
TR opt: fixnum-bounded-expr.rkt 98:5 (+ 300 301) -- fixnum bounded expr
TR info: fixnum-bounded-expr.rkt 34:0 (fx+ (+ 300 301) (+ 301 302)) -- non-optimized fixnum op
TR info: fixnum-bounded-expr.rkt 37:0 (fx- (ann 3 Fixnum) (ann 4 Fixnum)) -- non-optimized fixnum op
TR info: fixnum-bounded-expr.rkt 40:0 (fx* 300 300) -- non-optimized fixnum op
TR info: fixnum-bounded-expr.rkt 43:0 (fxquotient -4 -5) -- non-optimized fixnum op
TR missed opt: fixnum-bounded-expr.rkt 25:2 (+ x y) -- out of fixnum range
TR opt: fixnum-bounded-expr.rkt 12:2 (- x (* y y)) -- fixnum bounded expr
TR opt: fixnum-bounded-expr.rkt 12:7 (* y y) -- fixnum bounded expr
TR opt: fixnum-bounded-expr.rkt 19:2 (+ x y) -- fixnum bounded expr
TR opt: fixnum-bounded-expr.rkt 22:2 (+ x y) -- fixnum bounded expr
TR opt: fixnum-bounded-expr.rkt 27:0 (abs 45) -- fixnum fxabs
TR opt: fixnum-bounded-expr.rkt 30:0 (fx+ 5 2) -- fixnum fx+
TR opt: fixnum-bounded-expr.rkt 31:0 (fx+ (+ 34 231) (* 24 25)) -- fixnum fx+
TR opt: fixnum-bounded-expr.rkt 31:16 (* 24 25) -- fixnum bounded expr
TR opt: fixnum-bounded-expr.rkt 31:5 (+ 34 231) -- fixnum bounded expr
TR opt: fixnum-bounded-expr.rkt 32:0 (fx+ (+ (+ 34 231) 23) -4) -- fixnum fx+
TR opt: fixnum-bounded-expr.rkt 32:5 (+ (+ 34 231) 23) -- fixnum bounded expr
TR opt: fixnum-bounded-expr.rkt 32:8 (+ 34 231) -- fixnum bounded expr
TR opt: fixnum-bounded-expr.rkt 33:0 (fx+ -4 (+ (+ 34 231) 23)) -- fixnum fx+
TR opt: fixnum-bounded-expr.rkt 33:11 (+ 34 231) -- fixnum bounded expr
TR opt: fixnum-bounded-expr.rkt 33:8 (+ (+ 34 231) 23) -- fixnum bounded expr
TR opt: fixnum-bounded-expr.rkt 34:17 (+ 301 302) -- fixnum bounded expr
TR opt: fixnum-bounded-expr.rkt 34:5 (+ 300 301) -- fixnum bounded expr
TR opt: fixnum-bounded-expr.rkt 36:0 (fx- (+ 300 301) (+ 301 302)) -- fixnum fx-
TR opt: fixnum-bounded-expr.rkt 36:17 (+ 301 302) -- fixnum bounded expr
TR opt: fixnum-bounded-expr.rkt 36:5 (+ 300 301) -- fixnum bounded expr
TR opt: fixnum-bounded-expr.rkt 39:0 (fx* 4 5) -- fixnum fx*
TR opt: fixnum-bounded-expr.rkt 42:0 (fxquotient (ann 34 Nonnegative-Fixnum) (ann -4 Negative-Fixnum)) -- fixnum fxquotient
TR opt: fixnum-bounded-expr.rkt 45:0 (fxabs (ann 64235 Nonnegative-Fixnum)) -- fixnum fxabs
TR opt: fixnum-bounded-expr.rkt 6:2 (+ x (sqr y)) -- fixnum bounded expr
END
#<<END
28
@ -55,16 +55,12 @@ END
4
END
#lang typed/racket
#:optimize
#reader tests/typed-racket/optimizer/reset-port
(require racket/fixnum)
(: f : Index Byte -> Nonnegative-Fixnum)
(define (f x y)
(+ x (sqr y)))

View File

@ -1,15 +1,15 @@
#;#;
#<<END
TR opt: fixnum-comparison.rkt 15:0 (< (vector-length (quote #(1 2 3))) (string-length "asdf")) -- binary fixnum comp
TR opt: fixnum-comparison.rkt 15:29 (string-length "asdf") -- string-length
TR opt: fixnum-comparison.rkt 15:3 (vector-length (quote #(1 2 3))) -- known-length vector-length
TR opt: fixnum-comparison.rkt 2:0 (< (vector-length (quote #(1 2 3))) (string-length "asdf")) -- binary fixnum comp
TR opt: fixnum-comparison.rkt 2:29 (string-length "asdf") -- string-length
TR opt: fixnum-comparison.rkt 2:3 (vector-length (quote #(1 2 3))) -- known-length vector-length
END
#<<END
#t
END
#lang typed/scheme
#:optimize
#reader tests/typed-racket/optimizer/reset-port
(< (vector-length '#(1 2 3)) (string-length "asdf"))

View File

@ -1,13 +1,13 @@
#;#;
#<<END
TR opt: float-comp.rkt 13:0 (< 1.0 2.0) -- binary float comp
TR opt: float-comp.rkt 2:0 (< 1.0 2.0) -- binary float comp
END
#<<END
#t
END
#lang typed/scheme
#:optimize
#reader tests/typed-racket/optimizer/reset-port
(< 1.0 2.0)

View File

@ -1,16 +1,16 @@
#;#;
#<<END
TR opt: float-complex-conjugate-top.rkt 16:0 (conjugate (+ 1.0+2.0i 2.0+4.0i)) -- unboxed unary float complex
TR opt: float-complex-conjugate-top.rkt 16:11 (+ 1.0+2.0i 2.0+4.0i) -- unboxed binary float complex
TR opt: float-complex-conjugate-top.rkt 16:14 1.0+2.0i -- unboxed literal
TR opt: float-complex-conjugate-top.rkt 16:23 2.0+4.0i -- unboxed literal
TR opt: float-complex-conjugate-top.rkt 2:0 (conjugate (+ 1.0+2.0i 2.0+4.0i)) -- unboxed unary float complex
TR opt: float-complex-conjugate-top.rkt 2:11 (+ 1.0+2.0i 2.0+4.0i) -- unboxed binary float complex
TR opt: float-complex-conjugate-top.rkt 2:14 1.0+2.0i -- unboxed literal
TR opt: float-complex-conjugate-top.rkt 2:23 2.0+4.0i -- unboxed literal
END
#<<END
3.0-6.0i
END
#lang typed/scheme
#:optimize
#reader tests/typed-racket/optimizer/reset-port
(conjugate (+ 1.0+2.0i 2.0+4.0i))

View File

@ -1,21 +1,21 @@
#;#;
#<<END
TR opt: float-complex-conjugate.rkt 20:0 (+ (conjugate 1.0+2.0i) (conjugate 2.0+4.0i)) -- unboxed binary float complex
TR opt: float-complex-conjugate.rkt 20:14 1.0+2.0i -- unboxed literal
TR opt: float-complex-conjugate.rkt 20:24 (conjugate 2.0+4.0i) -- unboxed unary float complex
TR opt: float-complex-conjugate.rkt 20:3 (conjugate 1.0+2.0i) -- unboxed unary float complex
TR opt: float-complex-conjugate.rkt 20:35 2.0+4.0i -- unboxed literal
TR opt: float-complex-conjugate.rkt 21:0 (conjugate 1.0+0.0i) -- unboxed unary float complex
TR opt: float-complex-conjugate.rkt 21:11 1.0+0.0i -- unboxed literal
TR opt: float-complex-conjugate.rkt 2:0 (+ (conjugate 1.0+2.0i) (conjugate 2.0+4.0i)) -- unboxed binary float complex
TR opt: float-complex-conjugate.rkt 2:14 1.0+2.0i -- unboxed literal
TR opt: float-complex-conjugate.rkt 2:24 (conjugate 2.0+4.0i) -- unboxed unary float complex
TR opt: float-complex-conjugate.rkt 2:3 (conjugate 1.0+2.0i) -- unboxed unary float complex
TR opt: float-complex-conjugate.rkt 2:35 2.0+4.0i -- unboxed literal
TR opt: float-complex-conjugate.rkt 3:0 (conjugate 1.0+0.0i) -- unboxed unary float complex
TR opt: float-complex-conjugate.rkt 3:11 1.0+0.0i -- unboxed literal
END
#<<END
3.0-6.0i
1.0-0.0i
END
#lang typed/scheme
#:optimize
#reader tests/typed-racket/optimizer/reset-port
(+ (conjugate 1.0+2.0i) (conjugate 2.0+4.0i))
(conjugate 1.0+0.0i)

View File

@ -1,16 +1,16 @@
#;#;
#<<END
TR opt: float-complex-div.rkt 16:0 (/ 1.0+2.0i 2.0+4.0i 3.0+6.0i) -- unboxed binary float complex
TR opt: float-complex-div.rkt 16:12 2.0+4.0i -- unboxed literal
TR opt: float-complex-div.rkt 16:21 3.0+6.0i -- unboxed literal
TR opt: float-complex-div.rkt 16:3 1.0+2.0i -- unboxed literal
TR opt: float-complex-div.rkt 2:0 (/ 1.0+2.0i 2.0+4.0i 3.0+6.0i) -- unboxed binary float complex
TR opt: float-complex-div.rkt 2:12 2.0+4.0i -- unboxed literal
TR opt: float-complex-div.rkt 2:21 3.0+6.0i -- unboxed literal
TR opt: float-complex-div.rkt 2:3 1.0+2.0i -- unboxed literal
END
#<<END
0.03333333333333333-0.06666666666666667i
END
#lang typed/scheme
#:optimize
#reader tests/typed-racket/optimizer/reset-port
(/ 1.0+2.0i 2.0+4.0i 3.0+6.0i)

View File

@ -1,17 +1,17 @@
#;#;
#<<END
TR opt: float-complex-fixnum.rkt 17:0 (+ (modulo 2 1) 1.0+2.0i 3.0+6.0i) -- unboxed binary float complex
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) -- non float complex in complex ops
TR opt: float-complex-fixnum.rkt 2:0 (+ (modulo 2 1) 1.0+2.0i 3.0+6.0i) -- unboxed binary float complex
TR opt: float-complex-fixnum.rkt 2:16 1.0+2.0i -- unboxed literal
TR opt: float-complex-fixnum.rkt 2:25 3.0+6.0i -- unboxed literal
TR opt: float-complex-fixnum.rkt 2:3 (modulo 2 1) -- binary nonzero fixnum
TR opt: float-complex-fixnum.rkt 2:3 (modulo 2 1) -- non float complex in complex ops
END
#<<END
4.0+8.0i
END
#lang typed/scheme
#:optimize
#reader tests/typed-racket/optimizer/reset-port
(+ (modulo 2 1) 1.0+2.0i 3.0+6.0i)

View File

@ -1,43 +1,43 @@
#;#;
#<<END
TR opt: float-complex-float-div.rkt 43:51 (real-part x) -- complex accessor elimination
TR opt: float-complex-float-div.rkt 43:62 x -- unbox float-complex
TR opt: float-complex-float-div.rkt 44:51 (imag-part x) -- complex accessor elimination
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 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 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 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 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 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 in complex ops
TR opt: float-complex-float-div.rkt 10:18 2.0+4.0i -- unboxed literal
TR opt: float-complex-float-div.rkt 10:27 3.0 -- float in complex ops
TR opt: float-complex-float-div.rkt 10:6 (/ 1.0+2.0i 2.0+4.0i 3.0) -- unboxed binary float complex
TR opt: float-complex-float-div.rkt 10:9 1.0+2.0i -- unboxed literal
TR opt: float-complex-float-div.rkt 11:18 2.0 -- float in complex ops
TR opt: float-complex-float-div.rkt 11:22 3.0 -- float in complex ops
TR opt: float-complex-float-div.rkt 11:6 (/ 1.0+2.0i 2.0 3.0) -- unboxed binary float complex
TR opt: float-complex-float-div.rkt 11:9 1.0+2.0i -- unboxed literal
TR opt: float-complex-float-div.rkt 12:13 2.0 -- float in complex ops
TR opt: float-complex-float-div.rkt 12:17 3.0+6.0i -- unboxed literal
TR opt: float-complex-float-div.rkt 12:6 (/ 1.0 2.0 3.0+6.0i) -- unboxed binary float complex
TR opt: float-complex-float-div.rkt 12:9 1.0 -- float in complex ops
TR opt: float-complex-float-div.rkt 3:51 (real-part x) -- complex accessor elimination
TR opt: float-complex-float-div.rkt 3:62 x -- unbox float-complex
TR opt: float-complex-float-div.rkt 4:51 (imag-part x) -- complex accessor elimination
TR opt: float-complex-float-div.rkt 4:62 x -- unbox float-complex
TR opt: float-complex-float-div.rkt 6:13 2.0+4.0i -- unboxed literal
TR opt: float-complex-float-div.rkt 6:6 (/ 1.0 2.0+4.0i) -- unboxed binary float complex
TR opt: float-complex-float-div.rkt 6:9 1.0 -- float in complex ops
TR opt: float-complex-float-div.rkt 7:18 2.0 -- float in complex ops
TR opt: float-complex-float-div.rkt 7:6 (/ 1.0+2.0i 2.0) -- unboxed binary float complex
TR opt: float-complex-float-div.rkt 7:9 1.0+2.0i -- unboxed literal
TR opt: float-complex-float-div.rkt 8:13 2.0+4.0i -- unboxed literal
TR opt: float-complex-float-div.rkt 8:22 3.0+6.0i -- unboxed literal
TR opt: float-complex-float-div.rkt 8:6 (/ 1.0 2.0+4.0i 3.0+6.0i) -- unboxed binary float complex
TR opt: float-complex-float-div.rkt 8:9 1.0 -- float in complex ops
TR opt: float-complex-float-div.rkt 9:18 2.0 -- float in complex ops
TR opt: float-complex-float-div.rkt 9:22 3.0+6.0i -- unboxed literal
TR opt: float-complex-float-div.rkt 9:6 (/ 1.0+2.0i 2.0 3.0+6.0i) -- unboxed binary float complex
TR opt: float-complex-float-div.rkt 9:9 1.0+2.0i -- unboxed literal
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")
END
#lang typed/scheme
#:optimize
#reader tests/typed-racket/optimizer/reset-port
(map (lambda: ((x : Float-Complex))
(string-append (real->decimal-string (real-part x) 10)

View File

@ -1,27 +1,27 @@
#;#;
#<<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 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 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 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 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 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 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
TR opt: float-complex-float-mul.rkt 2:0 (* 1.0 2.0+4.0i) -- unboxed binary float complex
TR opt: float-complex-float-mul.rkt 2:3 1.0 -- float in complex ops
TR opt: float-complex-float-mul.rkt 2:7 2.0+4.0i -- unboxed literal
TR opt: float-complex-float-mul.rkt 3:0 (* 1.0+2.0i 2.0) -- unboxed binary float complex
TR opt: float-complex-float-mul.rkt 3:12 2.0 -- float in complex ops
TR opt: float-complex-float-mul.rkt 3:3 1.0+2.0i -- unboxed literal
TR opt: float-complex-float-mul.rkt 4:0 (* 1.0 2.0+4.0i 3.0+6.0i) -- unboxed binary float complex
TR opt: float-complex-float-mul.rkt 4:16 3.0+6.0i -- unboxed literal
TR opt: float-complex-float-mul.rkt 4:3 1.0 -- float in complex ops
TR opt: float-complex-float-mul.rkt 4:7 2.0+4.0i -- unboxed literal
TR opt: float-complex-float-mul.rkt 5:0 (* 1.0+2.0i 2.0 3.0+6.0i) -- unboxed binary float complex
TR opt: float-complex-float-mul.rkt 5:12 2.0 -- float in complex ops
TR opt: float-complex-float-mul.rkt 5:16 3.0+6.0i -- unboxed literal
TR opt: float-complex-float-mul.rkt 5:3 1.0+2.0i -- unboxed literal
TR opt: float-complex-float-mul.rkt 6:0 (* 1.0+2.0i 2.0+4.0i 3.0) -- unboxed binary float complex
TR opt: float-complex-float-mul.rkt 6:12 2.0+4.0i -- unboxed literal
TR opt: float-complex-float-mul.rkt 6:21 3.0 -- float in complex ops
TR opt: float-complex-float-mul.rkt 6:3 1.0+2.0i -- unboxed literal
TR opt: float-complex-float-mul.rkt 7:0 (* 1.0+2.0i 2.0 3.0) -- unboxed binary float complex
TR opt: float-complex-float-mul.rkt 7:12 2.0 -- float in complex ops
TR opt: float-complex-float-mul.rkt 7:16 3.0 -- float in complex ops
TR opt: float-complex-float-mul.rkt 7:3 1.0+2.0i -- unboxed literal
END
#<<END
2.0+4.0i
@ -32,9 +32,9 @@ END
6.0+12.0i
END
#lang typed/scheme
#:optimize
#reader tests/typed-racket/optimizer/reset-port
(* 1.0 2.0+4.0i)
(* 1.0+2.0i 2.0)

View File

@ -1,24 +1,24 @@
#;#;
#<<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 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 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 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 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 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
TR opt: float-complex-float-small.rkt 2:0 (+ 1.0+2.0i 3.0) -- unboxed binary float complex
TR opt: float-complex-float-small.rkt 2:12 3.0 -- float in complex ops
TR opt: float-complex-float-small.rkt 2:3 1.0+2.0i -- unboxed literal
TR opt: float-complex-float-small.rkt 3:0 (+ 1.0 2.0+4.0i) -- unboxed binary float complex
TR opt: float-complex-float-small.rkt 3:3 1.0 -- float in complex ops
TR opt: float-complex-float-small.rkt 3:7 2.0+4.0i -- unboxed literal
TR opt: float-complex-float-small.rkt 4:0 (- 1.0+2.0i 3.0) -- unboxed binary float complex
TR opt: float-complex-float-small.rkt 4:12 3.0 -- float in complex ops
TR opt: float-complex-float-small.rkt 4:3 1.0+2.0i -- unboxed literal
TR opt: float-complex-float-small.rkt 5:0 (- 1.0 2.0+4.0i) -- unboxed binary float complex
TR opt: float-complex-float-small.rkt 5:3 1.0 -- float in complex ops
TR opt: float-complex-float-small.rkt 5:7 2.0+4.0i -- unboxed literal
TR opt: float-complex-float-small.rkt 6:0 (+ 1.0+2.0i (+ 1.0 2.0)) -- unboxed binary float complex
TR opt: float-complex-float-small.rkt 6:12 (+ 1.0 2.0) -- binary float
TR opt: float-complex-float-small.rkt 6:12 (+ 1.0 2.0) -- float in complex ops
TR opt: float-complex-float-small.rkt 6:15 1.0 -- float in complex ops
TR opt: float-complex-float-small.rkt 6:15 1.0 -- float in complex ops
TR opt: float-complex-float-small.rkt 6:19 2.0 -- float in complex ops
TR opt: float-complex-float-small.rkt 6:3 1.0+2.0i -- unboxed literal
END
#<<END
4.0+2.0i
@ -28,9 +28,9 @@ END
4.0+2.0i
END
#lang typed/scheme
#:optimize
#reader tests/typed-racket/optimizer/reset-port
(+ 1.0+2.0i 3.0)
(+ 1.0 2.0+4.0i)

View File

@ -1,21 +1,21 @@
#;#;
#<<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 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 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 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 in complex ops
TR opt: float-complex-float.rkt 34:3 1.0+2.0i -- unboxed literal
TR opt: float-complex-float.rkt 2:0 (+ 1.0+2.0i 2.0 3.0+6.0i) -- unboxed binary float complex
TR opt: float-complex-float.rkt 2:12 2.0 -- float in complex ops
TR opt: float-complex-float.rkt 2:16 3.0+6.0i -- unboxed literal
TR opt: float-complex-float.rkt 2:3 1.0+2.0i -- unboxed literal
TR opt: float-complex-float.rkt 3:0 (- 1.0 2.0+4.0i 3.0+6.0i) -- unboxed binary float complex
TR opt: float-complex-float.rkt 3:16 3.0+6.0i -- unboxed literal
TR opt: float-complex-float.rkt 3:3 1.0 -- float in complex ops
TR opt: float-complex-float.rkt 3:7 2.0+4.0i -- unboxed literal
TR opt: float-complex-float.rkt 4:0 (- 1.0+2.0i 2.0 3.0+6.0i) -- unboxed binary float complex
TR opt: float-complex-float.rkt 4:12 2.0 -- float in complex ops
TR opt: float-complex-float.rkt 4:16 3.0+6.0i -- unboxed literal
TR opt: float-complex-float.rkt 4:3 1.0+2.0i -- unboxed literal
TR opt: float-complex-float.rkt 5:0 (- 1.0+2.0i 2.0+4.0i 3.0) -- unboxed binary float complex
TR opt: float-complex-float.rkt 5:12 2.0+4.0i -- unboxed literal
TR opt: float-complex-float.rkt 5:21 3.0 -- float in complex ops
TR opt: float-complex-float.rkt 5:3 1.0+2.0i -- unboxed literal
END
#<<END
6.0+8.0i
@ -24,9 +24,9 @@ END
-4.0-2.0i
END
#lang typed/scheme
#:optimize
#reader tests/typed-racket/optimizer/reset-port
(+ 1.0+2.0i 2.0 3.0+6.0i)
(- 1.0 2.0+4.0i 3.0+6.0i)

View File

@ -1,18 +1,18 @@
#;#;
#<<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) -- 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
TR opt: float-complex-i.rkt 18:3 1.0+2.0i -- unboxed literal
TR opt: float-complex-i.rkt 2:0 (+ 1.0+2.0i (* 0+1.0i 2.0+4.0i)) -- unboxed binary float complex
TR opt: float-complex-i.rkt 2:12 (* 0+1.0i 2.0+4.0i) -- non float complex in complex ops
TR opt: float-complex-i.rkt 2:15 0+1.0i -- unboxed literal
TR opt: float-complex-i.rkt 2:15 0+1.0i -- unboxed literal
TR opt: float-complex-i.rkt 2:21 2.0+4.0i -- unboxed literal
TR opt: float-complex-i.rkt 2:3 1.0+2.0i -- unboxed literal
END
#<<END
-3.0+4.0i
END
#lang typed/scheme
#:optimize
#reader tests/typed-racket/optimizer/reset-port
(+ 1.0+2.0i (* +1.0i 2.0+4.0i))

View File

@ -1,15 +1,15 @@
#;#;
#<<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) -- non float complex in complex ops
TR opt: float-complex-integer.rkt 2:0 (+ (expt 2 100) 1.0+2.0i) -- unboxed binary float complex
TR opt: float-complex-integer.rkt 2:16 1.0+2.0i -- unboxed literal
TR opt: float-complex-integer.rkt 2:3 (expt 2 100) -- non float complex in complex ops
END
#<<END
1.2676506002282294e+30+2.0i
END
#lang typed/scheme
#:optimize
#reader tests/typed-racket/optimizer/reset-port
(+ (expt 2 100) 1.0+2.0i)

View File

@ -1,16 +1,16 @@
#;#;
#<<END
TR opt: float-complex-mult.rkt 16:0 (* 1.0+2.0i 2.0+4.0i 3.0+6.0i) -- unboxed binary float complex
TR opt: float-complex-mult.rkt 16:12 2.0+4.0i -- unboxed literal
TR opt: float-complex-mult.rkt 16:21 3.0+6.0i -- unboxed literal
TR opt: float-complex-mult.rkt 16:3 1.0+2.0i -- unboxed literal
TR opt: float-complex-mult.rkt 2:0 (* 1.0+2.0i 2.0+4.0i 3.0+6.0i) -- unboxed binary float complex
TR opt: float-complex-mult.rkt 2:12 2.0+4.0i -- unboxed literal
TR opt: float-complex-mult.rkt 2:21 3.0+6.0i -- unboxed literal
TR opt: float-complex-mult.rkt 2:3 1.0+2.0i -- unboxed literal
END
#<<END
-66.0-12.0i
END
#lang typed/scheme
#:optimize
#reader tests/typed-racket/optimizer/reset-port
(* 1.0+2.0i 2.0+4.0i 3.0+6.0i)

View File

@ -1,17 +1,18 @@
#;#;
#<<END
TR opt: float-complex-number-mul.rkt 17:0 (imag-part (* 0.0+1.0i (* 1 2))) -- complex accessor elimination
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) -- 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
TR opt: float-complex-number-mul.rkt 1:0 (imag-part (* 0.0+1.0i (* 1 2))) -- complex accessor elimination
TR opt: float-complex-number-mul.rkt 1:11 (* 0.0+1.0i (* 1 2)) -- unboxed binary float complex
TR opt: float-complex-number-mul.rkt 1:14 0.0+1.0i -- unboxed literal
TR opt: float-complex-number-mul.rkt 1:23 (* 1 2) -- fixnum bounded expr
TR opt: float-complex-number-mul.rkt 1:23 (* 1 2) -- non float complex in complex ops
TR opt: float-complex-number-mul.rkt 1:26 1 -- non float complex in complex ops
TR opt: float-complex-number-mul.rkt 1:26 1 -- non float complex in complex ops
TR opt: float-complex-number-mul.rkt 1:28 2 -- non float complex in complex ops
END
#<<END
2.0
END
#lang typed/racket
#reader tests/typed-racket/optimizer/reset-port
(imag-part (* 0.0+1.0i (* 1 2)))

View File

@ -1,11 +1,11 @@
#;#;
#<<END
TR opt: float-complex-parts.rkt 20:0 (real-part 1.0+2.0i) -- complex accessor elimination
TR opt: float-complex-parts.rkt 20:11 1.0+2.0i -- unboxed literal
TR opt: float-complex-parts.rkt 21:0 (imag-part 1.0+2.0i) -- complex accessor elimination
TR opt: float-complex-parts.rkt 21:11 1.0+2.0i -- unboxed literal
TR opt: float-complex-parts.rkt 22:0 (real-part 1.0+2.0i) -- complex accessor elimination
TR opt: float-complex-parts.rkt 22:11 1.0+2.0i -- unboxed literal
TR opt: float-complex-parts.rkt 2:0 (real-part 1.0+2.0i) -- complex accessor elimination
TR opt: float-complex-parts.rkt 2:11 1.0+2.0i -- unboxed literal
TR opt: float-complex-parts.rkt 3:0 (imag-part 1.0+2.0i) -- complex accessor elimination
TR opt: float-complex-parts.rkt 3:11 1.0+2.0i -- unboxed literal
TR opt: float-complex-parts.rkt 4:0 (real-part 1.0+2.0i) -- complex accessor elimination
TR opt: float-complex-parts.rkt 4:11 1.0+2.0i -- unboxed literal
END
#<<END
1.0
@ -13,9 +13,9 @@ END
1.0
END
#lang typed/scheme
#:optimize
#reader tests/typed-racket/optimizer/reset-port
(real-part 1.0+2.0i)
(imag-part 1+2.0i)

View File

@ -1,21 +1,21 @@
#;#;
#<<END
TR opt: float-complex-parts2.rkt 45:0 (real-part (+ 1.0+2.0i 2.0+4.0i)) -- complex accessor elimination
TR opt: float-complex-parts2.rkt 45:11 (+ 1.0+2.0i 2.0+4.0i) -- unboxed binary float complex
TR opt: float-complex-parts2.rkt 45:14 1.0+2.0i -- unboxed literal
TR opt: float-complex-parts2.rkt 45:23 2.0+4.0i -- unboxed literal
TR opt: float-complex-parts2.rkt 46:0 (unsafe-flreal-part (+ 1.0+2.0i 2.0+4.0i)) -- complex accessor elimination
TR opt: float-complex-parts2.rkt 46:20 (+ 1.0+2.0i 2.0+4.0i) -- unboxed binary float complex
TR opt: float-complex-parts2.rkt 46:23 1.0+2.0i -- unboxed literal
TR opt: float-complex-parts2.rkt 46:32 2.0+4.0i -- unboxed literal
TR opt: float-complex-parts2.rkt 47:0 (imag-part (+ 1.0+2.0i 2.0+4.0i)) -- complex accessor elimination
TR opt: float-complex-parts2.rkt 47:11 (+ 1.0+2.0i 2.0+4.0i) -- unboxed binary float complex
TR opt: float-complex-parts2.rkt 47:14 1.0+2.0i -- unboxed literal
TR opt: float-complex-parts2.rkt 47:23 2.0+4.0i -- unboxed literal
TR opt: float-complex-parts2.rkt 48:0 (unsafe-flimag-part (+ 1.0+2.0i 2.0+4.0i)) -- complex accessor elimination
TR opt: float-complex-parts2.rkt 48:20 (+ 1.0+2.0i 2.0+4.0i) -- unboxed binary float complex
TR opt: float-complex-parts2.rkt 48:23 1.0+2.0i -- unboxed literal
TR opt: float-complex-parts2.rkt 48:32 2.0+4.0i -- unboxed literal
TR opt: float-complex-parts2.rkt 4:0 (real-part (+ 1.0+2.0i 2.0+4.0i)) -- complex accessor elimination
TR opt: float-complex-parts2.rkt 4:11 (+ 1.0+2.0i 2.0+4.0i) -- unboxed binary float complex
TR opt: float-complex-parts2.rkt 4:14 1.0+2.0i -- unboxed literal
TR opt: float-complex-parts2.rkt 4:23 2.0+4.0i -- unboxed literal
TR opt: float-complex-parts2.rkt 5:0 (unsafe-flreal-part (+ 1.0+2.0i 2.0+4.0i)) -- complex accessor elimination
TR opt: float-complex-parts2.rkt 5:20 (+ 1.0+2.0i 2.0+4.0i) -- unboxed binary float complex
TR opt: float-complex-parts2.rkt 5:23 1.0+2.0i -- unboxed literal
TR opt: float-complex-parts2.rkt 5:32 2.0+4.0i -- unboxed literal
TR opt: float-complex-parts2.rkt 6:0 (imag-part (+ 1.0+2.0i 2.0+4.0i)) -- complex accessor elimination
TR opt: float-complex-parts2.rkt 6:11 (+ 1.0+2.0i 2.0+4.0i) -- unboxed binary float complex
TR opt: float-complex-parts2.rkt 6:14 1.0+2.0i -- unboxed literal
TR opt: float-complex-parts2.rkt 6:23 2.0+4.0i -- unboxed literal
TR opt: float-complex-parts2.rkt 7:0 (unsafe-flimag-part (+ 1.0+2.0i 2.0+4.0i)) -- complex accessor elimination
TR opt: float-complex-parts2.rkt 7:20 (+ 1.0+2.0i 2.0+4.0i) -- unboxed binary float complex
TR opt: float-complex-parts2.rkt 7:23 1.0+2.0i -- unboxed literal
TR opt: float-complex-parts2.rkt 7:32 2.0+4.0i -- unboxed literal
END
#<<END
3.0
@ -24,21 +24,9 @@ END
6.0
END
#lang typed/scheme
#:optimize
#reader tests/typed-racket/optimizer/reset-port
(require racket/unsafe/ops)

View File

@ -1,33 +1,33 @@
#;#;
#<<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 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 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 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 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
TR opt: float-complex-parts3.rkt 48:44 3.0+6.0i -- unboxed literal
TR opt: float-complex-parts3.rkt 4: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 4:12 (real-part (+ 2.0+4.0i 3.0+6.0i)) -- complex accessor elimination
TR opt: float-complex-parts3.rkt 4:12 (real-part (+ 2.0+4.0i 3.0+6.0i)) -- float in complex ops
TR opt: float-complex-parts3.rkt 4:23 (+ 2.0+4.0i 3.0+6.0i) -- unboxed binary float complex
TR opt: float-complex-parts3.rkt 4:26 2.0+4.0i -- unboxed literal
TR opt: float-complex-parts3.rkt 4:3 1.0+2.0i -- unboxed literal
TR opt: float-complex-parts3.rkt 4:35 3.0+6.0i -- unboxed literal
TR opt: float-complex-parts3.rkt 5: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 5:12 (unsafe-flreal-part (+ 2.0+4.0i 3.0+6.0i)) -- complex accessor elimination
TR opt: float-complex-parts3.rkt 5:12 (unsafe-flreal-part (+ 2.0+4.0i 3.0+6.0i)) -- float in complex ops
TR opt: float-complex-parts3.rkt 5:3 1.0+2.0i -- unboxed literal
TR opt: float-complex-parts3.rkt 5:32 (+ 2.0+4.0i 3.0+6.0i) -- unboxed binary float complex
TR opt: float-complex-parts3.rkt 5:35 2.0+4.0i -- unboxed literal
TR opt: float-complex-parts3.rkt 5:44 3.0+6.0i -- unboxed literal
TR opt: float-complex-parts3.rkt 6: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 6:12 (imag-part (+ 2.0+4.0i 3.0+6.0i)) -- complex accessor elimination
TR opt: float-complex-parts3.rkt 6:12 (imag-part (+ 2.0+4.0i 3.0+6.0i)) -- float in complex ops
TR opt: float-complex-parts3.rkt 6:23 (+ 2.0+4.0i 3.0+6.0i) -- unboxed binary float complex
TR opt: float-complex-parts3.rkt 6:26 2.0+4.0i -- unboxed literal
TR opt: float-complex-parts3.rkt 6:3 1.0+2.0i -- unboxed literal
TR opt: float-complex-parts3.rkt 6:35 3.0+6.0i -- unboxed literal
TR opt: float-complex-parts3.rkt 7: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 7:12 (unsafe-flimag-part (+ 2.0+4.0i 3.0+6.0i)) -- complex accessor elimination
TR opt: float-complex-parts3.rkt 7:12 (unsafe-flimag-part (+ 2.0+4.0i 3.0+6.0i)) -- float in complex ops
TR opt: float-complex-parts3.rkt 7:3 1.0+2.0i -- unboxed literal
TR opt: float-complex-parts3.rkt 7:32 (+ 2.0+4.0i 3.0+6.0i) -- unboxed binary float complex
TR opt: float-complex-parts3.rkt 7:35 2.0+4.0i -- unboxed literal
TR opt: float-complex-parts3.rkt 7:44 3.0+6.0i -- unboxed literal
END
#<<END
6.0+2.0i
@ -36,9 +36,9 @@ END
11.0+2.0i
END
#lang typed/scheme
#:optimize
#reader tests/typed-racket/optimizer/reset-port
(require racket/unsafe/ops)

View File

@ -1,22 +1,20 @@
#;#;
#<<END
TR info: float-complex-sin.rkt 21:13 (sin (* t 6.28)) -- possible exact real arith
TR info: float-complex-sin.rkt 21:18 (* t 6.28) -- possible 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)) -- non float complex in complex ops
TR opt: float-complex-sin.rkt 21:30 0.0+0.0i -- unboxed literal
TR info: float-complex-sin.rkt 2:13 (sin (* t 6.28)) -- possible exact real arith
TR info: float-complex-sin.rkt 2:18 (* t 6.28) -- possible exact real arith
TR missed opt: float-complex-sin.rkt 2:13 (sin (* t 6.28)) -- all args float-arg-expr, result not Float -- caused by: 2:18 (* t 6.28)
TR missed opt: float-complex-sin.rkt 2:18 (* t 6.28) -- all args float-arg-expr, result not Float -- caused by: 2:21 t
TR opt: float-complex-sin.rkt 2:10 (+ (sin (* t 6.28)) 0.0+0.0i) -- unboxed binary float complex
TR opt: float-complex-sin.rkt 2:13 (sin (* t 6.28)) -- non float complex in complex ops
TR opt: float-complex-sin.rkt 2:30 0.0+0.0i -- unboxed literal
END
#<<END
-0.0031853017931379904+0.0i
END
#lang typed/scheme
#:optimize
#reader tests/typed-racket/optimizer/reset-port
((lambda: ((t : Integer))
(+ (sin (* t 6.28)) 0.0+0.0i))
1)

View File

@ -1,25 +1,25 @@
#;#;
#<<END
TR opt: float-complex-unary.rkt 31:0 (real-part (+ 1.0+2.0i (+ (* 3.0+4.0i 5.0+6.0i)))) -- complex accessor elimination
TR opt: float-complex-unary.rkt 31:11 (+ 1.0+2.0i (+ (* 3.0+4.0i 5.0+6.0i))) -- unboxed binary float complex
TR opt: float-complex-unary.rkt 31:14 1.0+2.0i -- unboxed literal
TR opt: float-complex-unary.rkt 31:23 (+ (* 3.0+4.0i 5.0+6.0i)) -- unboxed unary float complex
TR opt: float-complex-unary.rkt 31:26 (* 3.0+4.0i 5.0+6.0i) -- unboxed binary float complex
TR opt: float-complex-unary.rkt 31:26 (* 3.0+4.0i 5.0+6.0i) -- unboxed binary float complex
TR opt: float-complex-unary.rkt 31:29 3.0+4.0i -- unboxed literal
TR opt: float-complex-unary.rkt 31:29 3.0+4.0i -- unboxed literal
TR opt: float-complex-unary.rkt 31:38 5.0+6.0i -- unboxed literal
TR opt: float-complex-unary.rkt 31:38 5.0+6.0i -- unboxed literal
TR opt: float-complex-unary.rkt 32:0 (real-part (+ 7.0+8.0i (* (+ 9.0+10.0i 11.0+12.0i)))) -- complex accessor elimination
TR opt: float-complex-unary.rkt 32:11 (+ 7.0+8.0i (* (+ 9.0+10.0i 11.0+12.0i))) -- unboxed binary float complex
TR opt: float-complex-unary.rkt 32:14 7.0+8.0i -- unboxed literal
TR opt: float-complex-unary.rkt 32:23 (* (+ 9.0+10.0i 11.0+12.0i)) -- unboxed unary float complex
TR opt: float-complex-unary.rkt 32:26 (+ 9.0+10.0i 11.0+12.0i) -- unboxed binary float complex
TR opt: float-complex-unary.rkt 32:26 (+ 9.0+10.0i 11.0+12.0i) -- unboxed binary float complex
TR opt: float-complex-unary.rkt 32:29 9.0+10.0i -- unboxed literal
TR opt: float-complex-unary.rkt 32:29 9.0+10.0i -- unboxed literal
TR opt: float-complex-unary.rkt 32:39 11.0+12.0i -- unboxed literal
TR opt: float-complex-unary.rkt 32:39 11.0+12.0i -- unboxed literal
TR opt: float-complex-unary.rkt 2:0 (real-part (+ 1.0+2.0i (+ (* 3.0+4.0i 5.0+6.0i)))) -- complex accessor elimination
TR opt: float-complex-unary.rkt 2:11 (+ 1.0+2.0i (+ (* 3.0+4.0i 5.0+6.0i))) -- unboxed binary float complex
TR opt: float-complex-unary.rkt 2:14 1.0+2.0i -- unboxed literal
TR opt: float-complex-unary.rkt 2:23 (+ (* 3.0+4.0i 5.0+6.0i)) -- unboxed unary float complex
TR opt: float-complex-unary.rkt 2:26 (* 3.0+4.0i 5.0+6.0i) -- unboxed binary float complex
TR opt: float-complex-unary.rkt 2:26 (* 3.0+4.0i 5.0+6.0i) -- unboxed binary float complex
TR opt: float-complex-unary.rkt 2:29 3.0+4.0i -- unboxed literal
TR opt: float-complex-unary.rkt 2:29 3.0+4.0i -- unboxed literal
TR opt: float-complex-unary.rkt 2:38 5.0+6.0i -- unboxed literal
TR opt: float-complex-unary.rkt 2:38 5.0+6.0i -- unboxed literal
TR opt: float-complex-unary.rkt 3:0 (real-part (+ 7.0+8.0i (* (+ 9.0+10.0i 11.0+12.0i)))) -- complex accessor elimination
TR opt: float-complex-unary.rkt 3:11 (+ 7.0+8.0i (* (+ 9.0+10.0i 11.0+12.0i))) -- unboxed binary float complex
TR opt: float-complex-unary.rkt 3:14 7.0+8.0i -- unboxed literal
TR opt: float-complex-unary.rkt 3:23 (* (+ 9.0+10.0i 11.0+12.0i)) -- unboxed unary float complex
TR opt: float-complex-unary.rkt 3:26 (+ 9.0+10.0i 11.0+12.0i) -- unboxed binary float complex
TR opt: float-complex-unary.rkt 3:26 (+ 9.0+10.0i 11.0+12.0i) -- unboxed binary float complex
TR opt: float-complex-unary.rkt 3:29 9.0+10.0i -- unboxed literal
TR opt: float-complex-unary.rkt 3:29 9.0+10.0i -- unboxed literal
TR opt: float-complex-unary.rkt 3:39 11.0+12.0i -- unboxed literal
TR opt: float-complex-unary.rkt 3:39 11.0+12.0i -- unboxed literal
END
#<<END
-8.0
@ -27,6 +27,7 @@ END
END
#lang typed/racket
#reader tests/typed-racket/optimizer/reset-port
(real-part (+ 1.0+2.0i (+ (* 3.0+4.0i 5.0+6.0i))))
(real-part (+ 7.0+8.0i (* (+ 9.0+10.0i 11.0+12.0i))))

View File

@ -1,20 +1,20 @@
#;#;
#<<END
TR opt: float-complex.rkt 19:0 (+ 1.0+2.0i 2.0+4.0i) -- unboxed binary float complex
TR opt: float-complex.rkt 19:12 2.0+4.0i -- unboxed literal
TR opt: float-complex.rkt 19:3 1.0+2.0i -- unboxed literal
TR opt: float-complex.rkt 20:0 (- 1.0+2.0i 2.0+4.0i) -- unboxed binary float complex
TR opt: float-complex.rkt 20:12 2.0+4.0i -- unboxed literal
TR opt: float-complex.rkt 20:3 1.0+2.0i -- unboxed literal
TR opt: float-complex.rkt 2:0 (+ 1.0+2.0i 2.0+4.0i) -- unboxed binary float complex
TR opt: float-complex.rkt 2:12 2.0+4.0i -- unboxed literal
TR opt: float-complex.rkt 2:3 1.0+2.0i -- unboxed literal
TR opt: float-complex.rkt 3:0 (- 1.0+2.0i 2.0+4.0i) -- unboxed binary float complex
TR opt: float-complex.rkt 3:12 2.0+4.0i -- unboxed literal
TR opt: float-complex.rkt 3:3 1.0+2.0i -- unboxed literal
END
#<<END
3.0+6.0i
-1.0-2.0i
END
#lang typed/scheme
#:optimize
#reader tests/typed-racket/optimizer/reset-port
(+ 1.0+2.0i 2.0+4.0i)
(- 1.0+2.0i 2.0+4.0i)

View File

@ -1,12 +1,11 @@
#;#;
#<<END
TR opt: float-fun.rkt 13:2 (+ x 1.0) -- binary float
TR opt: float-fun.rkt 4:2 (+ x 1.0) -- binary float
END
""
#lang typed/racket
#:optimize
#reader tests/typed-racket/optimizer/reset-port
(: f (Float -> Float))
(define (f x)

View File

@ -1,17 +1,17 @@
#;#;
#<<END
TR opt: float-promotion.rkt 16:0 (+ (assert (modulo 1 2) exact-positive-integer?) 2.0) -- binary float
TR opt: float-promotion.rkt 16:11 (modulo 1 2) -- binary nonzero fixnum
TR opt: float-promotion.rkt 17:0 (+ (expt 100 100) 2.0) -- binary float
TR opt: float-promotion.rkt 2:0 (+ (assert (modulo 1 2) exact-positive-integer?) 2.0) -- binary float
TR opt: float-promotion.rkt 2:11 (modulo 1 2) -- binary nonzero fixnum
TR opt: float-promotion.rkt 3:0 (+ (expt 100 100) 2.0) -- binary float
END
#<<END
3.0
1e+200
END
#lang typed/scheme
#:optimize
#reader tests/typed-racket/optimizer/reset-port
(+ (assert (modulo 1 2) exact-positive-integer?) 2.0)
(+ (expt 100 100) 2.0)

View File

@ -1,13 +1,13 @@
#;#;
#<<END
TR info: float-real.rkt 22:15 (* (ann 2 Integer) 3.2) -- possible exact real arith
TR info: float-real.rkt 23:0 (* 2.3 (* (ann 2 Integer) 3.1)) -- possible exact real arith
TR info: float-real.rkt 23:7 (* (ann 2 Integer) 3.1) -- possible exact real arith
TR missed opt: float-real.rkt 22:15 (* (ann 2 Integer) 3.2) -- all args float-arg-expr, result not Float -- caused by: 22:23 2
TR missed opt: float-real.rkt 23:0 (* 2.3 (* (ann 2 Integer) 3.1)) -- all args float-arg-expr, result not Float -- caused by: 23:7 (* (ann 2 Integer) 3.1)
TR missed opt: float-real.rkt 23:7 (* (ann 2 Integer) 3.1) -- all args float-arg-expr, result not Float -- caused by: 23:15 2
TR opt: float-real.rkt 21:0 (+ 2.3 (ann 3 Positive-Real)) -- binary float
TR opt: float-real.rkt 22:0 (+ 2.3 (assert (* (ann 2 Integer) 3.2) positive?)) -- binary float
TR info: float-real.rkt 3:15 (* (ann 2 Integer) 3.2) -- possible exact real arith
TR info: float-real.rkt 4:0 (* 2.3 (* (ann 2 Integer) 3.1)) -- possible exact real arith
TR info: float-real.rkt 4:7 (* (ann 2 Integer) 3.1) -- possible exact real arith
TR missed opt: float-real.rkt 3:15 (* (ann 2 Integer) 3.2) -- all args float-arg-expr, result not Float -- caused by: 3:23 2
TR missed opt: float-real.rkt 4:0 (* 2.3 (* (ann 2 Integer) 3.1)) -- all args float-arg-expr, result not Float -- caused by: 4:7 (* (ann 2 Integer) 3.1)
TR missed opt: float-real.rkt 4:7 (* (ann 2 Integer) 3.1) -- all args float-arg-expr, result not Float -- caused by: 4:15 2
TR opt: float-real.rkt 2:0 (+ 2.3 (ann 3 Positive-Real)) -- binary float
TR opt: float-real.rkt 3:0 (+ 2.3 (assert (* (ann 2 Integer) 3.2) positive?)) -- binary float
END
#<<END
5.3
@ -15,8 +15,8 @@ END
14.26
END
#lang typed/racket
#reader tests/typed-racket/optimizer/reset-port
;; reals within float expressions should be coerced when it's safe to do so
(+ 2.3 (ann 3 Positive-Real)) ; safe
(+ 2.3 (assert (* (ann 2 Integer) 3.2) positive?)) ; inner = unsafe, outer = unsafe

View File

@ -1,14 +1,14 @@
#;#;
#<<END
TR info: flrandom.rkt 14:7 random -- hidden parameter (random)
TR info: flrandom.rkt 15:7 random -- hidden parameter (random)
TR opt: flrandom.rkt 14:6 (random) -- float 0-arg random
TR opt: flrandom.rkt 16:6 (random (current-pseudo-random-generator)) -- float random
TR opt: flrandom.rkt 17:6 (flrandom (current-pseudo-random-generator)) -- float random
TR info: flrandom.rkt 3:7 random -- hidden parameter (random)
TR info: flrandom.rkt 4:7 random -- hidden parameter (random)
TR opt: flrandom.rkt 3:6 (random) -- float 0-arg random
TR opt: flrandom.rkt 5:6 (random (current-pseudo-random-generator)) -- float random
TR opt: flrandom.rkt 6:6 (flrandom (current-pseudo-random-generator)) -- float random
END
""
#lang typed/racket
#reader tests/typed-racket/optimizer/reset-port
(require racket/flonum)
(void (random)) ; yes

View File

@ -1,13 +1,13 @@
#;#;
#<<END
TR opt: flvector-length.rkt 13:0 (flvector-length (flvector 0.0 1.2)) -- flvector-length
TR opt: flvector-length.rkt 2:0 (flvector-length (flvector 0.0 1.2)) -- flvector-length
END
#<<END
2
END
#lang typed/scheme
#:optimize
#reader tests/typed-racket/optimizer/reset-port
(require racket/flonum)
(flvector-length (flvector 0.0 1.2))

View File

@ -1,13 +1,13 @@
#;#;
#<<END
TR opt: fx-fl.rkt 13:0 (exact->inexact 1) -- fixnum to float
TR opt: fx-fl.rkt 2:0 (exact->inexact 1) -- fixnum to float
END
#<<END
1.0
END
#lang typed/scheme
#:optimize
#reader tests/typed-racket/optimizer/reset-port
(exact->inexact 1)

View File

@ -1,11 +1,12 @@
#;#;
#<<END
TR info: in-bytes.rkt 11:7 display -- hidden parameter
TR info: in-bytes.rkt 11:7 display -- hidden parameter
TR opt: in-bytes.rkt 10:20 #"123" -- in-bytes
TR info: in-bytes.rkt 2:7 display -- hidden parameter
TR info: in-bytes.rkt 2:7 display -- hidden parameter
TR opt: in-bytes.rkt 1:20 #"123" -- in-bytes
END
"495051"
#lang typed/scheme
#:optimize
#reader tests/typed-racket/optimizer/reset-port
(for: ((i : Integer #"123"))
(display i))

View File

@ -1,11 +1,12 @@
#;#;
#<<END
TR info: in-list.rkt 11:7 display -- hidden parameter
TR info: in-list.rkt 11:7 display -- hidden parameter
TR opt: in-list.rkt 10:20 (quote (1 2 3)) -- in-list
TR info: in-list.rkt 2:7 display -- hidden parameter
TR info: in-list.rkt 2:7 display -- hidden parameter
TR opt: in-list.rkt 1:20 (quote (1 2 3)) -- in-list
END
"123"
#lang typed/scheme
#:optimize
#reader tests/typed-racket/optimizer/reset-port
(for: ((i : Natural '(1 2 3)))
(display i))

View File

@ -1,11 +1,12 @@
#;#;
#<<END
TR info: in-range.rkt 11:3 display -- hidden parameter
TR info: in-range.rkt 11:3 display -- hidden parameter
TR opt: in-range.rkt 10:9 4 -- in-range
TR info: in-range.rkt 2:3 display -- hidden parameter
TR info: in-range.rkt 2:3 display -- hidden parameter
TR opt: in-range.rkt 1:9 4 -- in-range
END
"0123"
#lang typed/scheme
#:optimize
#reader tests/typed-racket/optimizer/reset-port
(for ([i 4])
(display i))

View File

@ -1,11 +1,12 @@
#;#;
#<<END
TR info: in-string.rkt 11:7 display -- hidden parameter
TR info: in-string.rkt 11:7 display -- hidden parameter
TR opt: in-string.rkt 10:17 "123" -- in-string
TR info: in-string.rkt 2:7 display -- hidden parameter
TR info: in-string.rkt 2:7 display -- hidden parameter
TR opt: in-string.rkt 1:17 "123" -- in-string
END
"123"
#lang typed/scheme
#:optimize
#reader tests/typed-racket/optimizer/reset-port
(for: ((i : Char "123"))
(display i))

View File

@ -1,11 +1,12 @@
#;#;
#<<END
TR info: in-vector.rkt 11:7 display -- hidden parameter
TR info: in-vector.rkt 11:7 display -- hidden parameter
TR opt: in-vector.rkt 10:20 (vector 1 2 3) -- in-vector
TR info: in-vector.rkt 2:7 display -- hidden parameter
TR info: in-vector.rkt 2:7 display -- hidden parameter
TR opt: in-vector.rkt 1:20 (vector 1 2 3) -- in-vector
END
"123"
#lang typed/scheme
#:optimize
#reader tests/typed-racket/optimizer/reset-port
(for: ((i : Integer (vector 1 2 3)))
(display i))

View File

@ -1,11 +1,11 @@
#;#;
#<<END
TR info: invalid-binary-nonzero-fixnum.rkt 11:3 display -- hidden parameter
TR info: invalid-binary-nonzero-fixnum.rkt 3:3 display -- hidden parameter
END
""
#lang typed/scheme
#:optimize
#reader tests/typed-racket/optimizer/reset-port
(: f ( -> Void))
(define (f) ; in a function, to prevent evaluation
(display (quotient 4 0))) ; 2 fixnums, but the second is 0, cannot optimize

View File

@ -1,11 +1,11 @@
#;#;
#<<END
TR missed opt: invalid-derived-pair.rkt 13:2 (cadr x) -- car/cdr on a potentially empty list -- caused by: 13:2 (cadr x)
TR missed opt: invalid-derived-pair.rkt 18:6 (cadr x) -- car/cdr on a potentially empty list -- caused by: 18:6 (cadr x)
TR missed opt: invalid-derived-pair.rkt 10:6 (cadr x) -- car/cdr on a potentially empty list -- caused by: 10:6 (cadr x)
TR missed opt: invalid-derived-pair.rkt 5:2 (cadr x) -- car/cdr on a potentially empty list -- caused by: 5:2 (cadr x)
END
""
#lang typed/racket #:optimize
#reader tests/typed-racket/optimizer/reset-port
;; can't optimize, the lists may not be long enough
(: f ((Listof Integer) -> Integer))

View File

@ -1,12 +1,12 @@
#;#;
#<<END
TR opt: invalid-exact-inexact.rkt 12:0 (exact->inexact 1.0) -- float to float
TR opt: invalid-exact-inexact.rkt 1:0 (exact->inexact 1.0) -- float to float
END
#<<END
1.0
END
#lang typed/scheme
#:optimize
#reader tests/typed-racket/optimizer/reset-port
(exact->inexact 1.0) ; not an integer, can't optimize

View File

@ -1,13 +1,13 @@
#;#;
#<<END
TR missed opt: invalid-float-comp.rkt 13:0 (< 1.0 2) -- generic comparison -- caused by: 13:7 2
TR missed opt: invalid-float-comp.rkt 2:0 (< 1.0 2) -- generic comparison -- caused by: 2:7 2
END
#<<END
#t
END
#lang typed/scheme
#:optimize
#reader tests/typed-racket/optimizer/reset-port
(< 1.0 2)

View File

@ -1,9 +1,9 @@
#;#;
#<<END
TR info: invalid-float-promotion.rkt 16:0 (/ (ann 1 Integer) 2.0) -- possible exact real arith
TR info: invalid-float-promotion.rkt 17:0 (* (ann 2/3 Exact-Rational) 3.0) -- possible exact real arith
TR missed opt: invalid-float-promotion.rkt 16:0 (/ (ann 1 Integer) 2.0) -- all args float-arg-expr, result not Float -- caused by: 16:8 1
TR missed opt: invalid-float-promotion.rkt 17:0 (* (ann 2/3 Exact-Rational) 3.0) -- all args float-arg-expr, result not Float -- caused by: 17:8 2/3
TR info: invalid-float-promotion.rkt 2:0 (/ (ann 1 Integer) 2.0) -- possible exact real arith
TR info: invalid-float-promotion.rkt 3:0 (* (ann 2/3 Exact-Rational) 3.0) -- possible exact real arith
TR missed opt: invalid-float-promotion.rkt 2:0 (/ (ann 1 Integer) 2.0) -- all args float-arg-expr, result not Float -- caused by: 2:8 1
TR missed opt: invalid-float-promotion.rkt 3:0 (* (ann 2/3 Exact-Rational) 3.0) -- all args float-arg-expr, result not Float -- caused by: 3:8 2/3
END
#<<END
0.5
@ -12,6 +12,7 @@ END
END
#lang typed/scheme
#:optimize
#reader tests/typed-racket/optimizer/reset-port
;; the ann are necessary, since (* PosReal Float) -> Float (exact 0 is not in PosReal)
(/ (ann 1 Integer) 2.0) ; result is not a float, can't optimize
(* (ann 2/3 Exact-Rational) 3.0)

View File

@ -1,15 +1,15 @@
#;#;
#<<END
TR info: invalid-fxquotient.rkt 17:14 (fxquotient 3 0) -- non-optimized fixnum op
TR missed opt: invalid-fxquotient.rkt 15:21 (quotient fixnum-min -1) -- out of fixnum range
TR info: invalid-fxquotient.rkt 5:14 (fxquotient 3 0) -- non-optimized fixnum op
TR missed opt: invalid-fxquotient.rkt 3:21 (quotient fixnum-min -1) -- out of fixnum range
END
#<<END
#t
END
#lang typed/racket/base
(require racket/fixnum)
#reader tests/typed-racket/optimizer/reset-port
(define: fixnum-min : Nonpositive-Fixnum (assert (- (expt 2 30)) fixnum?))
(define: q : Natural (quotient fixnum-min -1)) ; this can't be optimized safely

View File

@ -1,12 +1,12 @@
#;#;
#<<END
TR info: invalid-inexact-complex-parts.rkt 12:0 (real-part 1+2i) -- possible exact real arith
TR info: invalid-inexact-complex-parts.rkt 1:0 (real-part 1+2i) -- possible exact real arith
END
#<<END
1
END
#lang typed/scheme
#:optimize
#reader tests/typed-racket/optimizer/reset-port
(real-part 1+2i)

View File

@ -1,14 +1,14 @@
#;#;
#<<END
TR info: invalid-log-complex.rkt 14:0 (real-part (log (ann 2.0 Float))) -- possible exact real arith
TR missed opt: invalid-log-complex.rkt 14:11 (log (ann 2.0 Float)) -- unexpected complex type
TR info: invalid-log-complex.rkt 2:0 (real-part (log (ann 2.0 Float))) -- possible exact real arith
TR missed opt: invalid-log-complex.rkt 2:11 (log (ann 2.0 Float)) -- unexpected complex type
END
#<<END
0.6931471805599453
END
#lang typed/scheme
#:optimize
#reader tests/typed-racket/optimizer/reset-port
(real-part (log (ann 2.0 Float)))

View File

@ -5,7 +5,7 @@ END
1+2i
END
#lang typed/scheme
#:optimize
#reader tests/typed-racket/optimizer/reset-port
(make-rectangular 1 2)

View File

@ -5,8 +5,8 @@ END
0
END
#lang typed/scheme
#:optimize
#reader tests/typed-racket/optimizer/reset-port
(make-polar 0 0)

View File

@ -1,11 +1,11 @@
#;#;
#<<END
TR missed opt: invalid-mpair.rkt 11:2 (mcar x) -- car/cdr on a potentially empty list -- caused by: 11:8 x
TR missed opt: invalid-mpair.rkt 3:2 (mcar x) -- car/cdr on a potentially empty list -- caused by: 3:8 x
END
""
#lang typed/scheme
#:optimize
#reader tests/typed-racket/optimizer/reset-port
(: f ((MListof Integer) -> Integer))
(define (f x)
(mcar x))

View File

@ -1,12 +1,12 @@
#;#;
#<<END
TR missed opt: invalid-sqrt.rkt 12:0 (sqrt -2.0) -- unexpected complex type
TR missed opt: invalid-sqrt.rkt 1:0 (sqrt -2.0) -- unexpected complex type
END
#<<END
0+1.4142135623730951i
END
#lang typed/scheme
#:optimize
#reader tests/typed-racket/optimizer/reset-port
(sqrt -2.0) ; not a nonnegative flonum, can't optimize

View File

@ -1,24 +1,24 @@
#;#;
#<<END
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: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 23:6 (t1 (+ 1.0+2.0i 2.0+4.0i)) -- unboxed let bindings
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
TR info: invalid-unboxed-let.rkt 6:3 display -- hidden parameter
TR info: invalid-unboxed-let.rkt 7:3 display -- hidden parameter
TR info: invalid-unboxed-let.rkt 8:3 display -- hidden parameter
TR info: invalid-unboxed-let.rkt 9:3 display -- hidden parameter
TR opt: invalid-unboxed-let.rkt 2:10 (+ 1.0+2.0i 2.0+4.0i) -- unboxed binary float complex
TR opt: invalid-unboxed-let.rkt 2:13 1.0+2.0i -- unboxed literal
TR opt: invalid-unboxed-let.rkt 2:22 2.0+4.0i -- unboxed literal
TR opt: invalid-unboxed-let.rkt 2:6 (t1 (+ 1.0+2.0i 2.0+4.0i)) -- unboxed let bindings
TR opt: invalid-unboxed-let.rkt 3:10 (+ 3.0+6.0i 4.0+8.0i) -- unboxed binary float complex
TR opt: invalid-unboxed-let.rkt 3:13 3.0+6.0i -- unboxed literal
TR opt: invalid-unboxed-let.rkt 3:22 4.0+8.0i -- unboxed literal
TR opt: invalid-unboxed-let.rkt 6:11 (+ t1 t1) -- unboxed binary float complex
TR opt: invalid-unboxed-let.rkt 6:14 t1 -- leave var unboxed
TR opt: invalid-unboxed-let.rkt 6:17 t1 -- leave var unboxed
END
"6.0+12.0i7.0+14.0i1.0+2.0i1"
#lang typed/scheme
#:optimize
#reader tests/typed-racket/optimizer/reset-port
(let ((t1 (+ 1.0+2.0i 2.0+4.0i)) ; can be unboxed
(t2 (+ 3.0+6.0i 4.0+8.0i)) ; can't be unboxed

View File

@ -1,22 +1,22 @@
#;#;
#<<END
TR opt: invalid-unboxed-let2.rkt 24:30 (+ 1.0+2.0i 2.0+4.0i) -- unboxed binary float complex
TR opt: invalid-unboxed-let2.rkt 24:33 1.0+2.0i -- unboxed literal
TR opt: invalid-unboxed-let2.rkt 24:42 2.0+4.0i -- unboxed literal
TR opt: invalid-unboxed-let2.rkt 24:52 (+ 3.0+6.0i 4.0+8.0i) -- unboxed binary float complex
TR opt: invalid-unboxed-let2.rkt 24:55 3.0+6.0i -- unboxed literal
TR opt: invalid-unboxed-let2.rkt 24:64 4.0+8.0i -- unboxed literal
TR opt: invalid-unboxed-let2.rkt 25:2 (+ t1 t2) -- unboxed binary float complex
TR opt: invalid-unboxed-let2.rkt 25:5 t1 -- unbox float-complex
TR opt: invalid-unboxed-let2.rkt 25:8 t2 -- unbox float-complex
TR opt: invalid-unboxed-let2.rkt 5:30 (+ 1.0+2.0i 2.0+4.0i) -- unboxed binary float complex
TR opt: invalid-unboxed-let2.rkt 5:33 1.0+2.0i -- unboxed literal
TR opt: invalid-unboxed-let2.rkt 5:42 2.0+4.0i -- unboxed literal
TR opt: invalid-unboxed-let2.rkt 5:52 (+ 3.0+6.0i 4.0+8.0i) -- unboxed binary float complex
TR opt: invalid-unboxed-let2.rkt 5:55 3.0+6.0i -- unboxed literal
TR opt: invalid-unboxed-let2.rkt 5:64 4.0+8.0i -- unboxed literal
TR opt: invalid-unboxed-let2.rkt 6:2 (+ t1 t2) -- unboxed binary float complex
TR opt: invalid-unboxed-let2.rkt 6:5 t1 -- unbox float-complex
TR opt: invalid-unboxed-let2.rkt 6:8 t2 -- unbox float-complex
END
#<<END
10.0+20.0i
END
#lang typed/scheme
#:optimize
#reader tests/typed-racket/optimizer/reset-port

View File

@ -1,11 +1,11 @@
#;#;
#<<END
TR opt: invalid-vector-ref.rkt 11:2 (vector-ref x 0) -- vector partial bounds checking elimination
TR opt: invalid-vector-ref.rkt 3:2 (vector-ref x 0) -- vector partial bounds checking elimination
END
""
#lang typed/scheme
#:optimize
#reader tests/typed-racket/optimizer/reset-port
(: f ((Vectorof Integer) -> Integer))
(define (f x)
(vector-ref x 0)) ; type is (Vectorof Integer), length is unknown, can't optimize

View File

@ -1,11 +1,11 @@
#;#;
#<<END
TR opt: invalid-vector-set.rkt 11:2 (vector-set! x 0 2) -- vector partial bounds checking elimination
TR opt: invalid-vector-set.rkt 3:2 (vector-set! x 0 2) -- vector partial bounds checking elimination
END
""
#lang typed/scheme
#:optimize
#reader tests/typed-racket/optimizer/reset-port
(: f ((Vectorof Integer) -> Void))
(define (f x)
(vector-set! x 0 2)) ; type is (Vectorof Integer), length is ot known, can't optimize

View File

@ -1,18 +1,18 @@
#;#;
#<<END
TR opt: known-length-lists.rkt 41:0 (length l) -- known-length list length
TR opt: known-length-lists.rkt 42:0 (list-ref l i) -- known-length list op
TR opt: known-length-lists.rkt 43:0 (list-ref l j) -- known-length list op
TR opt: known-length-lists.rkt 44:0 (list-ref l k) -- known-length list op
TR opt: known-length-lists.rkt 45:0 (list-tail l i) -- known-length list op
TR opt: known-length-lists.rkt 46:0 (list-tail l j) -- known-length list op
TR opt: known-length-lists.rkt 47:0 (list-tail l k) -- known-length list op
TR opt: known-length-lists.rkt 48:0 (list-ref l 0) -- known-length list op
TR opt: known-length-lists.rkt 49:0 (list-ref l 1) -- known-length list op
TR opt: known-length-lists.rkt 50:0 (list-ref l 2) -- known-length list op
TR opt: known-length-lists.rkt 51:0 (list-tail l 0) -- known-length list op
TR opt: known-length-lists.rkt 52:0 (list-tail l 1) -- known-length list op
TR opt: known-length-lists.rkt 53:0 (list-tail l 2) -- known-length list op
TR opt: known-length-lists.rkt 10:0 (list-ref l k) -- known-length list op
TR opt: known-length-lists.rkt 11:0 (list-tail l i) -- known-length list op
TR opt: known-length-lists.rkt 12:0 (list-tail l j) -- known-length list op
TR opt: known-length-lists.rkt 13:0 (list-tail l k) -- known-length list op
TR opt: known-length-lists.rkt 14:0 (list-ref l 0) -- known-length list op
TR opt: known-length-lists.rkt 15:0 (list-ref l 1) -- known-length list op
TR opt: known-length-lists.rkt 16:0 (list-ref l 2) -- known-length list op
TR opt: known-length-lists.rkt 17:0 (list-tail l 0) -- known-length list op
TR opt: known-length-lists.rkt 18:0 (list-tail l 1) -- known-length list op
TR opt: known-length-lists.rkt 19:0 (list-tail l 2) -- known-length list op
TR opt: known-length-lists.rkt 7:0 (length l) -- known-length list length
TR opt: known-length-lists.rkt 8:0 (list-ref l i) -- known-length list op
TR opt: known-length-lists.rkt 9:0 (list-ref l j) -- known-length list op
END
#<<END
3
@ -30,8 +30,8 @@ END
'(3)
END
#lang typed/racket
#reader tests/typed-racket/optimizer/reset-port
(define i 0)
(define j 1)

View File

@ -1,14 +1,14 @@
#;#;
#<<END
TR opt: known-vector-length.rkt 14:0 (+ 2 (vector-length (ann (vector 1 2) (Vector Integer Integer)))) -- fixnum bounded expr
TR opt: known-vector-length.rkt 14:5 (vector-length (ann (vector 1 2) (Vector Integer Integer))) -- known-length vector-length
TR opt: known-vector-length.rkt 2:0 (+ 2 (vector-length (ann (vector 1 2) (Vector Integer Integer)))) -- fixnum bounded expr
TR opt: known-vector-length.rkt 2:5 (vector-length (ann (vector 1 2) (Vector Integer Integer))) -- known-length vector-length
END
#<<END
4
END
#lang typed/scheme
#:optimize
#reader tests/typed-racket/optimizer/reset-port
(+ 2 (vector-length (ann (vector 1 2) (Vector Integer Integer))))

View File

@ -1,15 +1,15 @@
#;#;
#<<END
TR opt: let-float.rkt 14:9 (+ 3.0 2.0) -- binary float
TR opt: let-float.rkt 15:2 (* 9.0 x) -- binary float
TR opt: let-float.rkt 2:9 (+ 3.0 2.0) -- binary float
TR opt: let-float.rkt 3:2 (* 9.0 x) -- binary float
END
#<<END
45.0
END
#lang typed/scheme
#:optimize
#reader tests/typed-racket/optimizer/reset-port
(let ((x (+ 3.0 2.0)))
(* 9.0 x))

View File

@ -1,30 +1,30 @@
#;#;
#<<END
TR info: let-loop-effects.rkt 45:34 displayln -- hidden parameter
TR info: let-loop-effects.rkt 46:34 displayln -- hidden parameter
TR info: let-loop-effects.rkt 47:34 displayln -- hidden parameter
TR opt: let-loop-effects.rkt 40:0 (real-part (let: loop : Float-Complex ((x : Float-Complex 0.0+0.0i) (y : Integer 0) (z : Float-Complex 0.0+0.0i)) (if (zero? y) (+ 1.0+0.0i (loop (begin (displayln (quote x)) x) (begin (displayln (quote y)) (add1 y)) (begin (displayln (quote z)) z))) (+ x z)))) -- complex accessor elimination
TR opt: let-loop-effects.rkt 41:2 (let: loop : Float-Complex ((x : Float-Complex 0.0+0.0i) (y : Integer 0) (z : Float-Complex 0.0+0.0i)) (if (zero? y) (+ 1.0+0.0i (loop (begin (displayln (quote x)) x) (begin (displayln (quote y)) (add1 y)) (begin (displayln (quote z)) z))) (+ x z))) -- unbox float-complex
TR opt: let-loop-effects.rkt 41:2 (let: loop : Float-Complex ((x : Float-Complex 0.0+0.0i) (y : Integer 0) (z : Float-Complex 0.0+0.0i)) (if (zero? y) (+ 1.0+0.0i (loop (begin (displayln (quote x)) x) (begin (displayln (quote y)) (add1 y)) (begin (displayln (quote z)) z))) (+ x z))) -- unboxed call site
TR opt: let-loop-effects.rkt 41:31 x -- unboxed var -> table
TR opt: let-loop-effects.rkt 41:49 0.0+0.0i -- unboxed literal
TR opt: let-loop-effects.rkt 41:8 loop -- fun -> unboxed fun
TR opt: let-loop-effects.rkt 41:8 loop -- unboxed let loop
TR opt: let-loop-effects.rkt 43:31 z -- unboxed var -> table
TR opt: let-loop-effects.rkt 43:49 0.0+0.0i -- unboxed literal
TR opt: let-loop-effects.rkt 45:11 1.0+0.0i -- unboxed literal
TR opt: let-loop-effects.rkt 45:20 (loop (begin (displayln (quote x)) x) (begin (displayln (quote y)) (add1 y)) (begin (displayln (quote z)) z)) -- call to fun with unboxed args
TR opt: let-loop-effects.rkt 45:20 (loop (begin (displayln (quote x)) x) (begin (displayln (quote y)) (add1 y)) (begin (displayln (quote z)) z)) -- unbox float-complex
TR opt: let-loop-effects.rkt 45:20 (loop (begin (displayln (quote x)) x) (begin (displayln (quote y)) (add1 y)) (begin (displayln (quote z)) z)) -- unboxed call site
TR opt: let-loop-effects.rkt 45:26 (begin (displayln (quote x)) x) -- unbox float-complex
TR opt: let-loop-effects.rkt 45:48 x -- unboxed complex variable
TR opt: let-loop-effects.rkt 45:8 (+ 1.0+0.0i (loop (begin (displayln (quote x)) x) (begin (displayln (quote y)) (add1 y)) (begin (displayln (quote z)) z))) -- unboxed binary float complex
TR opt: let-loop-effects.rkt 46:48 (add1 y) -- fixnum add1
TR opt: let-loop-effects.rkt 47:26 (begin (displayln (quote z)) z) -- unbox float-complex
TR opt: let-loop-effects.rkt 47:48 z -- unboxed complex variable
TR opt: let-loop-effects.rkt 48:11 x -- leave var unboxed
TR opt: let-loop-effects.rkt 48:13 z -- leave var unboxed
TR opt: let-loop-effects.rkt 48:8 (+ x z) -- unboxed binary float complex
TR info: let-loop-effects.rkt 10:34 displayln -- hidden parameter
TR info: let-loop-effects.rkt 11:34 displayln -- hidden parameter
TR info: let-loop-effects.rkt 9:34 displayln -- hidden parameter
TR opt: let-loop-effects.rkt 10:48 (add1 y) -- fixnum add1
TR opt: let-loop-effects.rkt 11:26 (begin (displayln (quote z)) z) -- unbox float-complex
TR opt: let-loop-effects.rkt 11:48 z -- unboxed complex variable
TR opt: let-loop-effects.rkt 12:11 x -- leave var unboxed
TR opt: let-loop-effects.rkt 12:13 z -- leave var unboxed
TR opt: let-loop-effects.rkt 12:8 (+ x z) -- unboxed binary float complex
TR opt: let-loop-effects.rkt 4:0 (real-part (let: loop : Float-Complex ((x : Float-Complex 0.0+0.0i) (y : Integer 0) (z : Float-Complex 0.0+0.0i)) (if (zero? y) (+ 1.0+0.0i (loop (begin (displayln (quote x)) x) (begin (displayln (quote y)) (add1 y)) (begin (displayln (quote z)) z))) (+ x z)))) -- complex accessor elimination
TR opt: let-loop-effects.rkt 5:2 (let: loop : Float-Complex ((x : Float-Complex 0.0+0.0i) (y : Integer 0) (z : Float-Complex 0.0+0.0i)) (if (zero? y) (+ 1.0+0.0i (loop (begin (displayln (quote x)) x) (begin (displayln (quote y)) (add1 y)) (begin (displayln (quote z)) z))) (+ x z))) -- unbox float-complex
TR opt: let-loop-effects.rkt 5:2 (let: loop : Float-Complex ((x : Float-Complex 0.0+0.0i) (y : Integer 0) (z : Float-Complex 0.0+0.0i)) (if (zero? y) (+ 1.0+0.0i (loop (begin (displayln (quote x)) x) (begin (displayln (quote y)) (add1 y)) (begin (displayln (quote z)) z))) (+ x z))) -- unboxed call site
TR opt: let-loop-effects.rkt 5:31 x -- unboxed var -> table
TR opt: let-loop-effects.rkt 5:49 0.0+0.0i -- unboxed literal
TR opt: let-loop-effects.rkt 5:8 loop -- fun -> unboxed fun
TR opt: let-loop-effects.rkt 5:8 loop -- unboxed let loop
TR opt: let-loop-effects.rkt 7:31 z -- unboxed var -> table
TR opt: let-loop-effects.rkt 7:49 0.0+0.0i -- unboxed literal
TR opt: let-loop-effects.rkt 9:11 1.0+0.0i -- unboxed literal
TR opt: let-loop-effects.rkt 9:20 (loop (begin (displayln (quote x)) x) (begin (displayln (quote y)) (add1 y)) (begin (displayln (quote z)) z)) -- call to fun with unboxed args
TR opt: let-loop-effects.rkt 9:20 (loop (begin (displayln (quote x)) x) (begin (displayln (quote y)) (add1 y)) (begin (displayln (quote z)) z)) -- unbox float-complex
TR opt: let-loop-effects.rkt 9:20 (loop (begin (displayln (quote x)) x) (begin (displayln (quote y)) (add1 y)) (begin (displayln (quote z)) z)) -- unboxed call site
TR opt: let-loop-effects.rkt 9:26 (begin (displayln (quote x)) x) -- unbox float-complex
TR opt: let-loop-effects.rkt 9:48 x -- unboxed complex variable
TR opt: let-loop-effects.rkt 9:8 (+ 1.0+0.0i (loop (begin (displayln (quote x)) x) (begin (displayln (quote y)) (add1 y)) (begin (displayln (quote z)) z))) -- unboxed binary float complex
END
#<<END
x
@ -34,6 +34,7 @@ z
END
#lang typed/racket
#reader tests/typed-racket/optimizer/reset-port
;; Ensure that loop unboxing doesn't change order of effects

View File

@ -1,14 +1,14 @@
#;#;
#<<END
TR opt: let-rhs.rkt 15:9 (+ 1.0 2.0) -- binary float
TR opt: let-rhs.rkt 4:9 (+ 1.0 2.0) -- binary float
END
#<<END
3.0
END
#lang typed/scheme
#:optimize
#reader tests/typed-racket/optimizer/reset-port

Some files were not shown because too many files have changed in this diff Show More