------- Additional Comments From belyshev at depni dot sinp dot msu dot ru 2005-01-23 14:36 ------- (In reply to comment #8) > Closing this as won't fix. Lets focus on PR19581 instead.
Two notes: 1) tree-outof-ssa does not coalesce variables in this case: g.c: g.c.t65.optimized: ------------------------------------------------------------------------ void g () | { | <bb 0>: r [0] += r [2]; | D.1129 = r[0] + r[2]; r [1] += r [0]; | r[0] = D.1129; r [2] += r [1]; | D.1131 = D.1129 + r[1]; } | r[1] = D.1131; | r[2] = D.1131 + r[2]; | return; | ------------------------------------------------------------------------ ... while it does in this: f.c: f.c.t65.optimized: ------------------------------------------------------------------------ void f () | { | <bb 0>: r [0] += r [1]; | r[0] = r[0] + r[1]; r [1] += r [2]; | r[1] = r[1] + r[2]; r [2] += r [0]; | r[2] = r[2] + r[0]; } | return; | ------------------------------------------------------------------------ 2) and disabling -fgcse-lm *fixes* original problem for 3.4 and 4.0. I cannot believe this bug is WONTFIX for 4.0 just because it will be fixed in 4.1 at tree level. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19580