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

Reply via email to