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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |ice-on-valid-code,
                   |                            |needs-bisection
             Status|UNCONFIRMED                 |NEW
     Ever confirmed|0                           |1
   Last reconfirmed|                            |2021-04-29
          Component|target                      |tree-optimization

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
Looks like a latent issue, at least I didn't find sth that would avoid this
in other control-flow situations.  Eventually rank computation does
but then high reassoc-width can still cause association in a way breaking
SSA dominance.

   <bb 2> [local count: 1073741824]:
+  _1 = a2_8(D) + 1;
   __asm__ goto("" : "=r" x_4 :  :  : "lab" lab);

   <bb 3> [local count: 536870913]:
+  _2 = x_4 + a1_7(D);
   a0 = x_4;

   <bb 4> [local count: 1073741824]:
 lab:
-  _10 = a2_8(D) + 1;
-  _11 = a1_7(D) + _10;
-  _9 = x_4 + _11;
+  _9 = _1 + _2;
   return _9;

So the issue is that we're using 'insert_stmt_before_use' even for 'leafs'
(and thus uses outside of the chain we're rewriting).

Reply via email to