Bug 146850

Summary: jsc-tailcall: Implement the tail call opcodes in the DFG
Product: WebKit Reporter: Basile Clement <basile_clement>
Component: JavaScriptCoreAssignee: 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 Flags
Patch
none
Patch msaboff: review+

Basile Clement
Reported 2015-07-10 12:38:57 PDT
...
Attachments
Patch (83.04 KB, patch)
2015-07-31 19:08 PDT, Basile Clement
no flags
Patch (83.06 KB, patch)
2015-08-03 14:42 PDT, Basile Clement
msaboff: review+
Basile Clement
Comment 1 2015-07-31 14:49:36 PDT
*** Bug 147198 has been marked as a duplicate of this bug. ***
Basile Clement
Comment 2 2015-07-31 19:08:34 PDT
Basile Clement
Comment 3 2015-07-31 19:40:31 PDT
Just realized this is missing callee save stuff.
Basile Clement
Comment 4 2015-08-03 14:42:45 PDT
Michael Saboff
Comment 5 2015-08-03 16:02:56 PDT
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
Basile Clement
Comment 6 2015-08-03 16:17:58 PDT
(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.
Michael Saboff
Comment 7 2015-08-03 16:37:42 PDT
(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?
Basile Clement
Comment 8 2015-08-04 10:50:52 PDT
Note You need to log in before you can comment on or make changes to this bug.