Dan Sugalski <[EMAIL PROTECTED]> wrote: > Dunno what parrot thinks--it's not done yet. grep says 569 .locals > and 473 temp PMC registers.
I've now enabled some more code that speeds up temp allocation more (~2.5 for 2000 temps in a unit). This needs that the usage range is limited to 10 lines. If the code from a compiler looks like the output from the program below, this works fine. > ... I'm rejigging the compiler to cut down on the > number of .local declarations, but that'll increase the temp pmc > usage, at least with the relatively simple temp system I've got now. Temps are fine. ".local"s ranging from top of the program (not counting the declaration) down do hurt. Many small short ranged temps are much better then long ranged vars because they have more interferences on each other. > (I can throw dummy labels in to create fake basic blocks if that'll > help the register coloring code) That makes it worse. More blocks, more life ranges to compare. If you can emit code similar to "gen.pl" it could take advantage of my last change. leo $ cat gen.pl #!/usr/bin/perl use strict; # a = 1 + 1 + 1 ... + 1 my ($i, $t, $N); $N = $ARGV[0] || 299; print ".sub _main [EMAIL PROTECTED]"; $t++; print "\t\$P$t = new PerlInt\n"; print "\t\$P$t = 1\n"; for $i (0..$N) { $t++; print "\t\$P$t = new PerlInt\n"; print "\t\$P$t = 1\n"; $t++; print "\t\$P$t = new PerlInt\n"; print "\t\$P$t = [EMAIL PROTECTED] + [EMAIL PROTECTED]"; } print "\tprint \$P$t\n"; print "\tprint \"\\n\"\n"; print ".end\n";