1.0.28.20: further array typechecking optimization
authorNikodemus Siivola <nikodemus@random-state.net>
Wed, 6 May 2009 18:35:41 +0000 (18:35 +0000)
committerNikodemus Siivola <nikodemus@random-state.net>
Wed, 6 May 2009 18:35:41 +0000 (18:35 +0000)
 * Eliminate extra lowtag checking from the array element type check:
   since we know we are dealing with an array, we can use the same
   fast widetag extraction code that array type dispatching used --
   factoring it out into %OTHER-POINTER-WIDETAG.

 * If we know after checking the dimensions that the array must have
   a header, and we know that the array is simple, we can deduce that
   there is exactly one level of indirection.

 * Similarly, if we know that the array has a header, we can
   immediately pull out the data vector to check if it too has a
   header instead of doing an extra test.

NEWS
version.lisp-expr

diff --git a/NEWS b/NEWS
index b2e3e45..3aa0e0e 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,5 @@
 ;;;; -*- coding: utf-8; fill-column: 78 -*-
-  * optimization: compiler now generates faster typechecking code for
-    array dimensions.
+  * optimization: compiler now generates faster array typechecking code.
   * optimization: ARRAY-DIMENSION is now faster for multidimensional and
     non-simple arrays.
   * optimization: multidimensional array accesses in the absence of type
index a7d709f..c3d8b07 100644 (file)
@@ -17,4 +17,4 @@
 ;;; checkins which aren't released. (And occasionally for internal
 ;;; versions, especially for internal versions off the main CVS
 ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"1.0.28.19"
+"1.0.28.20"