Last Comment Bug 775186 - IonMonkey: Change polymorphic inlining to use single instruction instead of chained guards
: IonMonkey: Change polymorphic inlining to use single instruction instead of c...
Status: RESOLVED FIXED
:
Product: Core
Classification: Components
Component: JavaScript Engine (show other bugs)
: unspecified
: x86 Mac OS X
: -- normal (vote)
: ---
Assigned To: Kannan Vijayan [:djvj]
:
Mentors:
Depends on:
Blocks: 772049 770309
  Show dependency treegraph
 
Reported: 2012-07-18 10:59 PDT by Kannan Vijayan [:djvj]
Modified: 2012-07-19 07:24 PDT (History)
2 users (show)
See Also:
Crash Signature:
(edit)
QA Whiteboard:
Iteration: ---
Points: ---
Has Regression Range: ---
Has STR: ---


Attachments
Add PolyInlineDispatch instruction (10.04 KB, patch)
2012-07-18 11:09 PDT, Kannan Vijayan [:djvj]
no flags Details | Diff | Splinter Review
Change IonBuilder to use PolyInlineDispatch instruction. (17.97 KB, patch)
2012-07-18 11:09 PDT, Kannan Vijayan [:djvj]
no flags Details | Diff | Splinter Review
Remove InlineFunctionGuard instruction. (10.36 KB, patch)
2012-07-18 11:10 PDT, Kannan Vijayan [:djvj]
no flags Details | Diff | Splinter Review

Description Kannan Vijayan [:djvj] 2012-07-18 10:59:54 PDT
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.
Comment 1 Kannan Vijayan [:djvj] 2012-07-18 11:09:28 PDT
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.
Comment 2 Kannan Vijayan [:djvj] 2012-07-18 11:09:52 PDT
Created attachment 643459 [details] [diff] [review]
Change IonBuilder to use PolyInlineDispatch instruction.
Comment 3 Kannan Vijayan [:djvj] 2012-07-18 11:10:16 PDT
Created attachment 643460 [details] [diff] [review]
Remove InlineFunctionGuard instruction.
Comment 4 Paul Wright 2012-07-18 15:47:57 PDT
Is this done (FIXED)?
Comment 5 Kannan Vijayan [:djvj] 2012-07-19 07:24:31 PDT
It's checked in to the Ion branch.  I was just waiting on tbpl before closing.

Note You need to log in before you can comment on or make changes to this bug.