RFR(S): 8231550: C2: ShouldNotReachHere() in verify_strip_mined_scheduling
Roland Westrelin
rwestrel at redhat.com
Thu Oct 3 08:48:04 UTC 2019
http://cr.openjdk.java.net/~roland/8231550/webrev.00/
This is another case where too conservative alias analysis pushes a load
in the outer strip mined loop and causes loop strip mining verification
to fail. The regression test contains two subtests. In both cases, a
load (either of the array length or of a field) depends on a CastPP
that's control dependent on the counted loop. A store that's unrelated
is sunk in the outer strip mined loop. Because the load can't float
above the counted loop and because anti dependence analysis is too
conservative, the load ends up in the outer strip mined loop. I see no
way around this one other than to relax anti dependence analysis.
This also causes my recent fix for Shenandoah bug 8231761 to fail
(because it relied on anti-dependence analysis to be conservative) so I
also had to rework it.
Roland.
More information about the hotspot-compiler-dev
mailing list