Optimize branchValueIsNurseryCell
Categories
(Core :: JavaScript Engine: JIT, task)
Tracking
()
Tracking | Status | |
---|---|---|
firefox78 | --- | fixed |
People
(Reporter: jandem, Assigned: jandem)
References
(Blocks 1 open bug)
Details
Attachments
(4 files)
Instead of checking for each of object/string/bigint, we can probably do better now by checking ValueLowerInclShiftedGCThingTag
Assignee | ||
Comment 1•3 years ago
|
||
Also add ValueOperand overloads on 64-bit platforms.
A later patch will also call this for the post barrier.
Assignee | ||
Comment 2•3 years ago
|
||
Depends on D74647
Assignee | ||
Comment 3•3 years ago
|
||
It's more efficient now to check for all GC things with a single branch instead of
checking for object/string/BigInt separately. This generates more compact code with
fewer branches and is also more maintainable.
Depends on D74648
Assignee | ||
Comment 4•3 years ago
|
||
Now that branchValueIsNurseryCell is as efficient as branchValueIsNurseryObject
we no longer need branchValueIsNurseryObject.
Depends on D74649
Pushed by jdemooij@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/faf97dd5d454 part 1 - Rename unboxGCThingForPreBarrierTrampoline to unboxGCThingForGCBarrier. r=jonco https://hg.mozilla.org/integration/autoland/rev/b1daef834436 part 2 - Add branchTestGCThing to the MacroAssembler. r=jonco https://hg.mozilla.org/integration/autoland/rev/dbeae9786627 part 3 - Optimize branchValueIsNurseryCell using branchTestGCThing. r=jonco https://hg.mozilla.org/integration/autoland/rev/af5b7413b762 part 4 - Use branchValueIsNurseryCell instead of branchValueIsNurseryObject. r=jonco
Comment 6•3 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/faf97dd5d454
https://hg.mozilla.org/mozilla-central/rev/b1daef834436
https://hg.mozilla.org/mozilla-central/rev/dbeae9786627
https://hg.mozilla.org/mozilla-central/rev/af5b7413b762
Description
•