RFR(XS): 8148564: compiler/intrinsics/string/TestStringIntrinsics2.java times out
tobias.hartmann at oracle.com
Fri Feb 12 07:01:50 UTC 2016
On 11.02.2016 21:55, Vladimir Kozlov wrote:
> On 2/11/16 6:29 AM, Tobias Hartmann wrote:
>> please review the following patch.
>> The test times out with a fastdebug build and -Xcomp after 356 seconds. The profile shows that most time is spent in C1:
>> 40.06% java libjvm.so [.] RangeCheckEliminator::Verification::can_reach(BlockBegin*, BlockBegin*, BlockBeg
>> 20.08% java libjvm.so [.] LinearScan::is_sorted(IntervalArray*)
>> 4.47% java libc-2.19.so [.] memset
>> LinearScan::is_sorted() is known to be very slow (JDK-8067014). It seems that RangeCheckEliminator::Verification::can_reach() also slows down performance significantly.
>> Without these checks the runtime drops down to 126 seconds.
>> The accumulated compiler times also show that most time is spent in C1 (see ):
>> C1 Compile Time: 326.983 s
>> C2 Compile Time: 3.241 s
>> A product build is significantly faster, i.e. the slowdown is caused by additional C1 verification code in fastdebug builds:
>> C1 Compile Time: 8.463 s
>> C2 Compile Time: 1.619 s
>> The problem is that the test specifies -XX:MaxInlineSize=100 to trigger inlining of intrinsics. With -Xcomp, this also causes many other methods to be inlined, blowing up the graphs and significantly slowing down compilation. Since the test uses the Whitebox API to trigger compilation, -Xcomp is not required.
>> I verified that -XX:MaxInlineSize=70 is enough to inline all intrinsics and added -Xmixed to the test to avoid compilation of unrelated methods.
>>  https://bugs.openjdk.java.net/secure/attachment/57052/CITime.log
More information about the hotspot-compiler-dev