[9] RFR (S): 8152773: C2: LoadNode properties aren't preserved when converting between signed/unsigned variants

Vladimir Ivanov vladimir.x.ivanov at oracle.com
Fri Mar 25 19:06:14 UTC 2016


Update version:
   http://cr.openjdk.java.net/~vlivanov/8152773/webrev.01/

> assert(false, "no unsigned variant"); should print name of node.
Fixed.

> Why convert_to_signed_load() does not do the same checks as
> convert_to_unsigned_load()?
Fixed.

Best regards,
Vladimir Ivanov

>
> On 3/25/16 10:38 AM, Vladimir Ivanov wrote:
>> http://cr.openjdk.java.net/~vlivanov/8152773/webrev.00/
>> https://bugs.openjdk.java.net/browse/JDK-8152773
>>
>> AndINode::Ideal() converts signed loads to unsigned for some masks.
>> But it constructs fresh nodes and doesn't copy
>> LoadNode properties from the node being replaced. It means that
>> operations marked as pinned, mismatched or unaligned
>> will not be treated as such anymore.
>>
>> The problem was found by compiler/unsafe/UnsafeGetStableArrayElement.
>>
>> Testing: failing test, JPRT (in progress), RBT (in progress).
>>
>> Best regards,
>> Vladimir Ivanov


More information about the hotspot-compiler-dev mailing list