[13] RFR (S): 8217918: C2: -XX:+AggressiveUnboxing is broken

Vladimir Ivanov vladimir.x.ivanov at oracle.com
Fri Feb 1 17:41:48 UTC 2019

Thanks, Vladimir.

> Nice! Did you consider to update indexes in separate pass at the end of 
> PhaseRenumberLive? Would it be simpler?

It already does additional pass, but only over the nodes which contain 
embedded IDs (those are recorded into _delayed during the first pass). 
If you are talking about full pass over the graph, then it would allow 
to eliminate _delayed array.

Also, it's possible to do everything in a single pass, but it requires 
eager allocation of IDs for not-yet-seen nodes (which needs 

Best regards,
Vladimir Ivanov

> On 1/31/19 11:10 AM, Vladimir Ivanov wrote:
>> https://bugs.openjdk.java.net/browse/JDK-8217918
>> http://cr.openjdk.java.net/~vlivanov/8217918/webrev.00/
>> When -XX:+AggressiveUnboxing is enabled, LoadNode::split_through_phi() 
>> produces Phi nodes with non-negative _inst_mem_id & _inst_id early 
>> enough, so it breaks PhaseRenumber pass which doesn't support nodes 
>> with embedded IDs.
>> Proposed fix tracks nodes with embedded IDs and updates them once 
>> renumbering pass over the graph is over.
>> Testing: hs-precheckin-comp, tier1-5
>> Best regards,
>> Vladimir Ivanov

More information about the hotspot-compiler-dev mailing list