Closed Bug 564949 Opened 14 years ago Closed 14 years ago

Emit new opcodes that predict free variables as being on the global object

Categories

(Core :: JavaScript Engine, defect)

x86
Linux
defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: dvander, Assigned: dvander)

References

Details

Attachments

(1 file)

Free variable references that are not polluted by eval/with, and cannot otherwise be shadowed by anything on the scope chain, will always be a ReferenceError or resolved on the global object.

We would like to create new opcodes, or annotations for the existing *GLOBAL* opcodes, so the method JIT can create monomorphic inline caches for such free references.
Assignee: general → dvander
Attached patch wipSplinter Review
removes gvar ops. adds new GNAME ops which act like NAME ops, except the object is predicted to be the global object. this is forced both in the interpreter and tracer for good measure, though is technically not needed.

a testament to our def-use chains, all this patch really does is rewrite NAME ops in BindNameToSlot, and passes reftests and trace-tests. this might not be the right approach, but it's enough to start adding monomorphic PICs to JM.
Comment on attachment 445280 [details] [diff] [review]
wip

About to try monomorphic ICs on JM. Brendan, any thoughts on whether these parser changes are on the right track?
Attachment #445280 - Flags: feedback?
Attachment #445280 - Flags: feedback? → feedback?(brendan)
Is this bug still valid?

/be
(In reply to comment #3)

It landed on JM a while ago as: http://hg.mozilla.org/users/danderson_mozilla.com/moo/rev/986b89529822

I'd still appreciate your feedback but I think it can be marked as FIXED, no big motivation to pre-land on TM with JM landing in sight.
Status: NEW → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
Attachment #445280 - Flags: feedback?(brendan)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: