On Jun 7, 2011, at 10:44 PM, Charles Oliver Nutter wrote:
> That's pretty much it. The test I ran looks like this:
>
> def foo
> 1
> end
>
> 100_000.times {
> foo
> }
>
>
> The body of the block passed to "times" jits (in Hotspot) and appears
> to inline the "foo" method just fine, but the body of the inlined
> "foo" logic contains that call I gisted in my earlier post.
>
> Looking at the PrintAssemblyOutput at the point of that suspicious callq:
<snip>
> Note that the output all indicates this is happening on line 2, which
> is the invokedynamic-based "getFixnum" logic for the literal "1".
>
> Is there something I'm doing wrong here?
Sorry I'm a bit behind but is this still a problem or have you fixed it already?
It looks like it works:
@ 24
java.lang.invoke.MethodHandle::invokeExact (32 bytes) inline (hot)
@ 28 constant::method__0$RUBY$foo (7
bytes) inline (hot)
\-> discounting inline depth
@ 1
java.lang.invoke.MethodHandle::invokeExact (9 bytes) inline (hot)
@ 2
sun.invoke.util.ValueConversions::identity (2 bytes) inline (hot)
\-> discounting inline depth
-- Christian
_______________________________________________
mlvm-dev mailing list
[email protected]
http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev