Reload bug & SRA oddness

Bernd Schmidt bernds_cb1@t-online.de
Sat Apr 28 20:48:00 GMT 2007


Daniel Berlin wrote:
> It would also be a mistake to try to do significant optimization of
> copy in/out placement directly in SRA.  Again, that is why we have PRE
> and DSE.  If they are not moving/eliminating these things, they need
> to be fixed.

I've had a look at why these statements are not eliminated.  I figure 
that dce is the pass that should get rid of them, but it doesn't.  From 
the dumps:

   # SFT.70_14 = VDEF <SFT.70_13(D)>
   y.k = y$k_9(D);
   # VUSE <sD_15(D)>
   # SFT.70_19 = VDEF <SFT.70_14>
   # SFT.71_20 = VDEF <SFT.71_16(D)>
   # SFT.72_21 = VDEF <SFT.72_17(D)>
   # SFT.73_22 = VDEF <SFT.73_18(D)>
   y = sD;

Note how all the VDEFs have an input argument, which causes us to 
believe that the second statement depends on the first.  AFAICT, these 
VDEFs should have no arguments, but the compiler always generates them 
with exactly one input.  I've tried to fix that, but so far the patch I 
have is only useful as an SSA learning tool for myself, as it creates 
lots of failures elsewhere in the compiler...

Any other ideas how to address this?


Bernd
-- 
This footer brought to you by insane German lawmakers.
Analog Devices GmbH      Wilhelm-Wagenfeld-Str. 6      80807 Muenchen
Sitz der Gesellschaft Muenchen, Registergericht Muenchen HRB 40368
Geschaeftsfuehrer Thomas Wessel, William A. Martin, Margaret Seif



More information about the Gcc-patches mailing list