X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Fcompiler.pure.lisp;h=45c22e86f0b2ca76cc13c6f55fc7caff0a1a9ca5;hb=c3699db2053ff3b5ac6a98d4431c3789496002d8;hp=ac15d8c8ed2dc4523b2d15cffde23f9c4bddee7b;hpb=aaba5d13361dd23a9afbadf6c68d8a404449362d;p=sbcl.git diff --git a/tests/compiler.pure.lisp b/tests/compiler.pure.lisp index ac15d8c..45c22e8 100644 --- a/tests/compiler.pure.lisp +++ b/tests/compiler.pure.lisp @@ -806,3 +806,163 @@ (common-lisp:handler-case (ash a (min 36 22477))))))))) 100000 0 0))) + +;;; MISC.152, 153: deleted code and iteration var type inference +(assert (eql (funcall + (compile nil + '(lambda (a) + (block b5 + (let ((v1 (let ((v8 (unwind-protect 9365))) + 8862008))) + (* + (return-from b5 + (labels ((%f11 (f11-1) f11-1)) + (%f11 87246015))) + (return-from b5 + (setq v1 + (labels ((%f6 (f6-1 f6-2 f6-3) v1)) + (dpb (unwind-protect a) + (byte 18 13) + (labels ((%f4 () 27322826)) + (%f6 -2 -108626545 (%f4)))))))))))) + -6) + 87246015)) + +(assert (eql (funcall + (compile nil + '(lambda (a) + (if (logbitp 3 + (case -2 + ((-96879 -1035 -57680 -106404 -94516 -125088) + (unwind-protect 90309179)) + ((-20811 -86901 -9368 -98520 -71594) + (let ((v9 (unwind-protect 136707))) + (block b3 + (setq v9 + (let ((v4 (return-from b3 v9))) + (- (ignore-errors (return-from b3 v4)))))))) + (t -50))) + -20343 + a))) + 0) + -20343)) + +;;; MISC.165 +(assert (eql (funcall + (compile + nil + '(lambda (a b c) + (block b3 + (flet ((%f15 + (f15-1 f15-2 f15-3 + &optional + (f15-4 + (flet ((%f17 + (f17-1 f17-2 f17-3 + &optional (f17-4 185155520) (f17-5 c) + (f17-6 37)) + c)) + (%f17 -1046 a 1115306 (%f17 b -146330 422) -337817))) + (f15-5 a) (f15-6 -40)) + (return-from b3 -16))) + (multiple-value-call #'%f15 (values -519354 a 121 c -1905)))))) + 0 0 -5) + -16)) + +;;; MISC.172 +(assert (eql (funcall + (compile + nil + '(lambda (a b c) + (declare (notinline list apply)) + (declare (optimize (safety 3))) + (declare (optimize (speed 0))) + (declare (optimize (debug 0))) + (labels ((%f12 (f12-1 f12-2) + (labels ((%f2 (f2-1 f2-2) + (flet ((%f6 () + (flet ((%f18 + (f18-1 + &optional (f18-2 a) + (f18-3 -207465075) + (f18-4 a)) + (return-from %f12 b))) + (%f18 -3489553 + -7 + (%f18 (%f18 150 -64 f12-1) + (%f18 (%f18 -8531) + 11410) + b) + 56362666)))) + (labels ((%f7 + (f7-1 f7-2 + &optional (f7-3 (%f6))) + 7767415)) + f12-1)))) + (%f2 b -36582571)))) + (apply #'%f12 (list 774 -4413))))) + 0 1 2) + 774)) + +;;; MISC.173 +(assert (eql (funcall + (compile + nil + '(lambda (a b c) + (declare (notinline values)) + (declare (optimize (safety 3))) + (declare (optimize (speed 0))) + (declare (optimize (debug 0))) + (flet ((%f11 + (f11-1 f11-2 + &optional (f11-3 c) (f11-4 7947114) + (f11-5 + (flet ((%f3 (f3-1 &optional (f3-2 b) (f3-3 5529)) + 8134)) + (multiple-value-call #'%f3 + (values (%f3 -30637724 b) c))))) + (setq c 555910))) + (if (and nil (%f11 a a)) + (if (%f11 a 421778 4030 1) + (labels ((%f7 + (f7-1 f7-2 + &optional + (f7-3 + (%f11 -79192293 + (%f11 c a c -4 214720) + b + b + (%f11 b 985))) + (f7-4 a)) + b)) + (%f11 c b -25644)) + 54) + -32326608)))) + 1 2 3) + -32326608)) + +;;; MISC.177, 182: IR2 copy propagation missed a hidden write to a +;;; local lambda argument +(assert + (equal + (funcall + (compile nil + '(lambda (a b c) + (declare (type (integer 804561 7640697) a)) + (declare (type (integer -1 10441401) b)) + (declare (type (integer -864634669 55189745) c)) + (declare (ignorable a b c)) + (declare (optimize (speed 3))) + (declare (optimize (safety 1))) + (declare (optimize (debug 1))) + (flet ((%f11 + (f11-1 f11-2) + (labels ((%f4 () (round 200048 (max 99 c)))) + (logand + f11-1 + (labels ((%f3 (f3-1) -162967612)) + (%f3 (let* ((v8 (%f4))) + (setq f11-1 (%f4))))))))) + (%f11 -120429363 (%f11 62362 b))))) + 6714367 9645616 -637681868) + -264223548))