Closed
Bug 715511
Opened 14 years ago
Closed 14 years ago
IonMonkey: type based fast paths for GETPROP and SETPROP
Categories
(Core :: JavaScript Engine, defect)
Tracking
()
RESOLVED
FIXED
People
(Reporter: bhackett1024, Assigned: bhackett1024)
References
Details
Attachments
(1 file, 1 obsolete file)
22.89 KB,
patch
|
dvander
:
review+
|
Details | Diff | Splinter Review |
JM+TI has paths in GETPROP and SETPROP for object accesses on a known slot, and GETPROP paths which fetch a statically known value. These should be simple to port to IM.
Assignee | ||
Comment 1•14 years ago
|
||
Assignee | ||
Comment 2•14 years ago
|
||
Needs bug 713526 for cross-assembler methods for storing values.
Depends on: 713526
Assignee | ||
Comment 4•14 years ago
|
||
Assignee: general → bhackett1024
Attachment #588399 -
Attachment is obsolete: true
Attachment #589882 -
Flags: review?(dvander)
Comment on attachment 589882 [details] [diff] [review]
patch (66106b3ac316)
Review of attachment 589882 [details] [diff] [review]:
-----------------------------------------------------------------
::: js/src/ion/IonBuilder.cpp
@@ +2773,5 @@
> + return true;
> + if (object && object->proto) {
> + if (!TestSingletonProperty(cx, object->proto, id, isKnownConstant))
> + return false;
> + if (isKnownConstant) {
Should this be: |if (*isKnownConstant)| ?
@@ +3295,5 @@
> +
> + if (isKnownConstant) {
> + if (testObject) {
> + MUnbox *unbox = MUnbox::New(obj, MIRType_Object, MUnbox::Fallible);
> + unbox->setGuard();
Two comments here:
(1) Let's add an MUnbox::Guard variant that is the same as Fallible but sets the guard bit automatically.
(2) Is it okay to insert an MUnbox here? If the incoming IR node is not a Value, it will assert or break.
If that's possible, MUnbox should implement BoxInputsPolicy.
@@ +3357,5 @@
> +#endif
> +
> + TypeOracle::BinaryTypes binaryTypes = oracle->binaryTypes(script, pc);
> +
> + if (!monitored && !barrier) {
It should be okay to generate this with barrier==true. We don't generate write barriers yet so nothing will go wrong. (Adding them is on my todo list.)
::: js/src/ion/MIR.h
@@ +2236,5 @@
> + return slot_;
> + }
> +};
> +
> +class MStoreFixedSlot : public MBinaryInstruction, public ObjectPolicy
This and MLoadFixedSlot should return explicit AliasSets.
Attachment #589882 -
Flags: review?(dvander) → review+
Assignee | ||
Comment 6•14 years ago
|
||
Status: NEW → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•