1.0.30.51: fix for COERCE compilation regression
authorChristophe Rhodes <csr21@cantab.net>
Sun, 23 Aug 2009 21:36:13 +0000 (21:36 +0000)
committerChristophe Rhodes <csr21@cantab.net>
Sun, 23 Aug 2009 21:36:13 +0000 (21:36 +0000)
commitd5b2c7d4ea394fe94bab07e4a1a9d6f4320b822a
treeea7a5ef4268981afb172ac1dcd31a3dbc273fc6e
parentf9a710cfb7c94a8007a8c3d99533bc0534e16982
1.0.30.51: fix for COERCE compilation regression

Code of the form
  (defun foo (x)
    (declare (type simple-vector x))
    (coerce x '(vector (unsigned-byte 8))))
should not cause a full WARNING, but with the new COERCE transforms,
expanded into one of those IFs where one branch is dead, but the
compiler couldn't prove it.

Define a whole heap of new backend type predicates for all specialized
vectors, generalizing VECTOR-T-P.  (Some specialized vectors are
implemented using widetags, and so are excluded from these new
definitions).
package-data-list.lisp-expr
src/code/pred.lisp
src/compiler/generic/vm-array.lisp
src/compiler/generic/vm-fndb.lisp
src/compiler/generic/vm-typetran.lisp
tests/compiler.pure.lisp
version.lisp-expr