C2 compilation gives incorrect results
Andrew Haley
aph at redhat.com
Wed Jan 9 03:44:48 PST 2013
Here's a nice one, reported at bug 2396372. Test case at
https://bugzilla.redhat.com/attachment.cgi?id=605282
The bug seems to have been in HotSpot for many years.
The test case runs through many iterations until:
$ java -XX:+PrintCompilation PolynomialRoot
!!!!!!!!n=4 test 1431
!!!!!!!!n=4 test 1432
96 37 3 PolynomialRoot::root4 (1560 bytes) made not entrant
96 112 4 PolynomialRoot::root2 (183 bytes)
96 45 4 PolynomialRoot::checkValues (360 bytes) made not entrant
Exception in thread "main" 97 56 ! 3 sun.nio.cs.US_ASCII$Encoder::encodeArrayLoop (356 bytes) made not entrant
java.lang.RuntimeException: order=4 p[0]=-0.09965134319016089;p[1]=0.0;p[2]=0.30234383793894914;p[3]=-0.18180230156481425;p[4]=0.5206321058295245;
x.r=0.134302716567836 x.i=0.4911858311805498
res/sabs=-0.03744084182425251 ims/sabs=0.007299470095647275 sabs=3.553068664639566
res=-0.13302988186347808 ims=0.02593551846531791 n=4 eps=1.0E-6 sabs>1/eps=false f1=true f2=true t=1432
at PolynomialRoot.checkValues(PolynomialRoot.java:424)
at PolynomialRoot.testRoots(PolynomialRoot.java:491)
at PolynomialRoot.main(PolynomialRoot.java:762)
mercury:~ $ java -version
openjdk version "1.8.0-internal"
OpenJDK Runtime Environment (build 1.8.0-internal-aph_2013_01_09_11_31-b00)
OpenJDK 64-Bit Server VM (build 25.0-b15, mixed mode)
Andrew.
More information about the hotspot-dev
mailing list