Hi Joe, On Wed, 2018-09-05 at 12:15 -0700, joe darcy wrote: > On 9/5/2018 6:12 AM, Severin Gehwolf wrote: > > Hi, > > > > Cross-posting this review-thread on core-libs-dev and build-dev as > > this > > is a build change, but affects fdlibm which is core-libs. > > > > With JDK-8170153 optimization for fdlibm code has been turned on > > for > > ppc64 s390 and aarch64. This patch intends to turn it on on all > > arches > > on Linux. I've not observed any precision issues. Is there a good > > reason to not use -O3 -ffp-contract=off everywhere? > > > > Bug: https://bugs.openjdk.java.net/browse/JDK-8210416 > > webrev: > > http://cr.openjdk.java.net/~sgehwolf/webrevs/JDK-8210416/webrev.01/ > > > > Testing: - java/lang/Math, java/lang/StrictMath tests (all pass). > > - Currently running through submit repo. > > > > A simple micro benchmark from JDK-8170153[1] shows these numbers > > for > > StrictMath: > > > > Function | before | after > > ---------------------------------------------- > > sin | 0m33.382s | 0m18.731s > > cos | 0m31.562s | 0m18.796s > > tan | 0m33.657s | 0m21.093s > > atan | 0m5.714s | 0m4.902s > > log | 0m6.212s | 0m4.439s > > log10 | 0m7.946s | 0m5.543s > > sqrt | 0m0.481s | 0m0.449s > > cbrt | 0m5.295s | 0m5.214s > > tanh | 0m1.404s | 0m1.307s > > log1p | 0m6.457s | 0m5.131s > > IEEEremainder | 0m10.629s | 0m6.048s > > atan2 | 0m8.037s | 0m5.668s > > hypot | 0m2.171s | 0m2.147s > > > > > > Note that pow (JDK-8134795), hypot (JDK-7130085), cbrt (JDK-8136799), > and exp (JDK-8139688), have been ported to Java as of JDK 9. The sqrt > method is commonly handled as an intrinsic.
OK thanks. Since ppc64/s390x/aarch64 uses this already on Linux do you anticipate the same being applied to x86/x86_64 causing issues (modulo compiler bugs of course)? > Testing that was not geared toward finding precision/rounding issues > would be unlikely to find them. Would running the TCK be geared towards precision/rounding issues? I could ask someone to run the TCK on a test build on x86_64/x86 to find out. > I don't see the sources of the microbenchmark in JDK-8170153. https://github.com/gromero/strictmath/ Thanks, Severin