Dan Sugalski <[EMAIL PROTECTED]> wrote:
I can see that helping in some circumstances (though not mine) but the code that the register allocator's having fits with has no .local declarations at all. It's all $x register usage from beginning to end.
Don't you have something like variables, which could be stored as globals?
If you code looked like ...
$Px = global "foo" # some temps $Px += temp
... it would automatically cut down the life range of $Px.
Yes, I know. I've done that. Everything is in globals, everything is fetched only when actually needed, and only lives for the duration of the basic block. (The compiler keeps a cache and flushes it every label)
One more remark: do you use the same "$Px" in different places (for different temps/vars) or do you increase "x" for different temps? The latter should be much better.
I do the latter. There's no reuse of the $Px temps for different values. -- Dan
--------------------------------------"it's like this"------------------- Dan Sugalski even samurai [EMAIL PROTECTED] have teddy bears and even teddy bears get drunk