Any chance you can share that patch with us? It'd give me some pointers 
into poking around JDK code, now that I learned how to build it...

On 04/23/2012 04:29 PM, Rémi Forax wrote:
> On 04/24/2012 12:57 AM, Kohsuke Kawaguchi wrote:
>>  On 04/23/2012 11:18 AM, Rémi Forax wrote:
>>>>   So again, I don't see how shifting from method handle tree to byte
>>>>   code generation would somehow make this non-issue.
>>>
>>>  In fact, it's easy to know that a.foo() is a boolean because
>>>  &&   can be only applied on booleans so the invokedynamic call
>>>  corresponding to a.foo() should return a boolean.
>>>     From the compiler perspective, you have to back-propagate
>>>  the excepted type from the root to the leaf.
>>
>>  Charles was alluding to the same thing, so I was thinking about this,
>>  and I think I understand it now.
>>
>>  That's a lot of optimization that I otherwise wouldn't have to do, if
>>  only boxed types and constant propagation worked well, but yeah, I see
>>  how it can work now.
>>
>>  Thanks for all the insights.
>
> BTW, I've patched the JIT to consider all final fields of a class of
> java/lang as truly final
> but that not enough for having the escape analysis to work with integers.
> It seems that because of the cache used in Integer.valueOf(), the JIT
> considers
> that the Integers are not escapable.
>
> Rémi
>
>


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

Reply via email to