[tree-ssa] More aggressive dead code elimination

law@redhat.com law@redhat.com
Wed Jan 7 22:30:00 GMT 2004


In message <200401072318.22342.s.bosscher@student.tudelft.nl>, Steven Bosscher 
writes:
 >
 >--Boundary-00=_uWI//mGdhPjsA6T
 >Content-Type: text/plain;
 >  charset="us-ascii"
 >Content-Transfer-Encoding: 7bit
 >Content-Disposition: inline
 >
 >Hi,
 >
 >This patch re-introduces the classic SSA DCE algorithm as described
 >in Morgan's book.  The current implementation takes the conservative
 >approach and marks all conditional branches inherently necessary.
 >This prevents us from removing some of them at the tree level.  With
 >this patch we do eliminate unnecessary branches, e.g. stuff like,
We decided a few months ago against using this approach to DCE due to
performance issues.

The code we have now misses two cases that the approach cited in Morgan
and other sources handles:

  1. Useless loop removal.  Frankly, I don't care about this.

  2. If the last DCE pass kills a conditional it does not arrange to
     kill the statements which feed the conditional.  This can be
     easily solved by re-running the DCE pass in that case.  These are
     extremely rare.

 >Bootstrapped and regtested on i686-pc-linux-gnu.  OK?
No.  Sorry.


jeff




More information about the Gcc-patches mailing list