Implement CanonicalNumericIndexString and use it for typed arrays
Categories
(Core :: JavaScript Engine, task, P3)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox72 | --- | fixed |
People
(Reporter: evilpies, Assigned: anba)
References
(Blocks 1 open bug)
Details
Attachments
(10 files, 1 obsolete file)
|
47 bytes,
text/x-phabricator-request
|
Details | Review | |
|
47 bytes,
text/x-phabricator-request
|
Details | Review | |
|
47 bytes,
text/x-phabricator-request
|
Details | Review | |
|
47 bytes,
text/x-phabricator-request
|
Details | Review | |
|
47 bytes,
text/x-phabricator-request
|
Details | Review | |
|
47 bytes,
text/x-phabricator-request
|
Details | Review | |
|
47 bytes,
text/x-phabricator-request
|
Details | Review | |
|
47 bytes,
text/x-phabricator-request
|
Details | Review | |
|
47 bytes,
text/x-phabricator-request
|
Details | Review | |
|
47 bytes,
text/x-phabricator-request
|
Details | Review |
Updated•10 years ago
|
Comment 1•10 years ago
|
||
Comment 2•10 years ago
|
||
Updated•10 years ago
|
| Assignee | ||
Updated•9 years ago
|
Comment 3•8 years ago
|
||
| Assignee | ||
Updated•8 years ago
|
| Reporter | ||
Comment 4•8 years ago
|
||
Updated•7 years ago
|
| Assignee | ||
Comment 6•7 years ago
|
||
The assertion should make it easier to see why no length checks are used and
will make it easier to remember updating this code if we ever remove flat
strings.
| Assignee | ||
Comment 7•7 years ago
|
||
Depends on D39034
| Assignee | ||
Comment 8•7 years ago
|
||
Part 5 will call this function.
Depends on D39035
| Assignee | ||
Comment 9•7 years ago
|
||
The next patch adds code which may fail on OOM, so StringIsTypedArrayIndex's
interface needs to be updated to allow passing on errors.
Depends on D39036
| Assignee | ||
Comment 10•7 years ago
|
||
Depends on D39037
| Assignee | ||
Comment 11•7 years ago
|
||
Depends on D39038
| Assignee | ||
Comment 12•7 years ago
|
||
The next parts use this constant in static_asserts.
Depends on D39039
| Assignee | ||
Comment 13•7 years ago
|
||
The definition of canonical numeric index strings means that any access into a TypedArray
with a Double index never reads from the prototype chain. Instead if the Double is not
representable as an Int32, the access is equivalent to an out-of-bounds access. That
means we can substitute any non-Int32 Double index with an arbitrary index which is OOB.
This helps to avoid deoptimising TypedArray accesses with non-Int32 Double values by
handling them as normal out-of-bounds accesses, which are already optimisable.
Depends on D39040
| Assignee | ||
Comment 14•7 years ago
|
||
Handle and report out-of-bounds accesses in SetPropIRGenerator to ensure Ion won't
repeatedly bailout when out-of-bounds accesses happen.
Depends on D39041
| Assignee | ||
Comment 15•7 years ago
|
||
That way CacheIR can still attach an IC and Baseline/Ion don't need to take the
slow path when a TypedArray access happens through a Double not representable as
an Int32.
Depends on D39043
| Assignee | ||
Comment 16•7 years ago
|
||
That way CacheIR can still attach an IC and Baseline/Ion don't need to take the
slow path when a TypedArray access happens through a Double not representable as
an Int32.
Depends on D39044
| Assignee | ||
Updated•7 years ago
|
Updated•7 years ago
|
Updated•7 years ago
|
Updated•7 years ago
|
Updated•7 years ago
|
Updated•7 years ago
|
Updated•7 years ago
|
Updated•7 years ago
|
Updated•7 years ago
|
Updated•7 years ago
|
Updated•7 years ago
|
Updated•7 years ago
|
| Assignee | ||
Comment 17•7 years ago
|
||
Filed bug 1573803 for Phabricator not displaying the change sets.
Updated•7 years ago
|
Comment 18•6 years ago
|
||
Hey I'm seeing this stack for the first time now because the patches are in draft state! Let me know if you want me to review :)
| Assignee | ||
Comment 19•6 years ago
|
||
I'll probably request review when the BigInt CacheIR changes have landed.
Updated•6 years ago
|
Updated•6 years ago
|
Updated•6 years ago
|
Updated•6 years ago
|
Updated•6 years ago
|
Updated•6 years ago
|
Updated•6 years ago
|
Updated•6 years ago
|
Updated•6 years ago
|
Updated•6 years ago
|
Updated•6 years ago
|
Comment 20•6 years ago
|
||
Comment 21•6 years ago
|
||
| bugherder | ||
https://hg.mozilla.org/mozilla-central/rev/eafcc6ace2fb
https://hg.mozilla.org/mozilla-central/rev/2c9bedcdac37
https://hg.mozilla.org/mozilla-central/rev/041413289d85
https://hg.mozilla.org/mozilla-central/rev/77c80b5f79ea
https://hg.mozilla.org/mozilla-central/rev/055d1cad290a
https://hg.mozilla.org/mozilla-central/rev/288125d24d23
https://hg.mozilla.org/mozilla-central/rev/825e8843d0b1
https://hg.mozilla.org/mozilla-central/rev/371d2efe156c
https://hg.mozilla.org/mozilla-central/rev/cbeae82d295c
https://hg.mozilla.org/mozilla-central/rev/7b07bb35e7b2
Description
•