http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46474
Richard Guenther <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |rguenth at gcc dot gnu.org Target Milestone|--- |4.6.0 --- Comment #2 from Richard Guenther <rguenth at gcc dot gnu.org> 2010-11-14 17:41:29 UTC --- If it's due to the reported difference using fma and not using fma then probably the tree fma code lacks checks for debug stmts. Try Index: tree-ssa-math-opts.c =================================================================== --- tree-ssa-math-opts.c (revision 166717) +++ tree-ssa-math-opts.c (working copy) @@ -1534,6 +1534,9 @@ use_stmt = USE_STMT (use_p); + if (is_gimple_debug (use_stmt)) + continue; + /* For now restrict this operations to single basic blocks. In theory we would want to support sinking the multiplication in m = a*b; @@ -1603,10 +1606,14 @@ FOR_EACH_IMM_USE_STMT (use_stmt, imm_iter, mul_result) { gimple_stmt_iterator gsi = gsi_for_stmt (use_stmt); - enum tree_code use_code = gimple_assign_rhs_code (use_stmt); + enum tree_code use_code; tree addop, mulop1, result = mul_result; bool negate_p = false; + if (is_gimple_debug (use_stmt)) + continue; + + use_code = gimple_assign_rhs_code (use_stmt); if (use_code == NEGATE_EXPR) { result = gimple_assign_lhs (use_stmt);