https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101156

--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
OK, so the issue is we're calling gimplify_expr (...., false /*allow_ssa*/)
on 'p--' and the gimplified sequence looks like the following on the pre_p
sequence:

 p.0_1 = p;
 p = p.0_1 + 18446744073709551612;

and the gimplify_expr result is just p.0_1.  Then we do

          /* Avoid the extra copy if possible.  */
          *expr_p = create_tmp_reg (TREE_TYPE (name));
          if (!gimple_nop_p (SSA_NAME_DEF_STMT (name)))
            gimple_set_lhs (SSA_NAME_DEF_STMT (name), *expr_p);
          release_ssa_name (name);

but obviously that disregards that there's other uses of p.0_1 already.
I suppose the above might be premature optimization but I'm going to gather
some statistics on that I guess.

Reply via email to