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