On Mon, Dec 24, 2001 at 02:11:15PM -0500, Gregor N. Purdy wrote:

> Or, do we really need to have the three-way in/out/inout tagset?
> 
>   inline op set(out i, in i|ic) {
>     $1 = $2;
>   }

Making the distinction between the three cases enables a number of
optimizations of native code based on analysing data flow.  'in' would be good
as an implicit default, as many PMC opcodes will not overwrite any PMC
registers.

An optimizing native code generator (whether static or JIT) will also need to
be aware of operands that may implicitly clobber parrot register values or
modify control flow, so that it knows when it musth "spill" updated parrot
register values in hardware registers back to their memory locations and when
it must reload hardware registers from main memory.

-- 
Jason

Reply via email to