------- Comment #15 from rguenth at gcc dot gnu dot org 2007-05-12 15:44 ------- forwprop looses the volatileness (035.dce vs 036.forwprop):
GTeth_txq_done (sc) { struct GTeth_desc * txd; @@ -34,12 +47,10 @@ goto <bb 6> (<L4>); <L0>:; - D.1542_3 = &sc_1->txq_desc[0]; D.1543_4 = sc_1->txq_fi; D.1544_5 = D.1543_4 * 4; D.1545_6 = (struct GTeth_desc *) D.1544_5; - txd_7 = D.1542_3 + D.1545_6; - D.1546_8 =/v txd_7->ed_cmdsts; + D.1546_8 = sc_1->txq_desc[D.1543_4].ed_cmdsts; if (D.1546_8 != 0) goto <L1>; else goto <L2>; <L1>:; I'll take a quick shot. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31797