| Summary: | [FTL] Have a more generic fast path for compareStrictEq on Untyped/Untyped in FTLLowerDFGToB3 | ||||||
|---|---|---|---|---|---|---|---|
| Product: | WebKit | Reporter: | Robin Morisset <rmorisset> | ||||
| Component: | JavaScriptCore | Assignee: | Robin Morisset <rmorisset> | ||||
| Status: | ASSIGNED --- | ||||||
| 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 | ||||||
| Attachments: |
|
||||||
|
Description
Robin Morisset
2021-06-03 14:41:04 PDT
Technically there already is a fast path, but only for Int32/Int32. Created attachment 430505 [details]
Patch
Comment on attachment 430505 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=430505&action=review > Source/JavaScriptCore/ChangeLog:23 > + if (isCell(left) && isCell(right)) Isn't the thing that requires the slow path that both left and right are either strings or bigints? Comment on attachment 430505 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=430505&action=review >> Source/JavaScriptCore/ChangeLog:23 >> + if (isCell(left) && isCell(right)) > > Isn't the thing that requires the slow path that both left and right are either strings or bigints? Yes, but checking whether a Cell is either a HeapBigInt or a String would be quite a bit of code, so I am approximating here (going to the slow path even for things like Object == Object). Note that I use the more precise condition when it comes to pruning that check with the abstract interpreter (so if we can prove it is Object == Object, we'll generate the ideal code without all of these checks). |