Bug 209327 - [JSC] DFG OSR exit cannot find StructureStubInfo for put_by_val if CodeBlock is once converved from Baseline to LLInt
Summary: [JSC] DFG OSR exit cannot find StructureStubInfo for put_by_val if CodeBlock ...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: New Bugs (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Yusuke Suzuki
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2020-03-20 00:53 PDT by Yusuke Suzuki
Modified: 2020-03-23 14:09 PDT (History)
7 users (show)

See Also:


Attachments
Patch (13.47 KB, patch)
2020-03-20 00:56 PDT, Yusuke Suzuki
saam: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Yusuke Suzuki 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
Comment 1 Yusuke Suzuki 2020-03-20 00:56:16 PDT
Created attachment 394071 [details]
Patch
Comment 2 Yusuke Suzuki 2020-03-20 00:56:18 PDT
<rdar://problem/60631061>
Comment 3 Saam Barati 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?
Comment 4 Yusuke Suzuki 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.
Comment 5 Yusuke Suzuki 2020-03-23 14:09:27 PDT
Committed r258874: <https://trac.webkit.org/changeset/258874>