Skip to content

Commit

Permalink
Remove a reference to rdar://problem/10664933
Browse files Browse the repository at this point in the history
The original commit, and the comments in the code already provide sufficient
context. But for posterity, there's a tiny bit more that might be useful if
someone is digging here in the future:

> This is related to <rdar://problem/10318439> Lower invokes into terminating
> machine instructions.
>
> The return value from a function call is live in to that function call's
> landing pad. The landing pad is shared with a later call, and the variable is
> undef on the first exceptional edge.
>
> Our computation of the last legal split point gets confused because the
> return value is live-out from the calling block, and live-in to the landing
> pad, but it is not live on the edge itself.
>
> Fixed in r147911 and r147912.
  • Loading branch information
jroelofs committed Aug 9, 2023
1 parent 8475d0a commit bdd17b8
Showing 1 changed file with 0 additions and 1 deletion.
1 change: 0 additions & 1 deletion llvm/lib/CodeGen/SplitKit.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,6 @@ InsertPointAnalysis::computeLastInsertPoint(const LiveInterval &CurLI,
// If the value leaving MBB was defined after the call in MBB, it can't
// really be live-in to the landing pad. This can happen if the landing pad
// has a PHI, and this register is undef on the exceptional edge.
// <rdar://problem/10664933>
if (!SlotIndex::isEarlierInstr(VNI->def, LIP.second) && VNI->def < MBBEnd)
return LIP.first;

Expand Down

0 comments on commit bdd17b8

Please sign in to comment.