From 3266b5df27fb88e04b16fed47e65f1f394ff7674 Mon Sep 17 00:00:00 2001 From: Nikodemus Siivola Date: Wed, 6 May 2009 18:35:41 +0000 Subject: [PATCH] 1.0.28.20: further array typechecking optimization * 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 | 3 +-- version.lisp-expr | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/NEWS b/NEWS index b2e3e45..3aa0e0e 100644 --- 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 diff --git a/version.lisp-expr b/version.lisp-expr index a7d709f..c3d8b07 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -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" -- 1.7.10.4