IonMonkey: Enable inlined arguments_get_elem

NEW
Assigned to

Status

()

defect
6 years ago
2 years ago

People

(Reporter: h4writer, Assigned: h4writer)

Tracking

(Blocks 1 bug)

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(2 attachments, 1 obsolete attachment)

(Assignee)

Description

6 years ago
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)
(Assignee)

Updated

6 years ago
Blocks: 765980
(Assignee)

Comment 1

6 years ago
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
Posted 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.
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
(Assignee)

Updated

6 years ago
Depends on: 886241
You need to log in before you can comment on or make changes to this bug.