improved JIT inlining of 'list'

svn: r12428

original commit: bac4053c37
This commit is contained in:
Matthew Flatt 2008-11-13 16:42:15 +00:00
parent 5730650642
commit c3ee691e9d

View File

@ -300,14 +300,17 @@
exact-positive-integer? exact-positive-integer?
car cdr caar cadr cdar cddr car cdr caar cadr cdar cddr
mcar mcdr unbox vector-length syntax-e mcar mcdr unbox vector-length syntax-e
add1 sub1 - abs bitwise-not))] add1 sub1 - abs bitwise-not
list vector box))]
[(3) (memq (car a) '(eq? = <= < >= > [(3) (memq (car a) '(eq? = <= < >= >
bitwise-bit-set? char=? bitwise-bit-set? char=?
+ - * / min max bitwise-and bitwise-ior + - * / min max bitwise-and bitwise-ior
arithmetic-shift vector-ref string-ref bytes-ref arithmetic-shift vector-ref string-ref bytes-ref
set-mcar! set-mcdr! cons mcons))] set-mcar! set-mcdr! cons mcons
[(4) (memq (car a) '(vector-set! string-set! bytes-set!))] list vector))]
[else #f])) [(4) (memq (car a) '(vector-set! string-set! bytes-set!
list vector))]
[else (memq (car a) '(list vector))]))
(cons '#%in a) (cons '#%in a)
a)) a))