Bug 186721 - [DFG] Reduce OSRExit for Kraken/crypto-aes due to CoW array
Summary: [DFG] Reduce OSRExit for Kraken/crypto-aes due to CoW array
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: 2018-06-16 08:17 PDT by Yusuke Suzuki
Modified: 2018-06-20 06:40 PDT (History)
7 users (show)

See Also:


Attachments
Patch (6.61 KB, patch)
2018-06-16 08:22 PDT, Yusuke Suzuki
no flags Details | Formatted Diff | Diff
Patch (8.84 KB, patch)
2018-06-16 08:43 PDT, Yusuke Suzuki
keith_miller: 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 2018-06-16 08:17:36 PDT
[DFG] Reduce OSRExit for Kraken/crypto-aes due to CoW array
Comment 1 Yusuke Suzuki 2018-06-16 08:22:37 PDT
Created attachment 342879 [details]
Patch
Comment 2 Yusuke Suzuki 2018-06-16 08:43:15 PDT
Created attachment 342880 [details]
Patch
Comment 3 Keith Miller 2018-06-16 09:29:35 PDT
Comment on attachment 342880 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=342880&action=review

r=me.

> Source/JavaScriptCore/runtime/CommonSlowPaths.cpp:1166
> +    ArrayAllocationProfile::updateLastAllocationFor(profile, result);

Ha, whoops! I think I removed that to test something and forgot to put it back later...
Comment 4 Yusuke Suzuki 2018-06-16 09:33:31 PDT
Comment on attachment 342880 [details]
Patch

Yeah, we still have one more OSRExit, which is caused by Array#slice lookup. Personally, I think this can be fixed Fil's CreateThis's GetById extension, but idk.
Comment 5 Yusuke Suzuki 2018-06-16 09:34:03 PDT
Committed r232904: <https://trac.webkit.org/changeset/232904>
Comment 6 Radar WebKit Bug Importer 2018-06-16 09:35:18 PDT
<rdar://problem/41187936>
Comment 7 Guillaume Emont 2018-06-20 06:40:10 PDT
Since this change, stress/cow-convert-double-to-contiguous.js and stress/cow-convert-int32-to-contiguous.js fail on all 32-bit platforms. I'm trying to understand why.