Closed Bug 1636916 Opened 5 years ago Closed 4 years ago

Optimize branchValueIsNurseryCell

Categories

(Core :: JavaScript Engine: JIT, task)

task
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla78
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

Also add ValueOperand overloads on 64-bit platforms.

A later patch will also call this for the post barrier.

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

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
Blocks: 1638246
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: