Remove no longer used non-boxed output code in CacheIRCompiler
Categories
(Core :: JavaScript Engine: JIT, task)
Tracking
()
Tracking | Status | |
---|---|---|
firefox86 | --- | fixed |
People
(Reporter: anba, Assigned: anba)
Details
Attachments
(7 files)
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review |
There are a couple of if (!output.hasValue()) { ... }
blocks in CacheIRCompiler which are no longer taken, because the output is nowadays always boxed.
Assignee | ||
Comment 1•3 years ago
|
||
Get{Prop,Elem}{Super}
are now always using boxed outputs, so we can remove
the non-boxed output code for LoadDenseElementHoleResult and
LoadTypedArrayElementResult.
Assignee | ||
Comment 2•3 years ago
|
||
Get{Prop,Elem}{Super}
and Call
instructions are always using boxed results,
so instead of calling EmitStoreResult
we can directly call masm.tagValue()
.
Depends on D101185
Assignee | ||
Comment 3•3 years ago
|
||
Similar to part 2, we can directly call masm.tagValue()
instead of (sometimes!)
going through EmitStoreResult
.
Depends on D101186
Assignee | ||
Comment 4•3 years ago
|
||
Undefined/String/Symbol/Int32/BigInt results are always boxed, so we don't need
to go through EmitStoreResult
.
Drive-by change:
- Call
EmitStoreResult
forLoadObjectResult
.
Depends on D101187
Assignee | ||
Comment 5•3 years ago
|
||
Depends on D101188
Assignee | ||
Comment 6•3 years ago
|
||
Instead of relying on uint32_t(negative_int32)
being larger the ArrayBuffer
length, explicitly check for negative indices.
Depends on D101189
Assignee | ||
Comment 7•3 years ago
|
||
Code coverage showed we have no coverage for these instructions when running with ICs.
Depends on D101190
Pushed by rmaries@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/8c16133926f0 Part 1: Remove no longer used non-boxed output code for LoadDenseElementHoleResult and LoadTypedArrayElementResult. r=jandem https://hg.mozilla.org/integration/autoland/rev/1a07d40ea891 Part 2: Directly store boxed results in various GetProp/GetElem/Call CacheIR instructions. r=jandem https://hg.mozilla.org/integration/autoland/rev/05d7da0993b8 Part 3: Directly store result for unary/binary arithmetic as boxed value. r=jandem https://hg.mozilla.org/integration/autoland/rev/dfe94c90b6aa Part 4: Remove unreachable code from CacheIRCompiler::emitLoadXXXResult. r=jandem https://hg.mozilla.org/integration/autoland/rev/2e262a8ce00f Part 5: Remove method declarations without definitions. r=jandem https://hg.mozilla.org/integration/autoland/rev/b83ade0f6c64 Part 6: Make check for negative indices explicit. r=jandem https://hg.mozilla.org/integration/autoland/rev/cf1f775c0cdd Part 7: Ensure IonCacheIRCompiler has test coverage for GetPropSuper/OptimizeSpread/ToPropertyKey. r=jandem
Comment 9•3 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/8c16133926f0
https://hg.mozilla.org/mozilla-central/rev/1a07d40ea891
https://hg.mozilla.org/mozilla-central/rev/05d7da0993b8
https://hg.mozilla.org/mozilla-central/rev/dfe94c90b6aa
https://hg.mozilla.org/mozilla-central/rev/2e262a8ce00f
https://hg.mozilla.org/mozilla-central/rev/b83ade0f6c64
https://hg.mozilla.org/mozilla-central/rev/cf1f775c0cdd
Description
•