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

Tamar Christina <tnfchris at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2023-10-18
     Ever confirmed|0                           |1

--- Comment #5 from Tamar Christina <tnfchris at gcc dot gnu.org> ---
Confirmed,

looks like the rename failed on one edge, BB 15 has:

;;   basic block 15, loop depth 0, count 94607391 (estimated locally, freq
0.8010), maybe hot
;;    prev block 10, next block 18, flags: (NEW, VISITED)
;;    pred:       7 [11.0% (guessed)]  count:94607391 (estimated locally, freq
0.8010) (FALSE_VALUE,EXECUTABLE)
  # length_13 = PHI <length_17(7)>
  # .MEM_8 = PHI <.MEM_30(7)>

and BB 19 has:

;;   basic block 19, loop depth 0, count 105119324 (estimated locally, freq
0.8900), maybe hot
;;    prev block 17, next block 8, flags: (NEW, REACHABLE, VISITED)
;;    pred:       16 [33.3% (guessed)]  count:81467477 (estimated locally, freq
0.6898) (FALSE_VALUE,EXECUTABLE)
;;                15 [25.0% (guessed)]  count:23651848 (estimated locally, freq
0.2003) (TRUE_VALUE)
  # length_47 = PHI <length_21(16), _61(15)>
  # .MEM_48 = PHI <.MEM_30(16), .MEM_30(15)>

It looks like after the loop guard is added after peeling that the use for the
edge coming in from BB 15 wasn't updated.

Most likely find_guard failed.  Working on it.

Odd that it only fails on x86 though.

Reply via email to