Another paper on invokedynamic
Rémi Forax
forax at univ-mlv.fr
Tue Sep 28 01:00:45 PDT 2010
Le 28/09/2010 03:57, Chanwit Kaewkasi a écrit :
> Hi Rémi,
>
> On Mon, Sep 27, 2010 at 21:30, Rémi Forax<forax at univ-mlv.fr> wrote:
>> Le 27/09/2010 15:20, Christian Thalinger a écrit :
>>> On Mon, 2010-09-27 at 19:52 +0700, Chanwit Kaewkasi wrote:
>>>> I hope you find it useful somehow and any feedback is very welcome!
>>>>
>>>> http://dl.dropbox.com/u/381580/vmil10_kaewkasi_revised.pdf
>>> Nice read. It would be very interesting why Monte Carlo behaves like
>>> that. Did you look closer at it?
>> I've done the same kind of test, not on SciMark 2.0 but on DaCapo
> Glad to hear that you tried transforming DaCapo as well.
> How did you overcome the limitation that primitives must follow references:
>
> http://mail.openjdk.java.net/pipermail/mlvm-dev/2010-July/001875.html
>
> or probably I missed somethings in the recent builds?
I don't know for recent build. When I've tested the reference
implementation (hotspot),
I've disabled transformation if I detect a method type that will be not
handled by the RI.
Otherwise if you test DaCapo-jython there is no such problematic
signature in it.
I've initally develop the weaver as a non regression test for the backport,
and with the backport there is no such problem.
>> and without rewriting all primitive operators (BTW, I haven't understand
>> why you have re-written it manually).
> It's getting fully automatic for now ;-)
>
>> The results was far better but I suppose it's due to the fact that I haven't
>> woven operators.
>>
>> A remark, you don't need to store all method handles in an array,
>> the one you initialize in the static block of each class.
>>
>> Instead of having one boostrap by callsite you can factor them to have one
>> bootstrap by invocation bytecode.
> This looks interesting but it seems to be my limitation that I cannot
> fully understand you suggestions at the moment. Maybe I'll try what
> you said and be back to you later. Thanks a lot.
You can have only 4 bootstrap methods, one by invoke* instruction
> -Chanwit
Rémi
More information about the mlvm-dev
mailing list