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)

_______________________________________________
mlvm-dev mailing list
mlvm-dev@openjdk.java.net
http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev

Reply via email to