EVALUATION
http://hg.openjdk.java.net/hsx/hotspot-rt/hotspot/rev/aacaff365100
|
|
|
EVALUATION
http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/aacaff365100
|
|
|
EVALUATION
http://hg.openjdk.java.net/jdk7/hotspot/hotspot/rev/782e2bb60c41
|
|
|
EVALUATION
http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/aacaff365100
|
|
|
SUGGESTED FIX
Final fix:
http://cr.openjdk.java.net/~kvn/7052494/webrev
|
|
|
SUGGESTED FIX
The band-aid fix:
src/share/vm/opto/loopnode.cpp Thu Jun 16 19:03:05 2011 -0700
@@ -347,6 +347,8 @@
if (LoopLimitCheck) {
+ if (bt == BoolTest::ne) return false; // Not supported
+
|
|
|
EVALUATION
I verified that the problem is caused by my changes for 5091921 fix:
http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/bad7ecd0b6ed
Tests passed with -XX:-LoopLimitCheck.
I traced it to new code which changes loop check "for(i != lim; i++)" to "for(i < lim; i++)". Such conversion is incorrect when initial value is >= lim (note, such loops are terminated by other checks inside loop's body).
|
|
|