If a block doesn't have any successors, it can't rely on the typical backwards liveness propagation that CombinedLiveness was doing. For such terminal blocks, we must account for what's bytecode live at the end of the block. Consider a block that ends with: ``` ForceOSRExit Unreachable ``` Things may definitely be live in bytecode at the tail. However, we'll report nothing as being alive. This probably subtly breaks many analyses, but we have a test case of it breaking the interference analysis that the ArgumentsEliminationPhase performs.
<rdar://problem/45268632>
Created attachment 358753 [details] patch
Comment on attachment 358753 [details] patch r=me
(In reply to Yusuke Suzuki from comment #3) > Comment on attachment 358753 [details] > patch > > r=me Thanks for the review. Yusuke and I also spoke offline, and I'll make this patch fix some errors in a comment in the CombinedLiveness header.
Created attachment 358955 [details] patch for landing
Comment on attachment 358955 [details] patch for landing Clearing flags on attachment: 358955 Committed r239882: <https://trac.webkit.org/changeset/239882>
All reviewed patches have been landed. Closing bug.