Tweak CANONICALIZE-WIDETAGS (formerly -HEADERS)
commit5fc41bda7f04282eb0808767cadd771a3532ef91
authorDouglas Katzman <dougk@google.com>
Tue, 19 Jul 2016 16:18:40 +0000 (19 12:18 -0400)
committerDouglas Katzman <dougk@google.com>
Wed, 20 Jul 2016 13:45:38 +0000 (20 09:45 -0400)
tree3847190d104f682d7c799fe9d35aa424e3f205bb
parenta833d4df8373d42ea359ba0e667cb56ed66b55fc
Tweak CANONICALIZE-WIDETAGS (formerly -HEADERS)

Recognize range plus a singleton as possibly a range minus one widetag,
as in the slightly contrived example:
(typep x '(or (simple-array (unsigned-byte 32) (*))
              (simple-array (unsigned-byte 62) (*))
              (simple-array (unsigned-byte 64) (*)))
which reduces to:
  simple-array-unsigned-byte-32-widetag through
  simple-array-unsigned-byte-64-widetag inclusive,
  EXCEPT simple-array-unsigned-byte-63-widetag
src/compiler/generic/early-type-vops.lisp
src/compiler/ppc/type-vops.lisp
src/compiler/x86-64/type-vops.lisp
src/compiler/x86/type-vops.lisp