Currently if we have a PutLocal/GetLocal pair, then we will sink the PutLocal to the GetLocal. Instead, we should eliminate the GetLocal entirely.
Probably this doesn't arise too much because we would have done some CSE, but it would be best if we just did the right thing here.
Created attachment 248599 [details]
Landed in http://trac.webkit.org/changeset/181487
This is causing a jsc test failure:
Running Speedometer/Full.html (144 of 144)
1 0x108f858a3 JSC::DFG::(anonymous namespace)::PutStackSinkingPhase::run()
2 0x108f7c5f4 JSC::DFG::performPutStackSinking(JSC::DFG::Graph&)
3 0x108fd5cf9 JSC::DFG::Plan::compileInThreadImpl(JSC::DFG::LongLivedState&)
4 0x108fd5601 JSC::DFG::Plan::compileInThread(JSC::DFG::LongLivedState&, JSC::DFG::ThreadData*)
5 0x1090601d3 JSC::DFG::Worklist::runThread(JSC::DFG::ThreadData*)
6 0x1093c5bd3 WTF::threadEntryPoint(void*)
7 0x1093c608f WTF::wtfThreadEntryPoint(void*)
8 0x7fff85ad7899 _pthread_body
9 0x7fff85ad772a _pthread_struct_init
10 0x7fff85adbfc9 thread_start
Re-opened since this is blocked by bug 142695
Comment on attachment 248599 [details]
This patch was broken, and it revealed some other issues in this phase. I'll have a new patch shortly.
Created attachment 248700 [details]
Comment on attachment 248700 [details]
Landed in http://trac.webkit.org/changeset/181563