[15] RFR(S): 8238765: PhaseCFG::schedule_pinned_nodes cannot handle precedence edges from unmatched CFG nodes correctly

Roland Westrelin rwestrel at redhat.com
Wed Feb 12 09:03:24 UTC 2020


> http://cr.openjdk.java.net/~chagedorn/8238765/webrev.00/

You could maybe refactor the checks:

m->is_block_proj() || m->is_block_start() || ((m->is_Mach() && m->as_Mach()->ideal_Opcode() == Op_SafePoint))
||(m->is_Proj() && m->as_Proj()->bottom_type() == Type::CONTROL)

and similar ones and move them to an is_CFG() function?

Same for that code pattern:

 136     Node* ctrl = node->in(0);
 137     while (!ctrl->is_block_start()) {
 138       if (ctrl == dom_node) {
 139         return true;
 140       }
 141       ctrl = ctrl->in(0);
 142     }

that's used twice.

Otherwise looks good to me.

Roland.



More information about the hotspot-compiler-dev mailing list