Time to Safepoint and HotSpot intrinsics

Roman Kennke rkennke at redhat.com
Fri Nov 30 15:34:04 UTC 2018


> My bad on the definition of "intrinsic".
> 
> I was thinking of "intrinsic" as a method for which C2 generates specialized IR which would then be subject to optimization (as in library_call.cpp), not hand-coded asm (as in stubGenerator_aarch64.cpp). I don't know how feasible it is to switch from the latter to the former, but imo it would be good to do if we could. Maybe a hybrid approach with the loop structure in IR and specialized operators that emit optimized code sequences for stuff the compile can't figure out. But that's not an immediate fix.
> 
> On the maximum time an intrinsic should block, Roland pointed at https://bugs.openjdk.java.net/browse/JDK-8186027. Maybe use the same approach for hand-coded asm, i.e, insert safepoint polls into the hand-coded asm based on LoopStripMiningIter.
> 
> Or, are the intrinsics completely separate native methods? If so, your approach sounds good to me.

I assume we are talking about things like asm loops for crypto. In this
case, only carefully placed safepoint polls in asm would help, right?
But then we need oopmaps at those intrinsics. This seems far away from
trival :-)

Roman




More information about the hotspot-dev mailing list