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