diff --git a/collects/tests/typed-scheme/optimizer/tests/bounds-check.rkt b/collects/tests/typed-scheme/optimizer/tests/bounds-check.rkt index 298cb77ba3..94a7697749 100644 --- a/collects/tests/typed-scheme/optimizer/tests/bounds-check.rkt +++ b/collects/tests/typed-scheme/optimizer/tests/bounds-check.rkt @@ -1,13 +1,13 @@ #; ( -TR opt: bounds-check.rkt 25:2 (vector-ref v i) -- vector access splitting -TR opt: bounds-check.rkt 28:2 (vector-set! v i n) -- vector access splitting -TR opt: bounds-check.rkt 31:2 (vector-ref v i) -- vector access splitting -TR opt: bounds-check.rkt 34:2 (vector-set! v i n) -- vector access splitting -TR opt: bounds-check.rkt 46:2 (flvector-ref v i) -- flvector access splitting -TR opt: bounds-check.rkt 49:2 (flvector-set! v i n) -- flvector access splitting -TR opt: bounds-check.rkt 52:2 (flvector-ref v i) -- flvector access splitting -TR opt: bounds-check.rkt 55:2 (flvector-set! v i n) -- flvector access splitting +TR opt: bounds-check.rkt 25:2 (vector-ref v i) -- vector partial bounds checking elimination +TR opt: bounds-check.rkt 28:2 (vector-set! v i n) -- vector partial bounds checking elimination +TR opt: bounds-check.rkt 31:2 (vector-ref v i) -- vector partial bounds checking elimination +TR opt: bounds-check.rkt 34:2 (vector-set! v i n) -- vector partial bounds checking elimination +TR opt: bounds-check.rkt 46:2 (flvector-ref v i) -- flvector partial bounds checking elimination +TR opt: bounds-check.rkt 49:2 (flvector-set! v i n) -- flvector partial bounds checking elimination +TR opt: bounds-check.rkt 52:2 (flvector-ref v i) -- flvector partial bounds checking elimination +TR opt: bounds-check.rkt 55:2 (flvector-set! v i n) -- flvector partial bounds checking elimination 3 4 5 diff --git a/collects/tests/typed-scheme/optimizer/tests/invalid-vector-ref.rkt b/collects/tests/typed-scheme/optimizer/tests/invalid-vector-ref.rkt index b6fadfbb74..368664ea98 100644 --- a/collects/tests/typed-scheme/optimizer/tests/invalid-vector-ref.rkt +++ b/collects/tests/typed-scheme/optimizer/tests/invalid-vector-ref.rkt @@ -1,6 +1,6 @@ #; ( -TR opt: invalid-vector-ref.rkt 10:2 (vector-ref x 0) -- vector access splitting +TR opt: invalid-vector-ref.rkt 10:2 (vector-ref x 0) -- vector partial bounds checking elimination ) #lang typed/scheme diff --git a/collects/tests/typed-scheme/optimizer/tests/invalid-vector-set.rkt b/collects/tests/typed-scheme/optimizer/tests/invalid-vector-set.rkt index 71c127753b..7f3cfede03 100644 --- a/collects/tests/typed-scheme/optimizer/tests/invalid-vector-set.rkt +++ b/collects/tests/typed-scheme/optimizer/tests/invalid-vector-set.rkt @@ -1,6 +1,6 @@ #; ( -TR opt: invalid-vector-set.rkt 10:2 (vector-set! x 0 2) -- vector access splitting +TR opt: invalid-vector-set.rkt 10:2 (vector-set! x 0 2) -- vector partial bounds checking elimination ) #lang typed/scheme diff --git a/collects/tests/typed-scheme/optimizer/tests/vector-sum.rkt b/collects/tests/typed-scheme/optimizer/tests/vector-sum.rkt index 6475adcceb..0738cd619e 100644 --- a/collects/tests/typed-scheme/optimizer/tests/vector-sum.rkt +++ b/collects/tests/typed-scheme/optimizer/tests/vector-sum.rkt @@ -1,29 +1,29 @@ #; ( -TR opt: vector-sum.rkt 29:0 #%module-begin -- dead else branch -TR opt: vector-sum.rkt 29:0 #%module-begin -- dead else branch -TR opt: vector-sum.rkt 29:0 #%module-begin -- dead else branch -TR opt: vector-sum.rkt 29:0 #%module-begin -- dead else branch -TR opt: vector-sum.rkt 29:0 #%module-begin -- dead else branch -TR opt: vector-sum.rkt 29:0 #%module-begin -- dead else branch -TR opt: vector-sum.rkt 29:0 #%module-begin -- dead else branch -TR opt: vector-sum.rkt 29:0 #%module-begin -- dead else branch -TR opt: vector-sum.rkt 29:0 #%module-begin -- dead else branch -TR opt: vector-sum.rkt 29:0 #%module-begin -- dead else branch -TR opt: vector-sum.rkt 29:0 #%module-begin -- dead else branch -TR opt: vector-sum.rkt 39:2 (for: ((i : Nonnegative-Fixnum (in-range l))) (vector-set! v i (sin (exact->inexact i)))) -- binary fixnum -TR opt: vector-sum.rkt 39:2 (for: ((i : Nonnegative-Fixnum (in-range l))) (vector-set! v i (sin (exact->inexact i)))) -- dead else branch -TR opt: vector-sum.rkt 39:2 (for: ((i : Nonnegative-Fixnum (in-range l))) (vector-set! v i (sin (exact->inexact i)))) -- dead else branch -TR opt: vector-sum.rkt 39:2 (for: ((i : Nonnegative-Fixnum (in-range l))) (vector-set! v i (sin (exact->inexact i)))) -- fixnum bounded expr -TR opt: vector-sum.rkt 41:2 (for/fold: ((sum : Float 0.0)) ((i : Nonnegative-Fixnum (in-range l))) (+ sum (vector-ref v i))) -- binary fixnum TR opt: vector-sum.rkt 41:2 (for/fold: ((sum : Float 0.0)) ((i : Nonnegative-Fixnum (in-range l))) (+ sum (vector-ref v i))) -- fixnum bounded expr -TR opt: vector-sum.rkt 40:4 (vector-set! v i (sin (exact->inexact i))) -- vector access splitting -TR opt: vector-sum.rkt 40:22 sin -- unary float -TR opt: vector-sum.rkt 40:27 exact->inexact -- fixnum to float +TR opt: vector-sum.rkt 41:2 (for/fold: ((sum : Float 0.0)) ((i : Nonnegative-Fixnum (in-range l))) (+ sum (vector-ref v i))) -- binary fixnum +TR opt: vector-sum.rkt 39:2 (for: ((i : Nonnegative-Fixnum (in-range l))) (vector-set! v i (sin (exact->inexact i)))) -- fixnum bounded expr +TR opt: vector-sum.rkt 39:2 (for: ((i : Nonnegative-Fixnum (in-range l))) (vector-set! v i (sin (exact->inexact i)))) -- binary fixnum +TR opt: vector-sum.rkt 29:0 #%module-begin -- dead else branch +TR opt: vector-sum.rkt 29:0 #%module-begin -- dead else branch +TR opt: vector-sum.rkt 29:0 #%module-begin -- dead else branch +TR opt: vector-sum.rkt 29:0 #%module-begin -- dead else branch +TR opt: vector-sum.rkt 39:2 (for: ((i : Nonnegative-Fixnum (in-range l))) (vector-set! v i (sin (exact->inexact i)))) -- dead else branch +TR opt: vector-sum.rkt 39:2 (for: ((i : Nonnegative-Fixnum (in-range l))) (vector-set! v i (sin (exact->inexact i)))) -- dead else branch +TR opt: vector-sum.rkt 29:0 #%module-begin -- dead else branch +TR opt: vector-sum.rkt 29:0 #%module-begin -- dead else branch +TR opt: vector-sum.rkt 29:0 #%module-begin -- dead else branch +TR opt: vector-sum.rkt 29:0 #%module-begin -- dead else branch +TR opt: vector-sum.rkt 29:0 #%module-begin -- dead else branch +TR opt: vector-sum.rkt 29:0 #%module-begin -- dead else branch +TR opt: vector-sum.rkt 29:0 #%module-begin -- dead else branch +TR opt: vector-sum.rkt 40:4 (vector-set! v i (sin (exact->inexact i))) -- vector partial bounds checking elimination +TR opt: vector-sum.rkt 40:21 (sin (exact->inexact i)) -- unary float +TR opt: vector-sum.rkt 40:26 (exact->inexact i) -- fixnum to float TR opt: vector-sum.rkt 41:15 sum -- dead else branch TR opt: vector-sum.rkt 41:15 sum -- dead else branch -TR opt: vector-sum.rkt 43:5 + -- binary float -TR opt: vector-sum.rkt 43:11 (vector-ref v i) -- vector access splitting +TR opt: vector-sum.rkt 43:4 (+ sum (vector-ref v i)) -- binary float +TR opt: vector-sum.rkt 43:11 (vector-ref v i) -- vector partial bounds checking elimination ) #lang typed/racket diff --git a/collects/typed-scheme/optimizer/vector.rkt b/collects/typed-scheme/optimizer/vector.rkt index 52e62600b0..329df5a30e 100644 --- a/collects/typed-scheme/optimizer/vector.rkt +++ b/collects/typed-scheme/optimizer/vector.rkt @@ -74,7 +74,9 @@ ;; we can do the bounds checking separately, to eliminate some of the checks (pattern (#%plain-app op:vector-op v:expr i:fixnum-expr new:expr ...) #:with opt - (begin (log-optimization "vector access splitting" this-syntax) + (begin (log-optimization "vector partial bounds checking elimination" + "Partial bounds checking elimination." + this-syntax) (let ([safe-fallback #`(op new-v new-i #,@(syntax-map (optimize) #'(new ...)))] [i-known-nonneg? (subtypeof? #'i -NonNegFixnum)]) #`(let ([new-i #,((optimize) #'i)] @@ -100,7 +102,9 @@ ;; similarly for flvectors (pattern (#%plain-app op:flvector-op v:expr i:fixnum-expr new:expr ...) #:with opt - (begin (log-optimization "flvector access splitting" this-syntax) + (begin (log-optimization "flvector partial bounds checking elimination" + "Partial bounds checking elimination." + this-syntax) (let ([safe-fallback #`(op new-v new-i #,@(syntax-map (optimize) #'(new ...)))] [i-known-nonneg? (subtypeof? #'i -NonNegFixnum)]) #`(let ([new-i #,((optimize) #'i)]