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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
     Ever confirmed|0                           |1
   Last reconfirmed|                            |2022-07-29
             Status|UNCONFIRMED                 |ASSIGNED
           Assignee|unassigned at gcc dot gnu.org      |rguenth at gcc dot 
gnu.org

--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
Checking profitability of path (backwards):  bb:5 (2 insns) bb:4 (7 insns) bb:3
  Control statement insns: 2
  Overall: 7 insns
  [1] Registering jump thread: (3, 4) incoming edge;  (4, 5) normal (5, 6)
nocopy;
path: 3->4->5->6 SUCCESS

but from the following you can see BB3 is known to probably never execute.

;;   basic block 2, loop depth 0, count 1073741823 (estimated locally), maybe
hot
;;    prev block 9, next block 3, flags: (NEW, REACHABLE, VISITED)
;;    pred:       9 [always]  count:1073741823 (estimated locally)
(FALLTHRU,EXECUTABLE)
  if (irq_1(D) > 31)
    goto <bb 3>; [0.00%]
  else
    goto <bb 4>; [100.00%]

;;   basic block 3, loop depth 0, count 0 (precise), probably never executed
;;    prev block 2, next block 4, flags: (NEW, REACHABLE, VISITED)
;;    pred:       2 [never]  count:0 (precise) (TRUE_VALUE,EXECUTABLE)
  _2 = (unsigned long) irq_1(D);
  __builtin___ubsan_handle_shift_out_of_bounds (&*.Lubsan_data0, 1, _2);
;;    succ:       4 [never]  count:0 (precise) (FALLTHRU,EXECUTABLE)

;;   basic block 4, loop depth 0, count 1073741823 (estimated locally), maybe
hot
;;    prev block 3, next block 5, flags: (NEW, REACHABLE, VISITED)
;;    pred:       2 [always]  count:1073741823 (estimated locally)
(FALSE_VALUE,EXECUTABLE)
;;                3 [never]  count:0 (precise) (FALLTHRU,EXECUTABLE)
  _3 = 1 << irq_1(D);
  mask_4 = (u32) _3;
  entry = instance_5(D)->array[irq_1(D)];
  capture (mask_4);
  if (level_6(D) != 0)
    goto <bb 7>; [34.00%]
  else
    goto <bb 5>; [66.00%]
;;    succ:       7 [34.0% (guessed)]  count:365072224 (estimated locally)
(TRUE_VALUE,EXECUTABLE)
;;                5 [66.0% (guessed)]  count:708669599 (estimated locally)
(FALSE_VALUE,EXECUTABLE)

;;   basic block 5, loop depth 0, count 708669600 (estimated locally), maybe
hot
;;    prev block 4, next block 6, flags: (NEW, REACHABLE, VISITED)
;;    pred:       4 [66.0% (guessed)]  count:708669599 (estimated locally)
(FALSE_VALUE,EXECUTABLE)
  if (irq_1(D) == 1)
    goto <bb 7>; [20.97%]
  else
    goto <bb 6>; [79.03%]
;;    succ:       7 [21.0% (guessed)]  count:148608017 (estimated locally)
(TRUE_VALUE,EXECUTABLE)
;;                6 [79.0% (guessed)]  count:560061583 (estimated locally)
(FALSE_VALUE,EXECUTABLE)
  • [Bug tree-optimization/105679] ... rguenth at gcc dot gnu.org via Gcc-bugs

Reply via email to