From e1c1f270a570a79dfb5916791649b3b5c907ebe2 Mon Sep 17 00:00:00 2001 From: Vincent St-Amour Date: Tue, 8 Oct 2013 15:54:50 -0400 Subject: [PATCH] TR for clause specialization: log syntax objects with location info. original commit: cef7348e8de66d89baa612ad201054bc1656b197 --- .../typed-racket/optimizer/sequence.rkt | 14 +++++++------- .../typed-racket/optimizer/tests/dead-inf-comp.rkt | 2 +- .../typed-racket/optimizer/tests/in-bytes.rkt | 2 +- .../tests/typed-racket/optimizer/tests/in-list.rkt | 2 +- .../typed-racket/optimizer/tests/in-range.rkt | 2 +- .../typed-racket/optimizer/tests/in-string.rkt | 2 +- .../typed-racket/optimizer/tests/in-vector.rkt | 2 +- .../typed-racket/optimizer/tests/unboxed-for.rkt | 2 +- 8 files changed, 14 insertions(+), 14 deletions(-) diff --git a/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/optimizer/sequence.rkt b/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/optimizer/sequence.rkt index 1db0cbb4..f578a062 100644 --- a/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/optimizer/sequence.rkt +++ b/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/optimizer/sequence.rkt @@ -26,8 +26,8 @@ (define-syntax-class/specialize vector-expr (typed-expr (disjoin Vector? HeterogeneousVector?))) -(define-syntax-rule (log-seq-opt opt-label) - (log-opt opt-label "Sequence type specialization.")) +(define-syntax-rule (log-seq-opt opt-label stx) + (log-optimization opt-label "Sequence type specialization." stx)) (define-syntax-class make-sequence (pattern op:id @@ -39,7 +39,7 @@ ;; if we're iterating (with the for macros) over something we know is a list, ;; we can generate code that would be similar to if in-list had been used (pattern (#%plain-app op:make-sequence _ l:list-expr) - #:do [(log-seq-opt "in-list")] + #:do [(log-seq-opt "in-list" #'l)] #:with opt #'(let ((i l.opt)) (values unsafe-car unsafe-cdr i (lambda (x) (not (null? x))) @@ -47,7 +47,7 @@ (lambda (x y) #t)))) ;; idem for vectors (pattern (#%plain-app op:make-sequence _ v:vector-expr) - #:do [(log-seq-opt "in-vector")] + #:do [(log-seq-opt "in-vector" #'v)] #:with opt #'(let* ((i v.opt) (len (unsafe-vector-length i))) (values (lambda (x) (unsafe-vector-ref i x)) @@ -58,7 +58,7 @@ (lambda (x y) #t)))) ;; and (byte) strings (pattern (#%plain-app op:make-sequence _ s:string-expr) - #:do [(log-seq-opt "in-string")] + #:do [(log-seq-opt "in-string" #'s)] #:with opt #'(let* ((i s.opt) (len (string-length i))) (values (lambda (x) (string-ref i x)) @@ -68,7 +68,7 @@ (lambda (x) #t) (lambda (x y) #t)))) (pattern (#%plain-app op:make-sequence _ s:bytes-expr) - #:do [(log-seq-opt "in-bytes")] + #:do [(log-seq-opt "in-bytes" #'s)] #:with opt #'(let* ((i s.opt) (len (bytes-length i))) (values (lambda (x) (bytes-ref i x)) @@ -78,7 +78,7 @@ (lambda (x) #t) (lambda (x y) #t)))) (pattern (#%plain-app op:make-sequence _ s:int-expr) ; one-arg in-range - #:do [(log-seq-opt "in-range")] + #:do [(log-seq-opt "in-range" #'s)] #:with opt #'(let* ((end s.opt)) (values (lambda (x) x) (lambda (x) (unsafe-fx+ 1 x)) diff --git a/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/optimizer/tests/dead-inf-comp.rkt b/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/optimizer/tests/dead-inf-comp.rkt index 83db3dea..a83c335c 100644 --- a/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/optimizer/tests/dead-inf-comp.rkt +++ b/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/optimizer/tests/dead-inf-comp.rkt @@ -21,7 +21,6 @@ TR info: dead-inf-comp.rkt 212:41 displayln -- hidden parameter TR opt: dead-inf-comp.rkt 102:0 #%module-begin -- dead else branch TR opt: dead-inf-comp.rkt 102:0 #%module-begin -- dead else branch TR opt: dead-inf-comp.rkt 102:0 #%module-begin -- dead else branch -TR opt: dead-inf-comp.rkt 102:0 #%module-begin -- in-range TR opt: dead-inf-comp.rkt 108:4 (quote dead) -- dead else branch TR opt: dead-inf-comp.rkt 110:4 (quote dead) -- dead then branch TR opt: dead-inf-comp.rkt 113:4 (quote dead) -- dead then branch @@ -60,6 +59,7 @@ TR opt: dead-inf-comp.rkt 212:0 (for: ((i (in-range 5 +inf.0 2)) (j 3)) (display TR opt: dead-inf-comp.rkt 212:0 (for: ((i (in-range 5 +inf.0 2)) (j 3)) (displayln i)) -- dead else branch TR opt: dead-inf-comp.rkt 212:0 (for: ((i (in-range 5 +inf.0 2)) (j 3)) (displayln i)) -- dead else branch TR opt: dead-inf-comp.rkt 212:0 (for: ((i (in-range 5 +inf.0 2)) (j 3)) (displayln i)) -- dead else branch +TR opt: dead-inf-comp.rkt 212:36 3 -- in-range END #<