Bug 238176

Summary: [JSC] Use Data CallIC in unlinked DFG
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   
Attachments:
Description Flags
Patch
none
Patch
none
Patch
ews-feeder: commit-queue-
Patch
none
Patch
none
Patch
none
Patch saam: review+

Yusuke Suzuki
Reported 2022-03-21 17:51:00 PDT
[JSC] Use Data CallIC in unlinked DFG
Attachments
Patch (24.46 KB, patch)
2022-03-21 17:51 PDT, Yusuke Suzuki
no flags
Patch (24.46 KB, patch)
2022-03-23 15:07 PDT, Yusuke Suzuki
no flags
Patch (25.26 KB, patch)
2022-03-23 18:10 PDT, Yusuke Suzuki
ews-feeder: commit-queue-
Patch (25.19 KB, patch)
2022-03-23 18:51 PDT, Yusuke Suzuki
no flags
Patch (27.76 KB, patch)
2022-03-24 03:33 PDT, Yusuke Suzuki
no flags
Patch (28.16 KB, patch)
2022-03-24 14:36 PDT, Yusuke Suzuki
no flags
Patch (28.93 KB, patch)
2022-03-24 17:12 PDT, Yusuke Suzuki
saam: review+
Yusuke Suzuki
Comment 1 2022-03-21 17:51:16 PDT
Yusuke Suzuki
Comment 2 2022-03-23 15:07:30 PDT
Yusuke Suzuki
Comment 3 2022-03-23 18:10:37 PDT
Yusuke Suzuki
Comment 4 2022-03-23 18:51:02 PDT
Yusuke Suzuki
Comment 5 2022-03-24 03:33:14 PDT
Yusuke Suzuki
Comment 6 2022-03-24 14:36:31 PDT
Yusuke Suzuki
Comment 7 2022-03-24 17:12:55 PDT
Saam Barati
Comment 8 2022-03-24 18:51:51 PDT
Comment on attachment 455709 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=455709&action=review r=me with comments > Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:836 > + GPRTemporary callLinkInfoTemp(this, JITCompiler::selectScratchGPR(calleeGPR, GPRInfo::regT0)); This looks wrong to me. I think we want this GPRTemporary to stay around longer than the scope of this if statement, otherwise we might reuse this register. > Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:889 > + GPRTemporary callLinkInfoTemp(this, JITCompiler::selectScratchGPR(calleeGPR, GPRInfo::regT0)); This looks wrong to me. I think we want this GPRTemporary to stay around longer than the scope of this if statement, otherwise we might reuse this register.
Yusuke Suzuki
Comment 9 2022-03-24 23:13:34 PDT
Comment on attachment 455709 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=455709&action=review >> Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:836 >> + GPRTemporary callLinkInfoTemp(this, JITCompiler::selectScratchGPR(calleeGPR, GPRInfo::regT0)); > > This looks wrong to me. I think we want this GPRTemporary to stay around longer than the scope of this if statement, otherwise we might reuse this register. Discussed with Saam. This is intentional one to allocate non-callee-save register from DFG register bank. >> Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:889 >> + GPRTemporary callLinkInfoTemp(this, JITCompiler::selectScratchGPR(calleeGPR, GPRInfo::regT0)); > > This looks wrong to me. I think we want this GPRTemporary to stay around longer than the scope of this if statement, otherwise we might reuse this register. Ditto.
Yusuke Suzuki
Comment 10 2022-03-25 12:09:00 PDT
Radar WebKit Bug Importer
Comment 11 2022-03-25 12:09:16 PDT
Note You need to log in before you can comment on or make changes to this bug.