On Fri, 10 Jun 2011, Richard Henderson wrote:
> > + /* Do copy propagation */ > > + if (!(def->flags & (TCG_OPF_CALL_CLOBBER | TCG_OPF_SIDE_EFFECTS))) > > { > > Why are you suppressing copy propagation in this way? I see no reason for it. > This was suggested by Aurelien Jarno. I do not know how safe it is to propagate copies through such operations so I decided to be conservative. > > case INDEX_op_brcond_i64: > > #endif > > + memset(temps, 0, nb_temps * sizeof(struct tcg_temp_info)); > > Perhaps to pedantic, but we can do better in extended basic blocks. > A full flush of all temps is only needed at labels. > Not much better unfortunately. Globals got spilled at basic block end, temps just die. The only things we can keep are locals but I have not seen much of them in the intermediate representation. ---- Kirill Batuzov