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