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

Reply via email to