RFR: jdk11: guard shared code with UseShenandoahGC

Aleksey Shipilev shade at redhat.com
Thu Oct 18 12:17:05 UTC 2018


Your call, really. If you think something is safe, leave it as is.

-Aleksey

On 10/18/2018 10:03 AM, Roland Westrelin wrote:
> Thanks for going over the jdk11 c2 changes.
> 
>> *) ArrayCopyNode::array_copy_forward/array_copy_backward have unprotected
>> "mm->set_memory_at(alias_idx_dest, mem);", "phase->transform(mm);"
>>
>> *) ArrayCopyNode::Ideal has some unprotected memory merges
> 
> That's all part of the same change in this file. Looks complicated to
> guard. This change was upstreamed to 12 and has caused no issue. Can't
> we leave it as it is?
> 
>> *) IfNode::search_identical, seems this line got dropped:
>>
>> 1547          (req() == 3 && dom->in(2) != in(2)) || // Not same input 2?
> 
> I'll put it back eventhough it's dead code AFAICT.
> 
>> *) loopopts.cpp: this looks odd, do we actually need to rewrite this condition like that? Also, why
>> double assignment to "n_ctrl"?
>>
>> 1323   if (identical_backtoback_ifs(n)) {
>> 1324     Node *n_ctrl = n_ctrl = n->in(0);
>> 1325     if (can_split_if(n_ctrl)) {
> 
> Double assignment is a typo.
> I don't see a need for the condition change so I'll revert it.
> 
>> *) matcher.cpp: unprotected branch?
>>
>> 1008             if (n->is_MemBar()) {
>> 1009               m->as_MachMemBar()->set_adr_type(n->adr_type());
>> 1010             }
> 
> That's also part of a bigger change with changes to the node class
> hierarchy and adlc tool so hard to guard. That was upstreamed to 12 and
> has caused no issue.
> 
> Roland.
> 




More information about the shenandoah-dev mailing list