Dan Sugalski <[EMAIL PROTECTED]> wrote:

> I was using .locals for the actual variables in the source program,

Well, you know it: .locals aren't vars.

> and $Px for all the temps the compiler generated. I've been migrating
> a lot of the code to use a few .local-defined hashes and indexing
> into them, and it looks like that's the way to go.

If you use a hash anyway, just use globals - this seems to match the
target language's POV:

  $Px = global "foo"  # fetch
  global "foo" = $Py  # store

If spilling is still needed, the spill code can be improved, if the
variable already has a store (like a lexical or a global). Needs only
cutting down the life range, and a refetch in the other locations of
usage. This saves the store and simplifies spilling.

But if you treat all your variables like that, there will be no spilling
at all.

> ... (This'd be easier
> if this language had, y'know, actual subroutines and stuff...)

Yep.

leo

Reply via email to