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•3 years ago
|
||
Split the strict equality case from LIsNullOrLikeUndefined(AndBranch)V
, which
saves two registers on 64-bit systems.
Assignee | ||
Comment 2•3 years ago
|
||
For the next patches, testValueTruthy
needs to work on Register
instead of
LDefinition*
.
Depends on D142954
Assignee | ||
Comment 3•3 years ago
|
||
We can use the output register as a temp register for testValueTruthy()
.
Depends on D142955
Assignee | ||
Comment 4•3 years ago
|
||
TI is gone.
Depends on D142956
Assignee | ||
Comment 5•3 years ago
|
||
We can use the output register as an additional temp register for
branchTestObjectEmulatesUndefined()
.
Depends on D142957
Assignee | ||
Comment 6•3 years ago
|
||
That way it matches the temp-unbox register use in LIsNullOrLikeUndefined(AndBranch)V
.
Depends on D142958
Updated•3 years ago
|
Comment 8•3 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
•