Optimise ArraySlice in CacheIR and Warp
Categories
(Core :: JavaScript Engine: JIT, task)
Tracking
()
Tracking | Status | |
---|---|---|
firefox81 | --- | fixed |
People
(Reporter: anba, Assigned: anba)
References
Details
Attachments
(3 files)
Assignee | ||
Comment 1•5 years ago
|
||
Optimise Array.prototype.slice for packed arrays in CacheIR and Warp. Ion
also optimises slice()
for non-packed arrays, but unless non-packed arrays
actually appear in user code, only optimising packed arrays should be okay
for now.
The second argument to slice()
defaults to the array length, which means
we need a non-result version of LoadInt32ArrayLength
.
Drive-by change:
- Move
IonCacheIRCompiler::emitArrayPush
to the bottom of the file,
next to the other non-implemented methods. Also change from
MOZ_ASSERT_UNREACHABLE
toMOZ_CRASH
for consistency.
Assignee | ||
Comment 2•5 years ago
|
||
Noticed while working on ArraySlice that ArrayPush and ArrayJoin have
unnecessary rooting. Also found some other places where rooting can
be omitted.
Depends on D86532
Assignee | ||
Comment 3•5 years ago
|
||
Calling String()
shouldn't create a template object.
Depends on D86533
Comment 5•5 years ago
|
||
Backed out for perma failures.
Log: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=312924459&repo=autoland&lineNumber=2759
Backout: https://hg.mozilla.org/integration/autoland/rev/06e4f8547d78187f934074b2b4ff4d4d4d12efd5
Assignee | ||
Updated•5 years ago
|
Comment 7•5 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/75d3ba32d90a
https://hg.mozilla.org/mozilla-central/rev/5e227e32ff86
https://hg.mozilla.org/mozilla-central/rev/37746b10f75c
Description
•