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)