RFR(S): 8252696: Loop unswitching may cause out of bound array load to be executed
Roland Westrelin
rwestrel at redhat.com
Mon Sep 7 07:31:07 UTC 2020
> No this line should be fine. Just to be sure we are talking about the
> same line, I was referring to L302 in your patch (old_new.map(..)). I
> used the old_new mapping here to get a quick reference from the cloned
> node in the slow loop (when processing the slow loop after the fast
> loop) back to the original node in the fast loop on line L280. But I
> added additional asserts there to ensure that everything is reset as
> intended. So, it's fine that you removed the assertion code on L257-267.
I see. So would that logic break if the slow loop is processed first?
Aren't the tests:
slow_node != NULL && slow_node->_idx > idx_before_clone
redundant?
wouldn't:
slow_node->_idx > idx_before_clone
or
fast_node->_idx <= idx_before_clone
be sufficient to figure out whether a node is part of the slow or fast
loop?
Roland.
More information about the hotspot-compiler-dev
mailing list