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

--- Comment #4 from Andi Kleen <andi-gcc at firstfloor dot org> ---

The problem seems to be that the call BB has an extra fallthrough edge to the 
basic block containing the return. Perhaps it should just have an EXIT edge or
not split the RETURN? (not sure if that is legal in GIMPLE)


  _Z19resolveToBufferSlowP4SpanD.2864 (buffer_2(D)); [must tail call]
;;    succ:       3 [always]  count:1073741824 (estimated locally, freq 1.0000)
(FALLTHRU)
;;                EXIT [never (guessed)]  count:0 (estimated locally, freq
0.0000) (FAKE)

;;   basic block 3, loop depth 0, count 1073741824 (estimated locally, freq
1.0000), maybe hot
;;    prev block 2, next block 1, flags: (NEW)
;;    pred:       2 [always]  count:1073741824 (estimated locally, freq 1.0000)
(FALLTHRU)
  # VUSE <.MEM_4>
  return;
;;    succ:       EXIT [always]  count:1073741824 (estimated locally, freq
1.0000) (EXECUTABLE) ../../../tsrc/pr118442.cc:10:58

}

Reply via email to