Bug 210721

Summary: [JSC] LLInt slow path call should not have third argument
Product: WebKit Reporter: Yusuke Suzuki <ysuzuki>
Component: New BugsAssignee: Yusuke Suzuki <ysuzuki>
Status: RESOLVED FIXED    
Severity: Normal CC: ews-watchlist, keith_miller, mark.lam, msaboff, saam, tzagallo, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
See Also: https://bugs.webkit.org/show_bug.cgi?id=175454
Attachments:
Description Flags
Patch
none
Patch mark.lam: review+

Yusuke Suzuki
Reported 2020-04-19 08:16:56 PDT
[JSC] LLInt slow path call should not have third argument
Attachments
Patch (8.66 KB, patch)
2020-04-19 08:18 PDT, Yusuke Suzuki
no flags
Patch (9.76 KB, patch)
2020-04-19 08:26 PDT, Yusuke Suzuki
mark.lam: review+
Yusuke Suzuki
Comment 1 2020-04-19 08:18:12 PDT
Yusuke Suzuki
Comment 2 2020-04-19 08:26:21 PDT
Mark Lam
Comment 3 2020-04-19 08:56:34 PDT
Comment on attachment 396909 [details] Patch r=me
Saam Barati
Comment 4 2020-04-19 13:41:56 PDT
Comment on attachment 396909 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=396909&action=review Wasn’t the goal to speed this up though? > Source/JavaScriptCore/ChangeLog:8 > + LLInt callSlowPath does not work with third argument in Windows, CLoop etc. LLInt slow-path should not take third argument, Why doesn’t it work?
Mark Lam
Comment 5 2020-04-19 13:59:28 PDT
(In reply to Saam Barati from comment #4) > Comment on attachment 396909 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=396909&action=review > > Wasn’t the goal to speed this up though? > > > Source/JavaScriptCore/ChangeLog:8 > > + LLInt callSlowPath does not work with third argument in Windows, CLoop etc. LLInt slow-path should not take third argument, > > Why doesn’t it work? Because the CLoop is able to call arbitrary native functions. It needs to be taught how call a native function with different arguments. As for Windows, I suspect it is just a matter teaching it how to call with a 3rd argument due to ABI differences.
Mark Lam
Comment 6 2020-04-19 14:00:16 PDT
(In reply to Mark Lam from comment #5) > (In reply to Saam Barati from comment #4) > > Comment on attachment 396909 [details] > > Patch > > > > View in context: > > https://bugs.webkit.org/attachment.cgi?id=396909&action=review > > > > Wasn’t the goal to speed this up though? > > > > > Source/JavaScriptCore/ChangeLog:8 > > > + LLInt callSlowPath does not work with third argument in Windows, CLoop etc. LLInt slow-path should not take third argument, > > > > Why doesn’t it work? > > Because the CLoop is able to call arbitrary native functions. typo: I meant "is NOT able to"
Yusuke Suzuki
Comment 7 2020-04-19 16:50:45 PDT
I think this change does not introduce speed down in LLInt since LLInt is anyway loading metadata in asm side. For baseline, it would be possible that this causes speed down. I think in this case, the right thing is introducing JIT operation instead of sharing this with LLInt. I'll create a patch for Baseline after landing this to fix Windows.
Yusuke Suzuki
Comment 8 2020-04-19 16:53:45 PDT
Radar WebKit Bug Importer
Comment 9 2020-04-19 16:54:14 PDT
Note You need to log in before you can comment on or make changes to this bug.