Reduce register usage in LIsNullOrLikeUndefinedV, LNotV, and LIsNullOrLikeUndefinedV
Categories
(Core :: JavaScript Engine: JIT, enhancement, P1)
Tracking
()
Tracking | Status | |
---|---|---|
firefox101 | --- | fixed |
People
(Reporter: anba, Assigned: anba)
References
(Blocks 1 open bug)
Details
Attachments
(6 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 |
We can save 1-2 temp registers in these LIR nodes.
IIRC I saw some extra moves in µ-benchmarks which were caused by these unnecessary temp registers.
Assignee | ||
Comment 1•2 years ago
|
||
Split the strict equality case from LIsNullOrLikeUndefined(AndBranch)V
, which
saves two registers on 64-bit systems.
Assignee | ||
Comment 2•2 years ago
|
||
For the next patches, testValueTruthy
needs to work on Register
instead of
LDefinition*
.
Depends on D142954
Assignee | ||
Comment 3•2 years ago
|
||
We can use the output register as a temp register for testValueTruthy()
.
Depends on D142955
Assignee | ||
Comment 4•2 years ago
|
||
TI is gone.
Depends on D142956
Assignee | ||
Comment 5•2 years ago
|
||
We can use the output register as an additional temp register for
branchTestObjectEmulatesUndefined()
.
Depends on D142957
Assignee | ||
Comment 6•2 years ago
|
||
That way it matches the temp-unbox register use in LIsNullOrLikeUndefined(AndBranch)V
.
Depends on D142958
Updated•2 years ago
|
Pushed by andre.bargull@gmail.com: https://hg.mozilla.org/integration/autoland/rev/1696bfed1cc1 Part 1: Use no temp registers for strict equality against null or undefined. r=iain https://hg.mozilla.org/integration/autoland/rev/6b1882146ddb Part 2: Use registers instead of definitions for testValueTruthy. r=iain https://hg.mozilla.org/integration/autoland/rev/a2cc738fe932 Part 3: Reduce temp registers for LNotV. r=iain https://hg.mozilla.org/integration/autoland/rev/5f9460d2258f Part 4: Update a comment about TI. r=iain https://hg.mozilla.org/integration/autoland/rev/a5a909a61e2b Part 5: Reduce temp registers for LIsNullOrLikeUndefinedV. r=iain https://hg.mozilla.org/integration/autoland/rev/fc1c4e52f54f Part 6: Use temp-unbox registers for LNotV and LTestVAndBranch. r=iain
Comment 8•2 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/1696bfed1cc1
https://hg.mozilla.org/mozilla-central/rev/6b1882146ddb
https://hg.mozilla.org/mozilla-central/rev/a2cc738fe932
https://hg.mozilla.org/mozilla-central/rev/5f9460d2258f
https://hg.mozilla.org/mozilla-central/rev/a5a909a61e2b
https://hg.mozilla.org/mozilla-central/rev/fc1c4e52f54f
Description
•