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 _______________________________________________ mlvm-dev mailing list mlvm-dev@openjdk.java.net http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev