1.0.29.4: still more MAKE-ARRAY work
authorNikodemus Siivola <nikodemus@random-state.net>
Fri, 5 Jun 2009 14:25:29 +0000 (14:25 +0000)
committerNikodemus Siivola <nikodemus@random-state.net>
Fri, 5 Jun 2009 14:25:29 +0000 (14:25 +0000)
commit091f0c20d4661994be7be4cc707c2aba4ef86418
treeb1f04105e742a14fbf4d3d9f25ffe48e6a9b4db0
parent09ba205d5ff72b9f4b1ffcf8743809c01a9c69e5
1.0.29.4: still more MAKE-ARRAY work

* Re-order the three MAKE-ARRAY deftransform, so that the more
  specific ones are tried before the general one -- which allows stack
  allocation in more the remaining cases that used to fail (I don't
  know why I blamed VECTOR-FILL* for that before.)

* When constant splicing for initial-element in
  TRANSFORM-MAKE-ARRAY-VECTOR didn't quote it, leading to lossiness
  with symbols or lists as constant initial-elements. (Bug masked
  earlier by the mis-ordering of the deftransforms.)

* In the final leg of TRANSFORM-MAKE-ARRAY-VECTOR also eliminate the
  possible :INITIAL-ELEMENT keyword.

* When eliminating keywords from a MAKE-ARRAY call, don't flush the
  lvars before checking that all of them can be eliminated. (Also
  masked by the earlier mis-ordering.)
src/compiler/array-tran.lisp
src/compiler/ir1util.lisp
tests/compiler.impure.lisp
tests/dynamic-extent.impure.lisp
version.lisp-expr