Getting back into invokedynamic in JRuby

Christian Thalinger Christian.Thalinger at Sun.COM
Tue Mar 16 08:24:10 PDT 2010


On Mon, 2010-03-15 at 20:37 -0600, Charles Oliver Nutter wrote:
> I'm trying to find the right way to phrase my question to make sure I
> get the right answer...
> 
> 1. Do I need to use all direct method handles to get inlining from the
> caller to the callee?
> 2. If I have a Java method handle that does a MethodHandle.invoke call
> in its body, will that invoked handle get inlined all the way back for
> all callers?
> 3. Does the body of the method pointed at by a JavaMethodHandle get
> specialized for all call sites, so that it doesn't appear to be a
> single body of code with a megamorphic invocation of a separate
> handle?
> 
> Am I making my question clear enough?

I don't think I can really answer these questions, someone else can
probably do better.

> Also, additional questions:
> 
> 4. I still needed to bump up inlining budgets considerably to get
> anything to inline across the dynamic call. Will that always be the
> case, or is there still a plan to get dynamic call plumbing excluded
> from that budget?

We changed something about inlining depth, but you probably still have
to use InlineSmallCode to get all methods on the path inlined.

> 5. What can I do to investigate why current MLVM is, in all cases,
> slower than what we had last fall?

Look at the inline tree.  Is the slowdown happening with a particular
benchmark or with all of them?  We can have a look when you're online on
IRC again.

-- Christian



More information about the mlvm-dev mailing list