From: Juho S. <js...@us...> - 2007-01-18 00:32:08
|
Update of /cvsroot/sbcl/sbcl/tests In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv24275/tests Modified Files: compiler.pure.lisp debug.impure.lisp Log Message: 1.0.1.31: Speed up fopcompilation of functions * Get rid of the extra wrapper lambda around fopcompiled functions * This requires making sure that functions with xeps are never let- or assignment-converted. * Fix some whitespace damage, and a few tests that were making invalid assumptions * Compilation speedup seems to be about 5% for most cases, up to 20% on high debug levels. Index: compiler.pure.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/tests/compiler.pure.lisp,v retrieving revision 1.156 retrieving revision 1.157 diff -u -d -r1.156 -r1.157 --- compiler.pure.lisp 28 Oct 2006 09:57:01 -0000 1.156 +++ compiler.pure.lisp 18 Jan 2007 00:32:05 -0000 1.157 @@ -1375,8 +1375,12 @@ (handler-case (compile nil '(lambda (x) (declare (optimize (speed 3) (safety 0))) (the double-float (sqrt (the double-float x))))) - (sb-ext:compiler-note () - (error "Compiler does not trust result type assertion."))) + (sb-ext:compiler-note (c) + ;; Ignore the note for the float -> pointer conversion of the + ;; return value. + (unless (string= (car (last (sb-c::simple-condition-format-arguments c))) + "<return value>") + (error "Compiler does not trust result type assertion.")))) (let ((f (compile nil '(lambda (x) (declare (optimize speed (safety 0))) @@ -1901,14 +1905,15 @@ (compile nil '(lambda (x) (declare (optimize (speed 3))) (1+ x)))) - ;; forced-to-do GENERIC-+, etc - (assert (> count0 0)) + ;; forced-to-do GENERIC-+, etc, possible word -> bignum conversion note + (assert (> count0 1)) (handler-bind ((sb-ext:compiler-note (lambda (c) (incf count1)))) (compile nil '(lambda (x) (declare (optimize (speed 3))) (check-type x fixnum) (1+ x)))) - (assert (= count1 0))) + ;; Only the posssible word -> bignum conversion note + (assert (= count1 1))) ;;; Up to 0.9.8.22 x86-64 had broken return value handling in the ;;; %SET-SAP-REF-DOUBLE/SINGLE VOPs. Index: debug.impure.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/tests/debug.impure.lisp,v retrieving revision 1.33 retrieving revision 1.34 diff -u -d -r1.33 -r1.34 --- debug.impure.lisp 30 Nov 2006 16:20:42 -0000 1.33 +++ debug.impure.lisp 18 Jan 2007 00:32:05 -0000 1.34 @@ -123,9 +123,7 @@ ;; extra foreign frames below regular frames. (let ((end (last backtrace #-win32 2 #+win32 4))) (unless (equal (caar end) - (if *show-entry-point-details* - '(sb-c::tl-xep sb-impl::toplevel-init) - 'sb-impl::toplevel-init)) + 'sb-impl::toplevel-init) (print (list :backtrace-stunted (caar end))) (setf result nil))) (return-from outer-handler))))) |