On Oct 20, 2004, at 11:24 PM, Leopold Toetsch wrote:

Bill Coffman <[EMAIL PROTECTED]> wrote:

And of course, lexicals and globals already have a storage, you don't
need to spill them.

I'm not sure that's true. If there's no 'eval' in scope, lexicals don't have to live in pads--they could purely exist in registers. And with tied namespaces and such, it may not be legitimate to re-fetch a global (ie, to fetch it multiple times, if the code appears to only fetch it once) -- one could pathologically have a global whose value appears to increase each time it's fetched, for instance, or you could end up with multiple round-trips to a database.


... Another thing that might be worth
checking, after parrot gets out of "alpha", is if reducing or
increasing the number of registers will help performance.  Just a
thought.

The 4 x 32 is pretty good. It matches recent hardware too. But if a good
register algorithm shows that 4 x 16 is enough, we can of course
decrease the register number. Increasing shouldn't be necessary.

Matching hardware is probably not too significant--even though the PPC has 32 int registers, we can't map to all of them in JIT (some are dedicated to holding the interpreter pointer, etc.), and we'd really need 3 x 32 hardware int registers to accommodate all we'd like (I, S, and P registers). So even currently it's a loose match.


JEff



Reply via email to