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

--- Comment #7 from amker at gcc dot gnu.org ---
While I am understanding the issue.  The dump of ifcvt pass is as below:


;;   basic block 2, loop depth 0, count 118111601 (estimated locally), maybe
hot
;;    prev block 0, next block 3, flags: (NEW, REACHABLE, VISITED)
;;    pred:       ENTRY [always]  count:118111601 (estimated locally)
(FALLTHRU,EXECUTABLE)
  # VUSE <.MEM_12(D)>
  c.1_17 = cD.1595;
  if (c.1_17 > 0)
    goto <bb 3>; [89.00%]
  else
    goto <bb 5>; [11.00%]
;;    succ:       3 [89.0% (guessed)]  count:105119325 (estimated locally)
(TRUE_VALUE,EXECUTABLE)
;;                5 [11.0% (guessed)]  count:12992276 (estimated locally)
(FALSE_VALUE,EXECUTABLE)

;;   basic block 3, loop depth 0, count 105119325 (estimated locally), maybe
hot
;;    prev block 2, next block 4, flags: (NEW, REACHABLE, VISITED)
;;    pred:       2 [89.0% (guessed)]  count:105119325 (estimated locally)
(TRUE_VALUE,EXECUTABLE)
  # VUSE <.MEM_12(D)>
  ;;...
;;    succ:       4 [always]  count:105119325 (estimated locally)
(FALLTHRU,EXECUTABLE)

;;   basic block 4, loop depth 1, count 955630224 (estimated locally), maybe
hot
;;    prev block 3, next block 6, flags: (NEW, REACHABLE, VISITED)
;;    pred:       3 [always]  count:105119325 (estimated locally)
(FALLTHRU,EXECUTABLE)
;;                6 [always]  count:850510900 (estimated locally)
(FALLTHRU,DFS_BACK,EXECUTABLE)
  # RANGE [0, 2147483647] NONZERO 2147483647
  # i_18 = PHI <0(3), i_14(6)>
  ;;...
  if (i_14 < c.1_17)
    goto <bb 6>; [89.00%]
  else
    goto <bb 5>; [11.00%]
;;    succ:       6 [89.0% (guessed)]  count:850510900 (estimated locally)
(TRUE_VALUE,EXECUTABLE)
;;                5 [11.0% (guessed)]  count:105119324 (estimated locally)
(FALSE_VALUE,EXECUTABLE)

;;   basic block 6, loop depth 1, count 850510900 (estimated locally), maybe
hot
;;    prev block 4, next block 5, flags: (NEW, VISITED)
;;    pred:       4 [89.0% (guessed)]  count:850510900 (estimated locally)
(TRUE_VALUE,EXECUTABLE)
  goto <bb 4>; [100.00%]
;;    succ:       4 [always]  count:850510900 (estimated locally)
(FALLTHRU,DFS_BACK,EXECUTABLE)

;;   basic block 5, loop depth 0, count 118111601 (estimated locally), maybe
hot
;;    prev block 6, next block 1, flags: (NEW, REACHABLE, VISITED)
;;    pred:       2 [11.0% (guessed)]  count:12992276 (estimated locally)
(FALSE_VALUE,EXECUTABLE)
;;                4 [11.0% (guessed)]  count:105119324 (estimated locally)
(FALSE_VALUE,EXECUTABLE)
  ;;...
  return;
;;    succ:       EXIT [always (guessed)]  count:118111601 (estimated locally)

Question is for edges <bb2, bb5> and <bb4, bb5> and local count as:
    basic block 2, loop depth 0, count 118111601
    basic block 4, loop depth 1, count 955630224
    basic block 5, loop depth 0, count 118111601

Is count of bb5 is wrong?

Reply via email to