* If you look at the disassembly, you see that actually none of the non-zero initialized vectors are stack allocated. So we're missing notes. This is due to the transform for fill accidentally muffling them.
* The second problem is that for specialized vectors the fill transform prevents stack allocation.
...so need to make the DX code smarter about examining functions. It can be helped a bit by adding :RESULT-ARG information for bashers (and making them return the sequence), but it will need to deal with multiple refs to the vector as well -- so in addition to :RESULT-ARG we need a :DX-ARGS annoration to at least VECTOR-LENGTH.
(Though it occurs to me that maybe all args to flushable functions are actually :DX-ARGS?)
There are two problems here:
* If you look at the disassembly, you see that actually none of the non-zero initialized vectors are stack allocated. So we're missing notes. This is due to the transform for fill accidentally muffling them.
* The second problem is that for specialized vectors the fill transform prevents stack allocation.
...so need to make the DX code smarter about examining functions. It can be helped a bit by adding :RESULT-ARG information for bashers (and making them return the sequence), but it will need to deal with multiple refs to the vector as well -- so in addition to :RESULT-ARG we need a :DX-ARGS annoration to at least VECTOR-LENGTH.
(Though it occurs to me that maybe all args to flushable functions are actually :DX-ARGS?)