Bug 209327

Summary: [JSC] DFG OSR exit cannot find StructureStubInfo for put_by_val if CodeBlock is once converved from Baseline to LLInt
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 saam: review+

Yusuke Suzuki
Reported 2020-03-20 00:53:30 PDT
[JSC] DFG OSR exit cannot find StructureStubInfo for put_by_val if CodeBlock is once converved from Baseline to LLInt
Attachments
Patch (13.47 KB, patch)
2020-03-20 00:56 PDT, Yusuke Suzuki
saam: review+
Yusuke Suzuki
Comment 1 2020-03-20 00:56:16 PDT
Yusuke Suzuki
Comment 2 2020-03-20 00:56:18 PDT
Saam Barati
Comment 3 2020-03-23 13:00:37 PDT
Comment on attachment 394071 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=394071&action=review > Source/JavaScriptCore/ChangeLog:15 > + 3. Since (A) collects enough information for put_by_val, (B) can get StructureStubInfo from (A) and copmile it as inlined Setter call. copmile => compile > Source/JavaScriptCore/ChangeLog:20 > + We should just link to doneTarget of ByValInfo when the SetterCall is generated by `op_put_by_val`. ByValInfo and its doneTarget always exists per op_put_by_val. nice. Once we make put_by_val SSI based, this will just go away too > Source/JavaScriptCore/dfg/DFGOSRExitCompilerCommon.cpp:216 > + StructureStubInfo* stubInfo = baselineCodeBlockForCaller->findStubInfo(CodeOrigin(callBytecodeIndex)); move this after the if?
Yusuke Suzuki
Comment 4 2020-03-23 14:06:51 PDT
Comment on attachment 394071 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=394071&action=review >> Source/JavaScriptCore/ChangeLog:15 >> + 3. Since (A) collects enough information for put_by_val, (B) can get StructureStubInfo from (A) and copmile it as inlined Setter call. > > copmile => compile Fixed. >> Source/JavaScriptCore/ChangeLog:20 >> + We should just link to doneTarget of ByValInfo when the SetterCall is generated by `op_put_by_val`. ByValInfo and its doneTarget always exists per op_put_by_val. > > nice. Once we make put_by_val SSI based, this will just go away too Yeah, right. >> Source/JavaScriptCore/dfg/DFGOSRExitCompilerCommon.cpp:216 >> + StructureStubInfo* stubInfo = baselineCodeBlockForCaller->findStubInfo(CodeOrigin(callBytecodeIndex)); > > move this after the if? Nice catch. Fixed.
Yusuke Suzuki
Comment 5 2020-03-23 14:09:27 PDT
Note You need to log in before you can comment on or make changes to this bug.