RFR(S): 8147844: new method j.l.Runtime.onSpinWait() and the corresponding x86 hotspot instrinsic
Ivan Krylov
ivan at azulsystems.com
Thu Feb 11 23:55:43 UTC 2016
Hi Igor,
Thanks both for your help and your reviews.
Here is a new version, tested on mac for c1 and c2:
http://cr.openjdk.java.net/~ikrylov/8147844.hs.03
Thanks,
Ivan
On 11/02/2016 09:51, Igor Veresov wrote:
> The C2 part looks good to me. Thanks for making the changes.
>
> As for C1…
> 1. There is already an HIR node to model intrinsics (“Intrinsic”), so unless there is a compelling reason to introduce a new node type I would just use that. That should get rid of many changes to HIR visitors, etc. Follow the existing examples, look for example at how vmIntrinsics::_fullFence works, your case should be the same.
> 2. It’d be nice to minimize the platform specific changes. There is Compiler::is_intrinsic_supported() method that determines if something should be intensified. Follow the existing examples and add “static bool supports_spin_wait() { return false; }" to Abstract_VM_Version, overload it to true in the VM_Version for x86, then use it to determine whether to intensify the call. You’ll still need a LIR instruction and the LIR_Assembler::on_spin_wait() method, but you can define it on on x86 only. It’s ok to not define a method if you don’t use it, and you won’t, because the intrinsic will be used only on x86.
>
> igor
>
>> On Feb 10, 2016, at 3:47 PM, Ivan Krylov <ivan at azulsystems.com> wrote:
>>
>> I have prepared a new webrev:
>> http://cr.openjdk.java.net/~ikrylov/8147844.hs.02/
>>
>> Hopefully it addresses the comments that were said before.
>> Per Vladimir's suggestion I added the c1 intrinsic.
>> I could not test non-x86 platforms but hopefully nothing is broken there.
>>
>> Thanks,
>>
>> Ivan
More information about the hotspot-compiler-dev
mailing list