stack-allocatable fill-initialized specialized arrays
authorNikodemus Siivola <nikodemus@random-state.net>
Sat, 10 Dec 2011 00:25:51 +0000 (02:25 +0200)
committerNikodemus Siivola <nikodemus@random-state.net>
Sat, 10 Dec 2011 14:26:32 +0000 (16:26 +0200)
commit40bff32181a4d9b591ae2bac69bbee3bd77a82bc
tree3392e34b5d649a34d6e9903f7080788a4251cea3
parent2c84ef5c1d09f73857d64880fe8b889fc395c0d5
stack-allocatable fill-initialized specialized arrays

 I *think* we had this working earlier already, but it's been broken at least
 for a while now since there were no tests for it.

 Add a DEFKNOWN to the array byte bashers, providing the RESULT-ARG -- and
 make them return the sequence.

 Replace the unused and bitrotted UNSAFE IR1 attribute with its inverse:
 DX-SAFE, and use that togather with RESULT-ARG to allow multiple refs to
 potentially DX leafs. Still accept UNSAFE in DEFKNOWNs occurring in
 user-code, but ignore it and give a style-warning.

 For now, add DX-SAFE to LENGTH and VECTOR-LENGTH, which is enough for our
 purposes.

 Fixes lp#902351.
12 files changed:
NEWS
src/code/bit-bash.lisp
src/compiler/alpha/cell.lisp
src/compiler/fndb.lisp
src/compiler/generic/objdef.lisp
src/compiler/generic/vm-fndb.lisp
src/compiler/generic/vm-macs.lisp
src/compiler/ir1util.lisp
src/compiler/knownfun.lisp
src/compiler/macros.lisp
tests/compiler-test-util.lisp
tests/dynamic-extent.impure.lisp