Bug 136927
Summary: | A Phi over object materializations should be sinkable | ||
---|---|---|---|
Product: | WebKit | Reporter: | Filip Pizlo <fpizlo> |
Component: | JavaScriptCore | Assignee: | Filip Pizlo <fpizlo> |
Status: | NEW | ||
Severity: | Normal | CC: | barraclough, ggaren, mark.lam, mhahnenb, mmirman, msaboff, nrotem, oliver, sam |
Priority: | P2 | ||
Version: | 528+ (Nightly build) | ||
Hardware: | All | ||
OS: | All | ||
Bug Depends on: | 136330 | ||
Bug Blocks: |
Filip Pizlo
...
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Filip Pizlo
Probably the easiest way to do this is:
1) The sink pruner should pretend that Upsilon doesn't materialize; instead it should propagate the sink candidate down to the Phi. So, if the Phi path causes an escape and there are no other paths for the sinkable to take, then we won't sink it. But if the Phi path doesn't cause an escape then we will sink.
2) Have an iteration in the fixpoint that transforms Phi(Materialize, Materialize, ...) into Materialize(Phi, Phi, ...).
Together this will have the effect we want.