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

Christian Hagedorn christian.hagedorn at oracle.com
Wed Feb 12 12:24:09 UTC 2020


Hi Nils

Thank you for your review!

Best regards,
Christian

On 12.02.20 13:21, Nils Eliasson wrote:
> 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