[gambit-list] compiling fib
Marc Feeley
feeley at iro.umontreal.ca
Thu Jan 20 21:45:13 EST 2011
On 2011-01-20, at 9:15 PM, Bradley Lucier wrote:
> Marc:
>
> I don't know why, but I got looking at the compiled code for fib, and it
> seems to use much more stack space than needed, 8 words per invocation,
> which seems counter-intuitive to me; is there a problem with the
> compiler? I'm using the latest git compiler.
>
> Brad
The frame size (8 words) can be explained by the constraints on the frame in order to implement continuations efficiently. Specifically, the frames are aligned on multiples of 4 words and the last 3 slots of the frame are reserved for linking frames explicitly (these slots are only touched when the frames are captured by a call/cc and live when the GC runs).
In the case of fib, there are 2 live slots when the frame must be constructed for the recursive call. But because 3 extra slots must be reserved, that makes 5 slots. But this has to be rounded up to a multiple of 4, so that gives 8 slots.
Marc
More information about the Gambit-list
mailing list