We write transformations in the compiler like this where we emit edges with KnownCellUse if we know we're inserting code at a point where we're dominated by a Cell check: a: SomeValue b: Something(Cell:@a) c: SomethingElse(@b) d: CheckNotEmpty(@a) => a: SomeValue b: Something(Cell:@a) e: RandomOtherThing(KnownCellUse:@a) c: SomethingElse(@b) d: CheckNotEmpty(@a) However, doing this may lead to subtly incorrect programs since KnownCellUse doesn't allow the empty value to flow through it. We end up deleting @d in the above program, which is wrong. We need to have KnownCellUse allow the empty value to flow through.
<rdar://problem/45872852>
Created attachment 355005 [details] patch
Comment on attachment 355005 [details] patch Clearing flags on attachment: 355005 Committed r238297: <https://trac.webkit.org/changeset/238297>
All reviewed patches have been landed. Closing bug.