JSR 292 x86 C1 support
Christian Thalinger
Christian.Thalinger at Sun.COM
Thu Jan 28 04:45:58 PST 2010
On Thu, 2010-01-28 at 12:15 +0100, Rémi Forax wrote:
> Le 28/01/2010 11:34, Christian Thalinger a écrit :
> > On Wed, 2010-01-27 at 17:59 +0100, Rémi Forax wrote:
> >
> >> Nice, it works well on some my small test suites (MethodHandle and indy).
> >>
> > Thanks for testing.
> >
> >
> >> About perf, dynamic calls are a little less efficient than their static
> >> couterparts,
> >> it seems that neither c1 nor c2 inline a method handle call or an
> >> invokedynamic.
> >> Should I have set these inline flags that are now in product VM ?
> >>
> > It's correct that C1 does not do inlining for MH call sites, but C2
> > should. Could you try to run with -XX:+PrintCompilation -XX:
> > +PrintInlining to see why the methods are not inlined?
> >
>
> With the test in attachment
> java -server -XX:+UnlockExperimentalVMOptions -XX:+EnableInvokeDynamic Test2
> (-server is jdk7b80 hs17)
>
> Clearly the method handle aren't inlined,
> PrintInlining give me some cryptic values (encoding problem I think),
> I've also testes with LogCompilation, I get:
>
> <bc code='182' bci='44'/>
> <type id='572' name='int'/>
> <method id='938' holder='691' name='invoke' return='572' arguments='572'
> flags='4369' bytes='0' iicount='1'/>
> <call method='938' count='11264' prof_factor='1' inline='1'/>
> <inline_depth_discount caller='905' callee='938'/>
> <direct_call bci='44'/>
> <uncommon_trap bci='44' reason='null_check' action='maybe_recompile'/>
>
> (and from javap)
> 44: invokevirtual #21 // Method
> java/dyn/MethodHandle.invoke:(I)I
>
> The whole log is is attachment, with the test.
Sorry, I didn't see the attachment with the previous email. I'll look
into it.
-- Christian
More information about the mlvm-dev
mailing list