Improve JIT codegen for GC barriers a bit
Categories
(Core :: JavaScript Engine: JIT, task)
Tracking
()
Tracking | Status | |
---|---|---|
firefox110 | --- | fixed |
People
(Reporter: jandem, Assigned: jandem)
References
(Blocks 1 open bug)
Details
(Keywords: perf-alert, Whiteboard: [sp3])
Attachments
(2 files)
For example, to test if a Value
is a nursery cell, we can combine the unboxing with the chunk mask on 64-bit platforms.
Assignee | ||
Comment 1•2 years ago
|
||
This gets rid of an extra or-instruction on 64-bit platforms and simplifies
loading the store buffer.
Assignee | ||
Comment 2•2 years ago
|
||
We can use andPtr
with a 32-bit value because it's sign-extended. We already rely
on this in other places where we do similar masking.
On ARM64, use 3-operand And to avoid an extra register move.
Depends on D166137
Comment 4•2 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/5112c2428646
https://hg.mozilla.org/mozilla-central/rev/891c7d2112df
Comment 5•2 years ago
|
||
(In reply to Pulsebot from comment #3)
Pushed by jdemooij@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/5112c2428646
part 1 - Combine Value unboxing mask with ChunkMask for Value barriers in
JIT code. r=jonco
https://hg.mozilla.org/integration/autoland/rev/891c7d2112df
part 2 - Remove ChunkStoreBufferOffsetFromLastByte. r=jonco
== Change summary for alert #36720 (as of Thu, 12 Jan 2023 05:46:24 GMT) ==
Improvements:
Ratio | Test | Platform | Options | Absolute values (old vs new) | Performance Profiles |
---|---|---|---|---|---|
12% | assorted-dom | windows10-64-shippable-qr | fission webrender | 18.88 -> 16.58 | Before/After |
12% | assorted-dom | windows10-64-shippable-qr | fission webrender | 18.76 -> 16.60 | Before/After |
For up to date results, see: https://treeherder.mozilla.org/perfherder/alerts?id=36720
Updated•2 years ago
|
Updated•2 years ago
|
Updated•2 years ago
|
Description
•