------- Comment #1 from rguenth at gcc dot gnu dot org 2007-09-05 11:33 ------- While RTL dse eliminates the redundant store to this->D.2013.a, tree-level DSE does not do so. (RTL dse also fails with -O3 -fforce-addr -ftracer)
<bb 4>: # VUSE <tab_54, SMT.9_56> D.2089_34 = this_2(D)->D.2013.a; D.2090_35 = (unsigned int) D.2089_34; D.2091_36 = D.2090_35 + 2; D.2092_37 = (int) D.2091_36; # tab_62 = VDEF <tab_54> # SMT.9_63 = VDEF <SMT.9_56> this_2(D)->D.2013.a = D.2092_37; D.2095_40 = D.2091_36 + 2; D.2096_41 = (int) D.2095_40; # tab_64 = VDEF <tab_62> # SMT.9_65 = VDEF <SMT.9_63> this_2(D)->D.2013.a = D.2096_41; # VUSE <tab_64, SMT.9_65> D.2087_42 = this_2(D)->addr; D.2097_43 = (long unsigned int) D.2087_42; D.2098_44 = D.2097_43 & 255; D.2099_45 = p_33 + D.2098_44; # VUSE <tab_64, SMT.9_65> b_46 = *D.2099_45; goto <bb 6>; clearly there is no reason for DSE not to discard the store. -- rguenth at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |rguenth at gcc dot gnu dot | |org Severity|normal |enhancement Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Keywords| |missed-optimization, TREE Last reconfirmed|0000-00-00 00:00:00 |2007-09-05 11:33:31 date| | Summary|follow-up on bug 33291 |dead-store not eliminated |dead-store not eliminated | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33302