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