Hello Thanks for looking into this Magnus. Here is updated version of webrev - http://cr.openjdk.java.net/~vkempik/8243470/webrev.01/ <http://cr.openjdk.java.net/~vkempik/8243470/webrev.01/> effectively it does exactly the same as previous version, I have removed the version check for clang.
Thanks, Vladimir > 4 июня 2020 г., в 16:04, Magnus Ihse Bursie <magnus.ihse.bur...@oracle.com> > написал(а): > > On 2020-06-03 20:07, Magnus Ihse Bursie wrote: >> Thanks for cc:ing us. >> >> This is not the correct way to check for compiler versions. Nor is it the >> correct place. >> >> I don't have time for a full reply tonight, but will return with a better >> reply tomorrow. > Ok, I have now looked more into this. > > You are apparently want to check for Xcode version, not clang version. This > is not the same. Note that clang can be used on Linux as well. Apple is > basically dropping the normal clang versioning and replacing it with their > own, messed-up version which somewhat resembles the corresponding Xcode > version, but is not identical. Horray. :-/ (For those interested, have a look > at https://gist.github.com/yamaya/2924292.) > > Anyway. We do not support Xcode prior to 8. You seem to have tested from 8 > and up, so this patch should be applied unconditionally. That is, just remove > the -O1 special thing. > > /Magnus >> >> /Magnus >> >> On 2020-06-03 19:47, Daniel D. Daugherty wrote: >>> Adding build-dev@... since this is a build system change. >>> >>> As for the right HotSpot team, I'm not sure who should be making >>> the call on changing the way unsafe.cpp is built for macOSX. My guess >>> when I moved the bug to hotspot/runtime was that someone on the Runtime >>> team would know, but... >>> >>> Dan >>> >>> >>> >>> On 6/3/20 1:38 PM, Vladimir Kempik wrote: >>>> Hello >>>> >>>> Can somebody please review this simple change ? >>>> >>>> Thanks >>>> >>>>> 6 мая 2020 г., в 12:43, Vladimir Kempik <vkem...@azul.com> написал(а): >>>>> >>>>> Adding hotspot-runtime-dev >>>>> >>>>>> 23 апр. 2020 г., в 18:26, Vladimir Kempik <vkem...@azul.com> написал(а): >>>>>> >>>>>> >>>>>> Hello >>>>>> Please review a fix for JDK-8243470 >>>>>> >>>>>> Long time ago as part of JEP284: New HotSpot Build System this fix was >>>>>> applied to jdk9 https://bugs.openjdk.java.net/browse/JDK-8152666 >>>>>> At that time it was decided to lower optimisation level for unsafe.cpp >>>>>> from O2 to O1 only for clang on Macosx. >>>>>> >>>>>> I suppose it was done due to issues in Set/Get<Object> helper functions >>>>>> where too optimistic optimisations were eliminating some null pointer >>>>>> checks. it was probably a clang bug. >>>>>> That issue could be checked with test jdk/test/sun/misc/CopyMemory.java. >>>>>> >>>>>> I believe that workaround (going from O2 to O1) produced this issue - >>>>>> https://bugs.openjdk.java.net/browse/JDK-8234963 (Thread.getStackTrace >>>>>> is slow with clang). >>>>>> JDK-8234963 can only be seen on mac with libjvm compiled by clang. >>>>>> >>>>>> Here I propose the patch which eliminates that workaround for clang 8+. >>>>>> >>>>>> I have tested clang versions 8/9/9.1/10, all of them showed good results: >>>>>> 1) CopyMemory test passes fine on 11/14/15. >>>>>> 2) jdk11/jdk14 passed tck. Regression testing were good as well. jdk15: >>>>>> no new failures in tck. >>>>>> 3) The testRandom "benchmark" from 8234963 shows great improvements on >>>>>> my machine, going down from ~200 seconds to ~150 seconds (the newer >>>>>> clang the better result). For comparision, gcc built libjvm for jdk11 >>>>>> shows ~130 seconds on my machine. >>>>>> >>>>>> The webrev: http://cr.openjdk.java.net/~vkempik/8243470/webrev.00/ >>>>>> >>>>>> getStackTrace benchmark: >>>>>> http://cr.openjdk.java.net/~vkempik/8243470/TestRandom.java >>>>>> >>>>>> The bug: https://bugs.openjdk.java.net/browse/JDK-8243470 >>>>>> >>>>>> Thanks, Vladimir >>> >>