|
From: | Paolo Bonzini |
Subject: | [Lightning] Re: `pushr' on SPARC |
Date: | Mon, 06 Nov 2006 16:08:28 +0100 |
User-agent: | Thunderbird 1.5.0.7 (Macintosh/20060909) |
1. Keep the non-working pushr/popr. Solution (1) seems quite harmful since the resulting programs produce erroneous results.
(No more than previous versions, but I agree that it is not nice.)
Then we could make the stack area only 16 bytes (4 words) and I would be forced to shut up. :-) Your solution may still not work if push and pop are in different basic blocks (e.g. push before a conditional jump, pop in both branches of the jump), but it would work in 99% of the cases, though, and this limitation may be documented in the NEWS file together with the deprecation of pushr/popr.2. Include a fixed pushr/popr. While (2) incurs some overhead, I don't clearly understand the impact of larger stack frames. Are you concerned by cache misses? Keep in mind that lightning 1.2 allocated 120 octets per stack frame (it could have allocated only 104) while this fix allocates 104 + 32 = 136 octets (that is, "only" 16 additional octets compared to 1.2).
Solution (2b) could be a nice compromise, provided we clearly recommend against using both `allocai' and `pushr' (which is needed anyway for the other architectures, according to your previous post).
Yes. Paolo
[Prev in Thread] | Current Thread | [Next in Thread] |