new coalescer causes too large stack frames
Stephen Weeks
sweeks@intertrust.com
Mon, 10 May 1999 11:48:16 -0700 (PDT)
> I put in my new coalescer into MLton (a very slow version) and tried to
I assume you mean:
> I put in my new coalescer (a very slow version) into MLton and tried to
> Sadly, the compile did not actually succeed. MLton printed out
> Bug: MLton cannot handle stack frames larger than 65536 bytes.
Wow. I was sure that assert would never fail.
> Are the stack frames it is talking about MLton stack frames or C stack
> frames?
MLton stack frames
> Why would making chunks larger cause stack frames to get bigger? I
> guess I could see the C stack frame getting larger, but I don't see why the
> MLton stack frame would get bigger.
I'm with you. I don't see any reason.
> I guess that more is saved in the MLton
> stack if there are more inter-chunk transfers,
Not true. The chunkifier already enforces the minimum amount of
coalescing needed so that all Cps jumps are intrachunk. The register
allocator only puts a variable on the stack if it is live accross a
nontail call, which is a property of the Cps code.