selective inlining of MH.invokeExact() callsites

Christian Thalinger christian.thalinger at oracle.com
Wed May 9 14:01:19 PDT 2012


On May 9, 2012, at 11:15 AM, Rémi Forax wrote:

> On 05/09/2012 08:02 PM, Christian Thalinger wrote:
>> On May 8, 2012, at 2:11 AM, Garcia Gutierrez Miguel Alfredo wrote:
>> 
>>> What's the behavior of @ForceInlining , in particular for MethodHandle.invokeExact() ?
>> We introduced that annotation as an experiment for inlining exact invokers for LambdaForms (note:  LambdaForm is not directly related to Project Lambda).  The generated bytecode versions of these LFs are usually just argument shuffling or binding and calling the target.  We know that this code compiles down to almost nothing in native machine code and that's why we force them to inline.
>> 
>> The ForceInline annotation is a powerful tool which may produce bad results in the hands of costumers.  Currently we don't hide it completely from users but that might happen in the future.
> 
> and Christian correctly if I'm wrong but it only forces inlining when 
> the JIT is triggered.
> So using the annotation on something which is not called enough will do 
> nothing.

Correct.

> 
> As I said in an earlier mail, the golden hammer is the annotation
> PleaseJITThisCodeWithAPrivateMetaDataObjectNowAndReJITLaterWhenTheMethodOrTheLoopIsHot 

Also correct :-D

-- Chris

> 
> 
>> 
>> -- Chris
> 
> Rémi
> 
> _______________________________________________
> mlvm-dev mailing list
> mlvm-dev at openjdk.java.net
> http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev



More information about the mlvm-dev mailing list