The default bug view has changed. See this FAQ.

IonMonkey: Change polymorphic inlining to use single instruction instead of chained guards

RESOLVED FIXED

Status

()

Core
JavaScript Engine
RESOLVED FIXED
5 years ago
5 years ago

People

(Reporter: djvj, Assigned: djvj)

Tracking

(Blocks: 1 bug)

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(3 attachments)

(Assignee)

Description

5 years ago
Poly inlining as currently implemented uses a chain of guard blocks - each guard block terminated with an InlineFunctionGuard instruction leading to either the inlined function entry, or to the next guard (or the final inlined function in the case of the final guard).

This approach is hard to reconcile with future changes we want to make to polymorphic inlining, including fusing of poly ICs with poly inlining (Bug 770309) and fallback paths for poly inlining (Bug 772049).

Change poly inlining implementation to use a single IR instruction to perform all guards and dispatch to the different inlined function entry blocks.
(Assignee)

Updated

5 years ago
Assignee: general → kvijayan
Blocks: 770309, 772049
(Assignee)

Comment 1

5 years ago
Created attachment 643458 [details] [diff] [review]
Add PolyInlineDispatch instruction

These patches were already posted and r+-ed in Bug 770309.  Just re-posting with edits here.
(Assignee)

Comment 2

5 years ago
Created attachment 643459 [details] [diff] [review]
Change IonBuilder to use PolyInlineDispatch instruction.
(Assignee)

Comment 3

5 years ago
Created attachment 643460 [details] [diff] [review]
Remove InlineFunctionGuard instruction.

Comment 4

5 years ago
Is this done (FIXED)?
(Assignee)

Comment 5

5 years ago
It's checked in to the Ion branch.  I was just waiting on tbpl before closing.
Status: NEW → RESOLVED
Last Resolved: 5 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.