>>>>> "Michael" == Michael Naunton <[EMAIL PROTECTED]> writes:
Michael> On Mon, 2003-10-27 at 17:11, rif wrote:
>>
>> Yes, l2-distance-squared is inlined. I don't personally see how the
>> lack of this could be causing a problem converting between dist and
>> best-dist --- they are both double-floats, and they are both declared
>> as double-floats, so I'd hope the conversion happens without going
>> through float-to-pointer.
>>
>> I'm tenatively guessing that Raymond's suggestion that the system's
>> out of FP registers is the issue.
>>
Michael> I'd also buy Raymond's explanation. There are things
Michael> going on with the optimizer that I don't understand.
But my guess is probably wrong. I looked at the generated assembly.
Only a couple of FP registers are in use.
Another bit of info. Every time I've seen this they've all had the
same construct:
(let ((x <init>))
(declare (double-float x))
<some code that setf's x>
x)
For some reason, it seems that, because x is returned, the compiler
thinks that x needs to be boxed everywhere instead of just boxing the
final x.
But this doesn't always happen.
I don't understand this.
Ray