Closed
Bug 729920
Opened 13 years ago
Closed 13 years ago
IonMonkey: Increase maximum inlining depth
Categories
(Core :: JavaScript Engine, defect)
Core
JavaScript Engine
Tracking
()
RESOLVED
FIXED
People
(Reporter: jandem, Assigned: jandem)
References
(Blocks 1 open bug)
Details
Attachments
(1 file)
(deleted),
patch
|
dvander
:
review+
|
Details | Diff | Splinter Review |
Attached patch increases the limit from 1 to 2. We want this for v8-richards (it doesn't need inlining of polymorphic calls after all). Still a bit slower than JM+TI, I think because we need support for constructors.
Not sure what to do with recursive calls though. JM+TI and V8 seem to never inline them, but on some micro-benchmarks I tried, inlining them can be a win. So this patch restricts recursive calls to one level to avoid a small controlflow-recursive regression.
Patch does not seem to affect Kraken or Sunspider.
Attachment #599976 -
Flags: review?(dvander)
Comment on attachment 599976 [details] [diff] [review]
Patch
Review of attachment 599976 [details] [diff] [review]:
-----------------------------------------------------------------
How far does JM+TI inline?
Attachment #599976 -
Flags: review?(dvander) → review+
Assignee | ||
Comment 2•13 years ago
|
||
(In reply to David Anderson [:dvander] from comment #1)
>
> How far does JM+TI inline?
I'm not sure, it seems to be based on the frame/stack size, but JM+TI can inline at least two levels, I noticed this when looking at v8-richards and that's why I filed this bug. Brian, do you know how many calls JM+TI usually inlines?
http://hg.mozilla.org/projects/ionmonkey/rev/d85d37012447
Status: ASSIGNED → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
Comment 3•13 years ago
|
||
Yeah, I think the reserved stack space for inlining is the only limiter for depth, which could go pretty deep. More of an oversight really, in practice I think it would be hard to get more than 2 or 3 levels deep.
You need to log in
before you can comment on or make changes to this bug.
Description
•