Inlining
Christian Thalinger
Christian.Thalinger at Sun.COM
Tue Aug 18 11:02:48 PDT 2009
Raffaello Giulietti wrote:
> * Is there a special -XX: flag to turn on inlining of methods invoked
> via method handles?
> * Or must something be enabled during the build of mlvm?
No, inlining is enabled by default. Currently only DMH invokes are
inlined, but I'm working on inlining the rest. Are you missing specific
calls?
I wanted to write a status update anyway... Yesterday I could inline
for the first time a whole GuardWithTest calling sequence (with
adjusting some switches). The inlined sequence looks like this (methods
take one int argument and return an int):
1% b gwt::foo @ 6 (29 bytes)
@ 14 java.dyn.MethodHandle::invoke inline (hot)
@ 14 sun.dyn.ToGeneric$A1::invoke inline (hot)
@ 4 sun.dyn.ToGeneric$A1::invoke_I inline (hot)
@ 3 sun.dyn.ToGeneric$A1::targetA1 inline (hot)
@ 2 java.lang.Integer::valueOf inline (hot)
@ 50 java.lang.Integer::<init> inline (hot)
@ 1 java.lang.Number::<init> inline (hot)
@ 1 java.lang.Object::<init> inline (hot)
@ 5 sun.dyn.ToGeneric$A1::target inline (hot)
@ 9 java.dyn.MethodHandle::invoke inline (hot)
@ 9 java.dyn.MethodHandle::invoke inline (hot)
@ 4 java.dyn.MethodHandle::invoke inline (hot)
@ 4 sun.dyn.MethodHandleImpl$GuardWithTest::invoke
inline (hot)
@ 4
sun.dyn.MethodHandleImpl$GuardWithTest::invoke_L1 inline (hot)
@ 5 java.dyn.MethodHandle::invoke inline (hot)
@ 5 gwt::invoke inline (hot)
@ 16 java.lang.Integer::intValue inline (hot)
@ 23 gwt::test inline (hot)
@ 16 java.dyn.MethodHandle::invoke inline (hot)
@ 16 sun.dyn.FromGeneric$A1::invoke call site not
reached
@ 25 java.dyn.MethodHandle::invoke inline (hot)
@ 25 sun.dyn.FromGeneric$A1::invoke inline (hot)
@ 4 sun.dyn.FromGeneric$A1::invoke_I1 inline (hot)
@ 10 java.dyn.MethodHandle::invoke inline (hot)
@ 10 java.dyn.MethodHandle::invoke inline (hot)
@ 16 java.lang.Integer::intValue inline (hot)
@ 25 java.dyn.MethodHandle::invoke inline (hot)
@ 25 gwt::invoke inline (hot)
@ 2 gwt::fallback inline (hot)
@ 13 sun.dyn.FromGeneric$Adapter::convert_I
inline (hot)
@ 5 java.dyn.MethodHandle::invoke inline (hot)
@ 5 sun.dyn.util.ValueConversions::invoke
inline (hot)
@ 2
sun.dyn.util.ValueConversions::boxInteger inline (hot)
@ 1 java.lang.Integer::valueOf inline (hot)
@ 50 java.lang.Integer::<init> inline
(hot)
@ 1 java.lang.Number::<init> inline
(hot)
@ 1 java.lang.Object::<init>
inline (hot)
@ 6 sun.dyn.ToGeneric$Adapter::return_I inline (hot)
@ 5 java.dyn.MethodHandle::invoke inline (hot)
@ 5 sun.dyn.util.ValueConversions::invoke inline (hot)
@ 2 sun.dyn.util.ValueConversions::unboxInteger inline
(hot)
@ 10 java.lang.Integer::intValue inline (hot)
Currently hunting various bugs...
-- Christian
More information about the mlvm-dev
mailing list