Bug 136927

Summary: A Phi over object materializations should be sinkable
Product: WebKit Reporter: Filip Pizlo <fpizlo>
Component: JavaScriptCoreAssignee: 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:    

Description Filip Pizlo 2014-09-18 12:01:38 PDT
...
Comment 1 Filip Pizlo 2014-09-18 16:35:46 PDT
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.