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

Nils Eliasson nils.eliasson at oracle.com
Wed Feb 12 12:21:11 UTC 2020


Hi Christian,

I like the version with the additional refactoring.

Looks good.

Best regards,
Nils

On 2020-02-12 12:55, Christian Hagedorn wrote:
> Hi Roland
>
> Thank you for your review!
>
> Yes, that makes the code cleaner. I've done a refactoring in a new 
> webrev:
> http://cr.openjdk.java.net/~chagedorn/8238765/webrev.01/
>
> Best regards,
> Christian
>
> On 12.02.20 10:03, Roland Westrelin wrote:
>>
>>> 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