More performance explorations
Christian Thalinger
christian.thalinger at oracle.com
Fri Jun 10 15:32:03 PDT 2011
On Jun 5, 2011, at 7:23 AM, Charles Oliver Nutter wrote:
> OH, and FWIW, here's the LogCompilation -i output roughly around where
> I'd expect to see op_plus and op_lt inlining:
>
> @ 27 java.lang.invoke.MethodHandle::invokeExact (0 bytes)
> @ 27 java.lang.invoke.MethodHandle::invokeExact (17 bytes)
> @ 10 org.jruby.RubyFixnum::op_plus (38 bytes)
> @ 45 java.lang.invoke.MethodHandle::invokeExact (0 bytes)
> @ 45 java.lang.invoke.MethodHandle::invokeExact (17 bytes)
> @ 10 org.jruby.RubyFixnum::op_lt (22 bytes)
>
> Is it lying, or what? And if it's actually inlining, where's the rest
> of op_plus and op_lt, most of which is trivial tiny methods? And why
> doesn't it show up as inlined in the assembly output?
It inlines fine with the latest HotSpot and JDK7 b145. I think we're good :-)
@ 48 org.jruby.runtime.callsite.LtCallSite::call (67 bytes) inline (hot)
@ 11 org.jruby.Ruby::isFixnumReopened (5 bytes) inline (hot)
@ 24 org.jruby.RubyFixnum::op_lt (22 bytes) inline (hot)
@ 1 org.jruby.runtime.ThreadContext::getRuntime (5 bytes) inline (hot)
@ 18 org.jruby.RubyBoolean::newBoolean (16 bytes) inline (hot)
@ 5 org.jruby.Ruby::getTrue (5 bytes) inline (hot)
@ 12 org.jruby.Ruby::getFalse (5 bytes) inline (hot)
@ 63 org.jruby.runtime.callsite.CachingCallSite::call (17 bytes) never executed
@ 51 org.jruby.RubyBasicObject::isTrue (15 bytes) inline (hot)
@ 17 java.lang.invoke.MethodHandle::invokeExact (9 bytes) inline (hot)
@ 2 sun.invoke.util.ValueConversions::identity (2 bytes) inline (hot)
\-> discounting inline depth
@ 29 org.jruby.runtime.callsite.PlusCallSite::call (67 bytes) inline (hot)
@ 11 org.jruby.Ruby::isFixnumReopened (5 bytes) inline (hot)
@ 24 org.jruby.RubyFixnum::op_plus (38 bytes) inline (hot)
@ 15 org.jruby.RubyFixnum::additionOverflowed (27 bytes) inline (hot)
@ 24 org.jruby.RubyFixnum::addAsBignum (17 bytes) never executed
@ 29 org.jruby.runtime.ThreadContext::getRuntime (5 bytes) inline (hot)
@ 34 org.jruby.RubyFixnum::newFixnum (29 bytes) inline (hot)
@ 1 org.jruby.RubyFixnum::isInCacheRange (22 bytes) inline (hot)
@ 25 org.jruby.RubyFixnum::<init> (14 bytes) inline (hot)
@ 2 org.jruby.Ruby::getFixnum (5 bytes) inline (hot)
@ 5 org.jruby.RubyInteger::<init> (6 bytes) inline (hot)
@ 2 org.jruby.RubyNumeric::<init> (6 bytes) inline (hot)
@ 2 org.jruby.RubyObject::<init> (6 bytes) inline (hot)
@ 2 org.jruby.RubyBasicObject::<init> (17 bytes) inline (hot)
@ 1 java.lang.Object::<init> (1 bytes) inline (hot)
More information about the mlvm-dev
mailing list