Closed
Bug 1039607
Opened 10 years ago
Closed 10 years ago
Escape Analysis: Support dynamic property on NewObjects.
Categories
(Core :: JavaScript Engine: JIT, defect)
Core
JavaScript Engine: JIT
Tracking
()
RESOLVED
FIXED
mozilla34
People
(Reporter: nbp, Assigned: nbp)
References
Details
Attachments
(1 file)
6.45 KB,
patch
|
h4writer
:
review+
|
Details | Diff | Splinter Review |
This was part of Bug 992845, but as the patch got r+ and the implementation was wrong I stripped the implementation from the previous patch such as it can land without dynamic slot support.
Assignee | ||
Comment 1•10 years ago
|
||
This patch adds support for MSlots, MGuardShape, MLoadSlot, MStoreSlot when
we are escaping objects. The test case ensure that we can correctly recover
the right values after the bailout, by reading both fixed slots and dynamic
slots.
Attachment #8457918 -
Flags: review?(hv1989)
Comment 2•10 years ago
|
||
Comment on attachment 8457918 [details] [diff] [review]
Scalar Replacement support dynamic slots.
Review of attachment 8457918 [details] [diff] [review]:
-----------------------------------------------------------------
::: js/src/jit/ScalarReplacement.cpp
@@ +83,5 @@
> return true;
> +
> + case MDefinition::Op_Slots: {
> +#ifdef DEBUG
> + // By construction, MSlots is only used by MStoreSlot and MLoadSlot.
// Assert that MSlots are only used by MStoreSlot and MLoadSlot.
@@ +87,5 @@
> + // By construction, MSlots is only used by MStoreSlot and MLoadSlot.
> + MSlots *ins = def->toSlots();
> + MOZ_ASSERT(ins->object() != 0);
> + for (MUseIterator i(ins->usesBegin()); i != ins->usesEnd(); i++) {
> + // MSlots are not catured by resume points.
// toDefinition should normally never fail, since they don't get captured by resume points.
Attachment #8457918 -
Flags: review?(hv1989) → review+
Assignee | ||
Comment 3•10 years ago
|
||
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla34
You need to log in
before you can comment on or make changes to this bug.
Description
•