RFR: jdk11: guard shared code with UseShenandoahGC

Roland Westrelin rwestrel at redhat.com
Thu Oct 18 08:03:09 UTC 2018


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