Closed Bug 636219 Opened 9 years ago Closed 9 years ago

JM: Interpreter's useMethodJIT flag needs to be reset when entering a new function

Categories

(Core :: JavaScript Engine, defect)

defect
Not set

Tracking

()

RESOLVED FIXED

People

(Reporter: billm, Assigned: billm)

References

Details

(Whiteboard: fixed-in-tracemonkey)

Attachments

(1 file)

Bug 631951 introduced the useMethodJIT flag to the interpreter, which determines whether we should try to methodjit a function after enough back edges have been taken. This flag gets disabled if we try to methodjit and abort (due to code not handled by the mjit).

The problem is that this doesn't account for the fact that a single Interpret invocation can enter and exit functions many JS functions. We should be resetting the useMethodJIT flag each time. Otherwise we won't JIT enough stuff. This is causing a slowdown in bug 636096.
Attached patch patchSplinter Review
This patch adds a RESET_USE_METHODJIT macro that resets the flag. This macro gets called when we enter Interpret and any time we increment or decrement inlineCallCount.
Assignee: general → wmccloskey
Status: NEW → ASSIGNED
Attachment #514554 - Flags: review?(dvander)
Attachment #514554 - Flags: review?(dvander) → review+
http://hg.mozilla.org/mozilla-central/rev/d41da4931c34
Status: ASSIGNED → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.