Summary: | Optimize compareStrictEq when neither side is a double and at least one is neither a string nor a BigInt | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Robin Morisset <rmorisset> | ||||||||||
Component: | JavaScriptCore | Assignee: | Robin Morisset <rmorisset> | ||||||||||
Status: | RESOLVED FIXED | ||||||||||||
Severity: | Normal | CC: | ews-watchlist, fpizlo, 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=226755 | ||||||||||||
Bug Depends on: | |||||||||||||
Bug Blocks: | 226786, 227119 | ||||||||||||
Attachments: |
|
Description
Robin Morisset
2021-06-04 22:06:13 PDT
Created attachment 430646 [details]
Patch
Comment on attachment 430646 [details]
Patch
I just realized that the optimization is wrong in the case of HeapBigInt/BigInt32 if they are allowed to be equal.
I will put a guard with #if !USE(BIGINT32) around the part in DFGFixupPhase, then whenever I restore BIGINT32 I will have to either fix this optimization, or (more and more likely in my opinion) add an invariant that we never have small HeapBigInts when BigInt32 are available.
Comment on attachment 430646 [details]
Patch
I've also clearly broken the build on 32-bits, so taking this off the r? flag until I have fixed both problems.
Created attachment 430649 [details]
Patch
Created attachment 430651 [details]
Patch
Another attempt at fixing the 32-bit build.
Created attachment 430654 [details]
Patch
Fixing yet another issue with 32-bits builds.
Committed r278568 (238566@main): <https://commits.webkit.org/238566@main> All reviewed patches have been landed. Closing bug and clearing flags on attachment 430654 [details]. |