Open Bug 824622 Opened 8 years ago Updated 3 years ago

IonMonkey: Enable inlined arguments_get_elem


(Core :: JavaScript Engine, defect)

Not set




(Reporter: h4writer, Assigned: h4writer)


(Blocks 1 open bug)



(2 files, 1 obsolete file)

Currently an inlined arguments_get_elem isn't supported. That is because the arguments aren't on the stack and therefore we cannot recover them. Note that we do know the arguments when building the graph. Not sure what the best plan of attack would be, but I heard V8 just created a real array with the values in it and do a normal get elem on.

Looks hard, but would enable us to inline 909 and 785 in earley-boyer (once we enable loop inlining, bug 768288)
Blocks: 765980
It is actually really easy to do this for constant index, because we have the argument definitions of the inlined call. (I'll probably get this in early, but patch is currently untested). Part 2 will be the real deal.
Assignee: general → hv1989
Attached patch modified earley-boyer (obsolete) — Splinter Review
I made a small patch to earley-boyer see what would happen if we could always inline calls to sc_append and sc_list. It only improved our score by about 2%, so inlining arguments is probably not worth working on just yet.

Some more data: earley-boyer is really two separate benchmarks run in sequence, and boyer takes about 15X longer to run than earley.. This patch would actually improve earley by about 2X, but the win is drowned out by how long we spend in boyer.
Attached patch actual e-b patchSplinter Review
Whoops, I had that wrong, boyer runs about 4.5X longer than earley. Fixing this bug would make earley about 3X faster, but our earley-boyer score is basically unchanged.
Attachment #699482 - Attachment is obsolete: true
Depends on: 886241
You need to log in before you can comment on or make changes to this bug.