I would expect a large majority of parrot subroutines to *not* use all
four register types.

How difficult would it be to make imcc detect when less than 4 register
types were used in a subroutine, and replace a call to "saveall" with an
appropriate combination of "pushi", "pushs", "pushp", and "pushn" (and
likewise with "restoreall")?  I've been looking at the optomizer, and it
hurts my head to try and understand it.

Perhaps more importantly, could continuations be made to *not*
save/restore all four register types, and instead only save/restore
those types that we ask it to save/restore?

This will become even more important if we add a fifth register type for
64 bit ints.

-- 
$a=24;split//,240513;s/\B/ => /for@@=qw(ac ab bc ba cb ca
);{push(@b,$a),($a-=6)^=1 for 2..$a/6x--$|;print "[EMAIL PROTECTED]
]\n";((6<=($a-=6))?$a+=$_[$a%6]-$a%6:($a=pop @b))&&redo;}

Reply via email to