RFR(S): 8199784: PhaseIdealLoop::place_near_use() might return wrong control with loop strip mining

Vladimir Kozlov vladimir.kozlov at oracle.com
Wed Mar 21 17:46:45 UTC 2018


Okay. I thought you will have only Safepoint in outer loop and will be filtered out in caller. But thinking again - you can have other nodes sinked from strip mined inner loop there which could be users or some Phi nodes. But on other hand you missing case when user in a second strip mined loop followed first.

Anyway, your code is conservative and good. Reviewed.

It has to be tested more then what submit_hs provides. I will start testing.

Thanks,
Vladimir


> On Mar 21, 2018, at 10:01 AM, Roland Westrelin <rwestrel at redhat.com> wrote:
> 
> 
>> I am asking why not just do next?:
>> +  if (u_loop->_child) {
>> +    if (u_loop->_head->is_OuterStripMinedLoop()) {
>> +      return u_loop->_head->in(LoopNode::EntryControl);
> 
> That would cover the case where the load is moved from inside the strip
> mined counted loop to the outer loop, that is after the counted
> loop end.
> 
> Roland.



More information about the hotspot-compiler-dev mailing list