RFR: 8213795: Force explicit null check on patching placeholder offset

Vladimir Kozlov vladimir.kozlov at oracle.com
Tue Nov 13 19:31:39 UTC 2018

On 11/13/18 11:14 AM, Roman Kennke wrote:
> That's actually a not-completely-trivial exercise because there are a
> bunch of places and they don't actually say 'this is a placeholder for
> patching offsets' they just say '-1'. I'll try to sort it out, and while
> doing it maybe makes sense to replace -1 by a defined constant that can
> be grepped for. Right?

Yes, definitely right.


> Roman
>> Hi Roman,
>> Would be nice if the comment points to C1 code which use -1 offset. In a
>> future, when we forgot the context, I don't want to look through all
>> Hotspot code to find where this -1 is coming from.
>> Thanks,
>> Vladimir
>> On 11/13/18 7:16 AM, Roman Kennke wrote:
>>> With current logic after JDK-8213199, we allow implicit null-checks in
>>> the offset range [-cell_header_size;vm_page_size). When using
>>> Shenandoah, cell_header_size is -8, so we allow [-8;vm_page_size).
>>> Unfortunately, this disables explicit null-checks on -1 which is used as
>>> placeholder for offsets to be patched in C1. This results in weird
>>> asserts later and may actually crash if offset is outside of legal range
>>> for implicit null-checks. We need to force explicit null checks on -1.
>>> Bug:
>>> https://bugs.openjdk.java.net/browse/JDK-8213795
>>> Webrev:
>>> http://cr.openjdk.java.net/~rkennke/JDK-8213795/webrev.00/
>>> Testing: tier1 and Shenandoah testing
>>> Can I please get a review?
>>> Roman

More information about the hotspot-compiler-dev mailing list