JSR 292 x86 C1 support

Christian Thalinger Christian.Thalinger at Sun.COM
Thu Jan 28 05:07:03 PST 2010


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



More information about the mlvm-dev mailing list