This PR adds CompileCommands to the test DumpThreadsWithEliminatedLock.java to
force inlining of java/lang/String*.* methods. This will make inlining more
stable to allow for the expected lock elimination based on c2 escape analysis.
Forcing inlining of java/lang/StringBuffer.* wasn't sufficient on x86_64. With
that the test still failed with TieredCompilation disabled.
Testing: x86_64, ppc64
Failed inlining on x86_64 with TieredCompilation disabled:
make test
TEST=com/sun/management/HotSpotDiagnosticMXBean/DumpThreadsWithEliminatedLock.java
TEST_VM_OPTS="-XX:-TieredCompilation -XX:+UnlockDiagnosticVMOptions
-XX:CompileCommand=PrintInlining,DumpThreadsWithEliminatedLock.*"
JTREG=TIMEOUT_FACTOR=0.1
[...]
STDOUT:
CompileCommand: PrintInlining DumpThreadsWithEliminatedLock.* bool
PrintInlining = true
@ 1
java.util.concurrent.atomic.AtomicBoolean::get (13 bytes) inline (hot)
@ 11 java.lang.StringBuffer::<init> (7 bytes)
inline (hot) late inline succeeded (string method)
@ 3 java.lang.AbstractStringBuilder::<init> (39
bytes) inline (hot)
@ 1 java.lang.Object::<init> (1 bytes)
inline (hot)
@ 16 java.lang.System::currentTimeMillis (0
bytes) (intrinsic)
s @ 19 java.lang.StringBuffer::append (13 bytes)
failed to inline: already compiled into a big method
s @ 24 java.lang.StringBuffer::toString (44 bytes)
inline (hot) late inline succeeded (string method)
s @ 1 java.lang.StringBuffer::length (5 bytes)
accessor
@ 24 java.lang.String::<init> (98 bytes)
failed to inline: already compiled into a big method
@ 30
java.util.concurrent.atomic.AtomicReference::set (6 bytes) accessor
2025-07-02T09:25:53.396634900Z Attempt 1, found: false
2025-07-02T09:25:53.415673072Z Attempt 2, found: false
2025-07-02T09:25:53.418876867Z Attempt 3, found: false
[...]
-------------
Commit messages:
- Force inlining of String*.* methods
- Force inlining of StringBuffer methods
Changes: https://git.openjdk.org/jdk/pull/26033/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=26033&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8360599
Stats: 4 lines in 1 file changed: 0 ins; 0 del; 4 mod
Patch: https://git.openjdk.org/jdk/pull/26033.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/26033/head:pull/26033
PR: https://git.openjdk.org/jdk/pull/26033