On 06/17/2011 11:50 AM, Christian Thalinger wrote:

[...]

>> I wonder if I haven't introduce a bug in my logic,
>> there is a the boxing/unboxing of the return value of the test that
>> should not occur.
>> Question, does EA is also disable when MH.invokeExact is called  ?
> Yes, as MH.invokeExact is a native method:
>
> [EA] computing results for java/lang/invoke/MethodHandle.invokeExact
> Skipping method because: method is native.
>
> There needs to be special machinery to handle that case.
>
>>   @ 34   java.lang.Boolean::valueOf (14 bytes)   inline (hot)
>>   @ 43   java.lang.invoke.MethodHandle::invokeExact (26 bytes)   inline (hot)
>>     @ 11   java.lang.Boolean::booleanValue (5 bytes)   inline (hot)
>>
>>
>> I will check my code.
>>
>>> Hmm.  I'm a little curious about how fallbackOpLeft becomes the fallback 
>>> path.  Usually this is/was done with a guardWithTest.  Is selectAlternative 
>>> doing this?
>> isSelectAlternative is the internal method called when you create a
>> guardWithTest
>> with ricochet frame enabled.
> I see.
>
>>> I think what's happening here is, we propagate the call site count from the 
>>> hIot MH call site to all its callees through the MH chain and since 
>>> fallbackOpLeft is in there it gets the same call site count making it hot, 
>>> while actually it isn't.
>> Yes, one solution is to always set the fallback as cold.
>> A better solution is to record the usage of each branch when interpreted.
> We do that.  I'm just not sure how to get to that information from the method 
> handle compiler.

Sorry, I was thinking recording which branch of the GWT is taken and 
storing them in the GWT.
Two GWTs should not share the same metadata.
> -- Christian

Rémi

_______________________________________________
mlvm-dev mailing list
mlvm-dev@openjdk.java.net
http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev

Reply via email to