Summary: | jsc-tailcall: Implement the tail call opcodes in the DFG | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Basile Clement <basile_clement> | ||||||
Component: | JavaScriptCore | Assignee: | Basile Clement <basile_clement> | ||||||
Status: | RESOLVED FIXED | ||||||||
Severity: | Normal | CC: | fpizlo, ggaren, keith_miller, mark.lam, mmirman, msaboff, saam | ||||||
Priority: | P2 | ||||||||
Version: | 528+ (Nightly build) | ||||||||
Hardware: | Unspecified | ||||||||
OS: | Unspecified | ||||||||
Bug Depends on: | 146484 | ||||||||
Bug Blocks: | 146477, 146851, 147198 | ||||||||
Attachments: |
|
Description
Basile Clement
2015-07-10 12:38:57 PDT
*** Bug 147198 has been marked as a duplicate of this bug. *** Created attachment 257988 [details]
Patch
Just realized this is missing callee save stuff. Created attachment 258116 [details]
Patch
Comment on attachment 258116 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=258116&action=review r+me with a couple of comments. > Source/JavaScriptCore/ChangeLog:13 > + - EmulatedTailCall and EmulatedTailCallVarargs are here to perform a What about changing Emulated* to Inlined*? > Source/JavaScriptCore/dfg/DFGOSRExitCompilerCommon.cpp:139 > + // FIXME: We shouldn't leave holes on the stack when performing an OSR exit Please add a bug for the FIXME > Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:881 > + m_jit.breakpoint(); This should only be for debug builds. > Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:842 > + m_jit.breakpoint(); Ditto (In reply to comment #5) > Comment on attachment 258116 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=258116&action=review > > r+me with a couple of comments. > > > Source/JavaScriptCore/ChangeLog:13 > > + - EmulatedTailCall and EmulatedTailCallVarargs are here to perform a > > What about changing Emulated* to Inlined*? I find InlinedTailCall to be confusing since the tail call itself is not inlined, it is inside an inlined function. And TailCallInsideAnInlinedFunction is not great either. But I'm open to suggestions. > > Source/JavaScriptCore/dfg/DFGOSRExitCompilerCommon.cpp:139 > > + // FIXME: We shouldn't leave holes on the stack when performing an OSR exit > > Please add a bug for the FIXME Oops, thought I did that already. I'll add it. (In reply to comment #6) > (In reply to comment #5) > > Comment on attachment 258116 [details] > > > Source/JavaScriptCore/ChangeLog:13 > > > + - EmulatedTailCall and EmulatedTailCallVarargs are here to perform a > > > > What about changing Emulated* to Inlined*? > > I find InlinedTailCall to be confusing since the tail call itself is not > inlined, it is inside an inlined function. And > TailCallInsideAnInlinedFunction is not great either. But I'm open to > suggestions. What about TailCallInlinedCaller? Committed r187791 <https://trac.webkit.org/changeset/187791>. |