Dan Sugalski <[EMAIL PROTECTED]> wrote: > registers needed: I43, N0, S12, P3327 > registers in .pasm: I25, N0, S20, P32 - 464 spilled > 2007 basic_blocks, 2079 edges
Ouch. Register allocation is spending huge times during spilling. Something is definetely wrong with your code - wrong in the sense of: it doesn't play with, what imcc expects ;) You must have too much pseudo-globals in that unit, spanning a huge range and interfering with one another. Do you use lexical vars or Parrot globals? > Hrm. Does the code currently consider something like: > $P0 = foo > to start a new lifetime for $P0? If you don't use $P0 beyond that point yes. Do you name all temps $P0 or some such? Or are you giving them unique names. You should do the latter. leo