delete_trivially_dead_insns is no longer able to remove sequences where the same register is first set and then modifed in a sequence of instructions to compute a particular value, as it is common on two-address machines. This affects both the 3.4 series and 4.0 . Details of the problem and a patch are here:
http://gcc.gnu.org/ml/gcc-patches/2004-05/msg01037.html -- Summary: delete_trivially_dead_insns made ineffective for two- address targets Product: gcc Version: 4.0.0 Status: UNCONFIRMED Severity: normal Priority: P2 Component: rtl-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: amylaar at gcc dot gnu dot org CC: gcc-bugs at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18992