On 09/27/2012 10:15 AM, Aurelien Jarno wrote: > Rework the liveness analysis by tracking temps that need to go back to > memory in addition to dead temps tracking. This allows to mark output > arguments as "need sync", and to synchronize them back to memory as soon > as they are not written anymore. This way even arguments mapping to > globals can be marked as "dead", avoiding moves to a new register when > input and outputs are aliased. > > In addition it means that registers are freed as soon as temps are not > used anymore, instead of waiting for a basic block end or an op with side > effects. This reduces register spilling especially on CPUs with few > registers, and spread the mov over all the TB, increasing the > performances on in-order CPUs. > > Signed-off-by: Aurelien Jarno <[email protected]> > --- > tcg/tcg.c | 64 > +++++++++++++++++++++++++++++++++++-------------------------- > 1 file changed, 37 insertions(+), 27 deletions(-)
Reviewed-by: Richard Henderson <[email protected]> r~
