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.
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.
Created attachment 643459 [details] [diff] [review]
Change IonBuilder to use PolyInlineDispatch instruction.
Created attachment 643460 [details] [diff] [review]
Remove InlineFunctionGuard instruction.
Is this done (FIXED)?
It's checked in to the Ion branch. I was just waiting on tbpl before closing.