RFC: Remove REG_WAS_0.

Stephane Carrez stcarrez@nerim.fr
Mon Jun 16 20:03:00 GMT 2003


Hi Kazu,

Kazu Hirata wrote:
> Hi Stephane,
> 
> 
>>Instead of having such REG_WAS_ note, I would have liked to have
>>access to a rtx giving the value of each register.  Similar to what
>>we do in cse reg where we keep up the last rtx assigned to each reg.
> 
> 
> The part of m68hc11.c that uses REG_WAS_0 tries to achieve the same
> effect as move2add, except that you do so on registers that satisfy
> H_REG_P only as you point out in
> 
> http://gcc.gnu.org/ml/gcc-patches/2003-04/msg00057.html
> 
> I'll do something so you can cleanly use move2add, which should be
> better because even if REG_WAS_0 worked as you expected, you could
> only go from (const_int 0) to either (const_int 1) or (const_int -1),
> whereas with move2add, you can go from (const_int N) to (const_int N +
> 1) or (const_int N - 1) for any integer N using inc, inx, and iny
> instructions.  Correct?
> 
> Kazu Hirata
> 

The problem I had with mov2add was that the rtx_cost does not know to which
register the value is assigned.  I don't want to have an add for some registers
(soft reg, reg D) but want it for others (X, Y).

A second problem is that I have a lot of patterns that must be split and after
that it is no longer possible to run cse reg pass.  This is because
I come up with several insns that are not understood correctly (swap of
2 registers basically).  After those split there are cases where I could
optimize more based on the value of previous registers.

	Stephane

-- 
         Home                           Office
E-mail: stcarrez@nerim.fr              Stephane.Carrez@solsoft.com
WWW:    http://stcarrez.nerim.net      http://www.solsoft.com
         Free the Software!             Simplifying Security Policy Management




More information about the Gcc-patches mailing list