On Thu, 2010-01-28 at 13:45 +0100, Christian Thalinger wrote: > Sorry, I didn't see the attachment with the previous email. I'll look > into it.
OK, I'm a bit puzzled. One obvious thing that does not work is that increment is a local variable. Inlining only works if the MH is a static or instance variable. Changing increment to be a final static and (now the puzzling part) using -XX:ScavengeRootsInCode=2 works: Direct (100000): 0 Handle (100000): 0 I thought that we already default to ScavengeRootsInCode=2, at least with MethodHandles enabled, but obviously we do not. It should also work as final non-static field and using -XX: +TrustFinalNonStaticFields. That switch does for user classes what happens per default for {java,sun}.dyn classes: we trust final non-static to be effectively final. But it does not work and I don't know yet why. -- Christian _______________________________________________ mlvm-dev mailing list mlvm-dev@openjdk.java.net http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev