Skip to content

8313713: Allow CompileCommand flag to specify compilation level#30352

Open
kirill-shirokov wants to merge 29 commits intoopenjdk:masterfrom
kirill-shirokov:8313713-add-comp-level-to-compilecommand-2
Open

8313713: Allow CompileCommand flag to specify compilation level#30352
kirill-shirokov wants to merge 29 commits intoopenjdk:masterfrom
kirill-shirokov:8313713-add-comp-level-to-compilecommand-2

Conversation

@kirill-shirokov
Copy link
Copy Markdown
Member

@kirill-shirokov kirill-shirokov commented Mar 21, 2026

Implemented intx arguments in -XX:CompileCommand={break,compileonly,exclude,print} commands that allow to select specific compilation levels.

E.g. -XX:CompileCommand=compileonly,java/lang/Object::wait,9 would allow to compile the wait() method only on CompLevel 1 and 4 (1 << (4 - 1) | 1 << (1 - 1) == 9).

CompLevel -XX:CompileCommand bitmask
0 (interpreter) not applicable
1 (C1) 1
2 (C1 + counters) 2
3 (C1 + counters + mdo) 4
4 (C2/JVMCI) 8
All C1 levels 7
All levels 15

For compatibility with the old format, specifying the commands without intx argument is also supported. In this case all levels will be covered (using a default value of 15). Specifying boolean values is not supported anymore.

New tests are provided and I ran them manually. The tests are not included into any tiers yet.

Some implementation choices I made (and I open to discussing/modifying them):

  • intx for the value, not uintx as most flags use intx
  • I tried to avoid any changes to compilation level state machine. The only modification I did is to avoid downgrading level from 3 to 2 if level 2 is excluded in CompilationPolicy::select_task(), see line 817+
  • I refactored direct freeing CompileTask::_directive pointer in CompileBroker::compile_method(), line 2405 via a new CompileTask method (this approach conforms to OO encapsulation principles more)
  • JVMCI CodeInstaller::install() method processes compilation level like this:
    DirectiveSet* directive = DirectivesStack::getMatchingDirective(method, compiler == nullptr || compiler->is_c1() ? CompLevel_simple : CompLevel_full_optimization);
    Please let me know if this needs changing.
  • Same for C2V_VMENTRY_0(jboolean, hasNeverInlineDirective,(JNIEnv* env, jobject, ARGUMENT_PAIR(method))):
    return !Inline || CompilerOracle::should_not_inline(method, CompLevel_full_optimization) || method->dont_inline();
    (level 4 is assumed, please let me know if this has to be changed)

Verified by running 3 newly developed tests manually + tier1 tests on linux-x64, macosx-aarch64, windows-x64.


Progress

  • Change must be properly reviewed (1 review required, with at least 1 Reviewer)
  • Change must not contain extraneous whitespace
  • Commit message must refer to an issue

Issue

  • JDK-8313713: Allow CompileCommand flag to specify compilation level (Enhancement - P4)

Reviewing

Using git

Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/30352/head:pull/30352
$ git checkout pull/30352

Update a local copy of the PR:
$ git checkout pull/30352
$ git pull https://git.openjdk.org/jdk.git pull/30352/head

Using Skara CLI tools

Checkout this PR locally:
$ git pr checkout 30352

View PR using the GUI difftool:
$ git pr show -t 30352

Using diff file

Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/30352.diff

Using Webrev

Link to Webrev Comment

…uld_not_inline(). Replace compiler arument with comp_level in DirectivesStack::getMatchingDirective()
…. Fix level checking in WB_IsMethodCompilable()
…n ClearDirectivesFileStackTest. Sort includes. Update copyright year.
…evel is excluded for the method. Fix WB_IsMethodCompilable for levels 1-3
…mpileonly and exclude CompileCommands with a level argument
…se added to CompileLevelParseTest.java. CompileTask::release_direcive() added for ownership clarity. Null pointer crash fixed in CompilationPolicy::select_task()
@bridgekeeper
Copy link
Copy Markdown

bridgekeeper bot commented Mar 21, 2026

👋 Welcome back kshiroko! A progress list of the required criteria for merging this PR into master will be added to the body of your pull request. There are additional pull request commands available for use with this pull request.

@openjdk
Copy link
Copy Markdown

openjdk bot commented Mar 21, 2026

❗ This change is not yet ready to be integrated.
See the Progress checklist in the description for automated requirements.

@openjdk openjdk bot added the hotspot hotspot-dev@openjdk.org label Mar 21, 2026
@openjdk
Copy link
Copy Markdown

openjdk bot commented Mar 21, 2026

@kirill-shirokov The following label will be automatically applied to this pull request:

  • hotspot

When this pull request is ready to be reviewed, an "RFR" email will be sent to the corresponding mailing list. If you would like to change these labels, use the /label pull request command.

@openjdk openjdk bot added the rfr Pull request is ready for review label Mar 21, 2026
@mlbridge
Copy link
Copy Markdown

mlbridge bot commented Mar 21, 2026

Copy link
Copy Markdown
Contributor

@vnkozlov vnkozlov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice work, thank you. I have few comments.

Copy link
Copy Markdown
Contributor

@vnkozlov vnkozlov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks good. I will submit our testing.

Co-authored-by: Igor Veresov <igor.veresov@oracle.com>
@vnkozlov
Copy link
Copy Markdown
Contributor

@kirill-shirokov my testing shows the new tests you added are failing on all platforms when other flags passed to them: -Xcomp, -XX:-TieredCompilation, -XX:+Use*GC etc.

@iwanowww
Copy link
Copy Markdown
Contributor

Looks reasonable.

Have you considered to extend method patterns instead to allow compilation level information to be uniformly applied to any command?

@vnkozlov
Copy link
Copy Markdown
Contributor

vnkozlov commented Mar 23, 2026

compiler/compilercontrol/commands/CompileLevelPrintTest.java failed in all modes (including default without any flags:

########> Testing compileonly 1
Command line: [c:\\ade\\mesos\\work_dir\\jib-master\\install\\2026-03-23-1557507.vladimir.kozlov.jdk_git2\\windows-x64-debug.jdk\\jdk-27\\fastdebug\\bin\\java.exe -cp C:\\sb\\prod\\1774285437\\testoutput\\test-support\\jtreg_open_test_hotspot_jtreg_hotspot_compiler\\classes\\5\\compiler\\compilercontrol\\commands\\CompileLevelPrintTest.d;C:\\ade\\mesos\\work_dir\\jib-master\\install\\2026-03-23-1557507.vladimir.kozlov.jdk_git2\\src.full\\open\\test\\hotspot\\jtreg\\compiler\\compilercontrol\\commands;C:\\sb\\prod\\1774285437\\testoutput\\test-support\\jtreg_open_test_hotspot_jtreg_hotspot_compiler\\classes\\5\\compiler\\compilercontrol\\commands\\CompileLevelPrintTest.d\\test\\lib;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jtreg\\8.2.1\\1\\bundles\\jtreg-8.2.1+1.zip\\jtreg\\lib\\jtreg.jar;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jtreg\\8.2.1\\1\\bundles\\jtreg-8.2.1+1.zip\\jtreg\\lib\\junit-platform-console-standalone-1.14.2.jar;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jtreg\\8.2.1\\1\\bundles\\jtreg-8.2.1+1.zip\\jtreg\\lib\\testng-7.3.0.jar;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jtreg\\8.2.1\\1\\bundles\\jtreg-8.2.1+1.zip\\jtreg\\lib\\jcommander-1.82.jar;C:\\ade\\mesos\\work_dir\\jib-master\\install\\jtreg\\8.2.1\\1\\bundles\\jtreg-8.2.1+1.zip\\jtreg\\lib\\guice-5.1.0.jar -XX:MaxRAMPercentage=4.16667 -Dtest.boot.jdk=c:\\ade\\mesos\\work_dir\\jib-master\\install\\jdk\\25\\37\\bundles\\windows-x64\\jdk-25_windows-x64_bin.zip\\jdk-25 -Djava.io.tmpdir=c:\\sb\\prod\\1774285437\\testoutput\\test-support\\jtreg_open_test_hotspot_jtreg_hotspot_compiler\\tmp -XX:+CreateCoredumpOnCrash -XX:+UseZGC -XX:+UnlockDiagnosticVMOptions -XX:+PrintCompilation -XX:+CIPrintCompilerName -XX:+PrintTieredEvents -XX:+TieredCompilation -XX:TieredStopAtLevel=1 -XX:CompileCommand=compileonly,compiler.compilercontrol.commands.CompileLevelPrintTest$Testee::compiledMethod,1 -XX:CompileCommand=print,compiler.compilercontrol.commands.CompileLevelPrintTest$Testee::compiledMethod,1 compiler.compilercontrol.commands.CompileLevelPrintTest ]
##> Waiting for testee to get ready for the start command
##> Compile command reported: compileonly compiler/compilercontrol/commands/CompileLevelPrintTest$Testee.compiledMethod intx compileonly = 1
##> Compile command reported: print compiler/compilercontrol/commands/CompileLevelPrintTest$Testee.compiledMethod intx print = 1
==> entering testee()
##> Testee is waiting for start command
##> Order testee to start
==> STDIN: start
==> starting test
##> Test method compiled: compiler=C1 level=1 compilation#=23 flags= name=compiler.compilercontrol.commands.CompileLevelPrintTest$Testee::compiledMethod
==> exiting testee()
----------System.err:(22/1766)----------
java.lang.RuntimeException: Test method was not compiled at required level ([1]),  or its method assembly was not printed,  or method was compiled at incorrect level ([]): expected true, was false
	at jdk.test.lib.Asserts.fail(Asserts.java:715)
	at jdk.test.lib.Asserts.assertTrue(Asserts.java:545)
	at compiler.compilercontrol.commands.CompileLevelPrintTest$Runner.run(CompileLevelPrintTest.java:184)
	at compiler.compilercontrol.commands.CompileLevelPrintTest.main(CompileLevelPrintTest.java:98)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
	at java.base/java.lang.reflect.Method.invoke(Method.java:565)
	at com.sun.javatest.regtest.agent.MainActionHelper$AgentVMRunnable.run(MainActionHelper.java:335)
	at java.base/java.lang.Thread.run(Thread.java:1527)

@vnkozlov
Copy link
Copy Markdown
Contributor

compiler/compilercontrol/commands/CompileLevelWBTest.java all subtests failed with tiered off (-XX:-TieredCompilation):

java.lang.RuntimeException: WB.isMethodCompilable() returns wrong answer for level 2: expected true, was false
	at jdk.test.lib.Asserts.fail(Asserts.java:715)
	at jdk.test.lib.Asserts.assertTrue(Asserts.java:545)
	at compiler.compilercontrol.commands.CompileLevelWBTest.main(CompileLevelWBTest.java:574)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
	at java.base/java.lang.reflect.Method.invoke(Method.java:565)
	at com.sun.javatest.regtest.agent.MainWrapper$MainTask.run(MainWrapper.java:138)
	at java.base/java.lang.Thread.run(Thread.java:1527)

@vnkozlov
Copy link
Copy Markdown
Contributor

CompileLevelWBTest.java also failed with -Xcomp:

java.lang.RuntimeException: compiledMethod was compiled at level 3: expected true, was false
	at jdk.test.lib.Asserts.fail(Asserts.java:715)
	at jdk.test.lib.Asserts.assertTrue(Asserts.java:545)
	at compiler.compilercontrol.commands.CompileLevelWBTest.main(CompileLevelWBTest.java:578)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
	at java.base/java.lang.reflect.Method.invoke(Method.java:565)
	at com.sun.javatest.regtest.agent.MainWrapper$MainTask.run(MainWrapper.java:138)
	at java.base/java.lang.Thread.run(Thread.java:1527)

@vnkozlov
Copy link
Copy Markdown
Contributor

vnkozlov commented Mar 24, 2026

Do you think it makes sense to add both int and uint for non-negative values?

Yes.

Do we have limit check for such values? Similar to constraint() in flags declarations

Copy link
Copy Markdown
Contributor

@dafedafe dafedafe left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for working on this enhancement @kirill-shirokov!

* & (vm.opt.CompilationMode == "normal" | vm.opt.CompilationMode == null)
* @library /test/lib
* @build jdk.test.whitebox.WhiteBox
* @run driver jdk.test.lib.helpers.ClassFileInstaller jdk.test.whitebox.WhiteBox
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need the @run driver for each @test?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure. ClassFileInstaller is definitely needed (otherwise the test fails to registerNatives() for WB). The order of execution is determined by jtreg (alphabetic?) and @requires criteria. Do you think it is possible to specify some common section in jtreg which is executed before tests in the same file?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry @kirill-shirokov I think I misread the @run driver line: It is definitely needed if you use the whitebox.

@kirill-shirokov
Copy link
Copy Markdown
Member Author

kirill-shirokov commented Mar 25, 2026

@kirill-shirokov my testing shows the new tests you added are failing on all platforms when other flags passed to them: -Xcomp, -XX:-TieredCompilation, -XX:+Use*GC etc.

@vnkozlov I think I've fixed the tests. I ran the fixed ones locally on MacOS/Linux/Windows with all combinations of -Xcomp/-Xmixed, -XX:-/+TieredCompilation and they passed. Also tested with -XX:+/-UseZGC (no impact).

Maybe there are some exotic compiler flags that I didn't cover with my testing - I will be glad to fix tests if any failures discovered.

@vnkozlov
Copy link
Copy Markdown
Contributor

Okay, I will submit new testing.

@kirill-shirokov
Copy link
Copy Markdown
Member Author

kirill-shirokov commented Mar 26, 2026

Do you think it makes sense to add both int and uint for non-negative values?
Yes.
Do we have limit check for such values? Similar to constraint() in flags declarations

I haven't seen any checking for numeric values in the code.

And this is an initial implementation of int and uint OptionType in CompileCommand:
https://github.com/kirill-shirokov/jdk/pull/10/changes

@kirill-shirokov
Copy link
Copy Markdown
Member Author

kirill-shirokov commented Mar 26, 2026

Also, please let me know if the new format needs to be documented (e.g. in compilerOracle.cpp usage())

@kirill-shirokov
Copy link
Copy Markdown
Member Author

kirill-shirokov commented Mar 26, 2026

Have you considered to extend method patterns instead to allow compilation level information to be uniformly applied to any command?

Looking at the code, this can be implemented too. Method pattern parsing code might benefit from some fancy delimiter, such as @. E.g. *.Object::w*@1,2,3,4

@vnkozlov
Copy link
Copy Markdown
Contributor

compiler/compilercontrol/commands/CompileLevelPrintTest.java failed:

########> Testing exclude 7
Command line: [/linux-x64-debug.jdk/jdk-27/fastdebug/bin/java ... -ea -esa -XX:CompileThreshold=100 -XX:+UnlockExperimentalVMOptions -server -XX:+TieredCompilation -XX:+UnlockDiagnosticVMOptions -XX:+PrintCompilation -XX:+CIPrintCompilerName -XX:+PrintTieredEvents -XX:+TieredCompilation -XX:TieredStopAtLevel=4 -XX:CompileCommand=exclude,compiler.compilercontrol.commands.CompileLevelPrintTest$Testee::compiledMethod,7 -XX:CompileCommand=print,compiler.compilercontrol.commands.CompileLevelPrintTest$Testee::compiledMethod,8 compiler.compilercontrol.commands.CompileLevelPrintTest ]
##> Testee PID: 1392688
##> Waiting for testee to get ready for the start command
##> Compile command reported: exclude compiler/compilercontrol/commands/CompileLevelPrintTest$Testee.compiledMethod intx exclude = 7
##> Compile command reported: print compiler/compilercontrol/commands/CompileLevelPrintTest$Testee.compiledMethod intx print = 8
==> entering testee()
##> Testee is waiting for start command
##> Order testee to start
==> STDIN: start
==> starting test
##> Test method not compilable: level=3 name=compiler.compilercontrol.commands.CompileLevelPrintTest$Testee::compiledMethod
##> Test method compiled: compiler=C2 level=4 compilation#=95 flags= name=compiler.compilercontrol.commands.CompileLevelPrintTest$Testee::compiledMethod
##> Test method assembly printed: compiler=C2 level=4 compilation#=95 flags= name=compiler.compilercontrol.commands.CompileLevelPrintTest$Testee::compiledMethod
==> exiting testee()
##> Test method compiled, now stop
########> Test failed
########> Elapsed 402 ms
----------System.err:(22/1536)----------
java.lang.RuntimeException: Test method MDO was NOT printed expected: true but was: false
	at jdk.test.lib.Asserts.fail(Asserts.java:715)
	at jdk.test.lib.Asserts.assertEquals(Asserts.java:208)
	at compiler.compilercontrol.commands.CompileLevelPrintTest$Runner.run(CompileLevelPrintTest.java:230)
	at compiler.compilercontrol.commands.CompileLevelPrintTest.main(CompileLevelPrintTest.java:130)

@vnkozlov
Copy link
Copy Markdown
Contributor

Looking at the code, this can be implemented too. Method pattern parsing code might benefit from some fancy delimiter, such as @. E.g. .Object::w@1,2,3,4

I suggest t todo it in separate RFE if you want to do this.

@vnkozlov
Copy link
Copy Markdown
Contributor

Also, please let me know if the new format needs to be documented (e.g. in compilerOracle.cpp usage())

Yes. And may be in src/java.base/share/man/java.md. And we may need CSR and release note. It is product flag.

I found this https://bugs.openjdk.org/browse/JDK-8308287 as example.

@kirill-shirokov
Copy link
Copy Markdown
Member Author

kirill-shirokov commented Mar 27, 2026

compiler/compilercontrol/commands/CompileLevelPrintTest.java failed:

It was an intermittent failure due to mixed up logging output from different VM places, but I was able to reproduce and fix it. I'm still running tests on my side, no such failures so far.

@kirill-shirokov
Copy link
Copy Markdown
Member Author

And may be in src/java.base/share/man/java.md.

I've added java.md changes here temporarily for review purposes (it should be another PR related to CSR)

@vnkozlov
Copy link
Copy Markdown
Contributor

Text for usage() and java.md looks fine to me.

I submitted new testing.

@vnkozlov
Copy link
Copy Markdown
Contributor

it should be another PR related to CSR

Yes

@vnkozlov
Copy link
Copy Markdown
Contributor

I still have compiler/compilercontrol/commands/CompileLevelPrintTest.java test failed:

########> Testing exclude 14
Command line: [/opt/mach5/mesos/work_dir/jib-master/install/2026-03-27-2319408.vladimir.kozlov.jdk_git2/linux-x64-debug.jdk/jdk-27/fastdebug/bin/java -cp /opt/mach5/mesos/work_dir/slaves/fd0cf8b2-da1b-4c19-95ff-2fcd50cb8ad1-S18841/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/c074a9f6-cf1c-4442-ba9e-47778fbf3e51/runs/080f6107-d0e8-4b0f-9f3b-fe64ab6408b6/testoutput/test-support/jtreg_open_test_hotspot_jtreg_tier3_compiler/classes/4/compiler/compilercontrol/commands/CompileLevelPrintTest.d:/opt/mach5/mesos/work_dir/jib-master/install/2026-03-27-2319408.vladimir.kozlov.jdk_git2/src.full/open/test/hotspot/jtreg/compiler/compilercontrol/commands:/opt/mach5/mesos/work_dir/slaves/fd0cf8b2-da1b-4c19-95ff-2fcd50cb8ad1-S18841/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/c074a9f6-cf1c-4442-ba9e-47778fbf3e51/runs/080f6107-d0e8-4b0f-9f3b-fe64ab6408b6/testoutput/test-support/jtreg_open_test_hotspot_jtreg_tier3_compiler/classes/4/compiler/compilercontrol/commands/CompileLevelPrintTest.d/test/lib:/opt/mach5/mesos/work_dir/jib-master/install/jtreg/8.2.1/1/bundles/jtreg-8.2.1+1.zip/jtreg/lib/jtreg.jar:/opt/mach5/mesos/work_dir/jib-master/install/jtreg/8.2.1/1/bundles/jtreg-8.2.1+1.zip/jtreg/lib/junit-platform-console-standalone-1.14.2.jar:/opt/mach5/mesos/work_dir/jib-master/install/jtreg/8.2.1/1/bundles/jtreg-8.2.1+1.zip/jtreg/lib/testng-7.3.0.jar:/opt/mach5/mesos/work_dir/jib-master/install/jtreg/8.2.1/1/bundles/jtreg-8.2.1+1.zip/jtreg/lib/jcommander-1.82.jar:/opt/mach5/mesos/work_dir/jib-master/install/jtreg/8.2.1/1/bundles/jtreg-8.2.1+1.zip/jtreg/lib/guice-5.1.0.jar -XX:MaxRAMPercentage=4.16667 -Dtest.boot.jdk=/opt/mach5/mesos/work_dir/jib-master/install/jdk/25/37/bundles/linux-x64/jdk-25_linux-x64_bin.tar.gz/jdk-25 -Djava.io.tmpdir=/opt/mach5/mesos/work_dir/slaves/fd0cf8b2-da1b-4c19-95ff-2fcd50cb8ad1-S18841/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/c074a9f6-cf1c-4442-ba9e-47778fbf3e51/runs/080f6107-d0e8-4b0f-9f3b-fe64ab6408b6/testoutput/test-support/jtreg_open_test_hotspot_jtreg_tier3_compiler/tmp -ea -esa -XX:CompileThreshold=100 -XX:+UnlockExperimentalVMOptions -server -XX:-TieredCompilation -XX:+UnlockDiagnosticVMOptions -XX:+PrintCompilation -XX:+CIPrintCompilerName -XX:+PrintTieredEvents -XX:-TieredCompilation -XX:TieredStopAtLevel=1 -XX:CompileCommand=exclude,compiler.compilercontrol.commands.CompileLevelPrintTest$Testee::compiledMethod,14 -XX:CompileCommand=print,compiler.compilercontrol.commands.CompileLevelPrintTest$Testee::compiledMethod,1 compiler.compilercontrol.commands.CompileLevelPrintTest ]
##> Testee PID: 784721
##> Waiting for testee to get ready for the start command
##> Compile command reported: exclude compiler/compilercontrol/commands/CompileLevelPrintTest$Testee.compiledMethod intx exclude = 14
##> Compile command reported: print compiler/compilercontrol/commands/CompileLevelPrintTest$Testee.compiledMethod intx print = 1
==> entering testee()
##> Testee is waiting for start command
##> Order testee to start
##> Test method compiled, now stop
==> STDIN: start
==> starting test
##> Test method not compilable: level=4 name=compiler.compilercontrol.commands.CompileLevelPrintTest$Testee::compiledMethod
==> STDIN: stop
==> compiledMethod() has been compiled at iteration 2800
==> exiting testee()
##> Test method data: name=compiler.compilercontrol.commands.CompileLevelPrintTest$Testee::compiledMethod(I)V
########> Test failed
########> Elapsed 583 ms
----------System.err:(22/1528)----------
java.lang.RuntimeException: Test method MDO was printed expected: false but was: true
	at jdk.test.lib.Asserts.fail(Asserts.java:715)
	at jdk.test.lib.Asserts.assertEquals(Asserts.java:208)
	at compiler.compilercontrol.commands.CompileLevelPrintTest$Runner.run(CompileLevelPrintTest.java:230)
	at compiler.compilercontrol.commands.CompileLevelPrintTest.main(CompileLevelPrintTest.java:115)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

hotspot hotspot-dev@openjdk.org rfr Pull request is ready for review

Development

Successfully merging this pull request may close these issues.

5 participants