Fix new optimization to use the new loggin facilities.

original commit: c5d46449b774eedf02877d1bbe8a6fb3f1b173cb
This commit is contained in:
Vincent St-Amour 2011-07-11 16:54:09 -04:00
parent 6e218da463
commit 6b5104aba7
3 changed files with 22 additions and 17 deletions

View File

@ -1,18 +1,18 @@
#;
(
TR opt: known-length-lists.rkt 39:1 length -- known-length list length
TR opt: known-length-lists.rkt 40:1 list-ref -- known-length list op
TR opt: known-length-lists.rkt 41:1 list-ref -- known-length list op
TR opt: known-length-lists.rkt 42:1 list-ref -- known-length list op
TR opt: known-length-lists.rkt 43:1 list-tail -- known-length list op
TR opt: known-length-lists.rkt 44:1 list-tail -- known-length list op
TR opt: known-length-lists.rkt 45:1 list-tail -- known-length list op
TR opt: known-length-lists.rkt 46:1 list-ref -- known-length list op
TR opt: known-length-lists.rkt 47:1 list-ref -- known-length list op
TR opt: known-length-lists.rkt 48:1 list-ref -- known-length list op
TR opt: known-length-lists.rkt 49:1 list-tail -- known-length list op
TR opt: known-length-lists.rkt 50:1 list-tail -- known-length list op
TR opt: known-length-lists.rkt 51:1 list-tail -- known-length list op
TR opt: known-length-lists.rkt 39:0 (length l) -- known-length list length
TR opt: known-length-lists.rkt 40:0 (list-ref l i) -- known-length list op
TR opt: known-length-lists.rkt 41:0 (list-ref l j) -- known-length list op
TR opt: known-length-lists.rkt 42:0 (list-ref l k) -- known-length list op
TR opt: known-length-lists.rkt 43:0 (list-tail l i) -- known-length list op
TR opt: known-length-lists.rkt 44:0 (list-tail l j) -- known-length list op
TR opt: known-length-lists.rkt 45:0 (list-tail l k) -- known-length list op
TR opt: known-length-lists.rkt 46:0 (list-ref l 0) -- known-length list op
TR opt: known-length-lists.rkt 47:0 (list-ref l 1) -- known-length list op
TR opt: known-length-lists.rkt 48:0 (list-ref l 2) -- known-length list op
TR opt: known-length-lists.rkt 49:0 (list-tail l 0) -- known-length list op
TR opt: known-length-lists.rkt 50:0 (list-tail l 1) -- known-length list op
TR opt: known-length-lists.rkt 51:0 (list-tail l 2) -- known-length list op
'(1 2 3)
3
1

View File

@ -1,7 +1,8 @@
#;
(
TR opt: unary-fixnum-nested.rkt 11:0 (bitwise-not (bitwise-not (length (quote (1 2 3))))) -- unary fixnum
TR opt: unary-fixnum-nested.rkt 11:13 (bitwise-not (length (quote (1 2 3)))) -- unary fixnum
TR opt: unary-fixnum-nested.rkt 12:0 (bitwise-not (bitwise-not (length (quote (1 2 3))))) -- unary fixnum
TR opt: unary-fixnum-nested.rkt 12:13 (bitwise-not (length (quote (1 2 3)))) -- unary fixnum
TR opt: unary-fixnum-nested.rkt 12:26 (length (quote (1 2 3))) -- known-length list length
3
)

View File

@ -41,12 +41,16 @@
[_ -1])))) ; sure to fail the next check
(<= 0 ival (sub1 len)))
#:with opt
(begin (log-optimization "known-length list op" #'op)
(begin (log-optimization "known-length list op"
"List access specialization."
this-syntax)
#`(op.unsafe l.opt #,((optimize) #'i))))
;; We know the length of known-length lists statically.
(pattern (#%plain-app (~and op (~literal length)) l:known-length-list-expr)
#:with opt
(begin (log-optimization "known-length list length" #'op)
(begin (log-optimization "known-length list length"
"Static list length computation."
this-syntax)
(match (type-of #'l)
[(tc-result1: (List: es))
#`(begin l.opt #,(length es))]))))