On Fri, 15 May 2026 11:29:48 GMT, Manuel Hässig <[email protected]> wrote:
>> This PR removes the experimental JVMCI feature and all usages and references >> of it, including references to Graal. For more details on the rationale, >> please see the issue description. >> >> This change was constructed in several steps: >> 1. Remove all folders directly related to JVMCI. >> 2. Go through one folder at a time and remove code relating to matches for >> the regex `([Jj][Vv][Mm][Cc][Ii])|([Gg]raal)|vm.ci|[Gg]alahad` and >> immediately obvious dead code. >> 3. Filter the `git blame` for each file for JVMCI related commits and check >> if that code is now dead. >> >> ### Note to Reviewers >> >> Each commit is limited to a subfolder or a change spanning further so you >> can take look at a piece of the codebase you are familiar with. I recommend >> you look at individual commits and select "Ignore Whitespace" in the Github >> UI. >> >> ### Testing >> >> - [x] Github Actions >> - [x] tier1-6 linux-x64, linux-aarch64, windows-x64, macosx-aarch64, >> macosx-x64 >> - [x] build linux-zero, linux-arm, linux-riscv, linux-ppc (LE & BE) >> fastdebug with features C1+C2, C2 only, C1 only >> >> --------- >> - [x] I confirm that I make this contribution in accordance with the >> [OpenJDK Interim AI Policy](https://openjdk.org/legal/ai). > > Manuel Hässig has updated the pull request with a new target base due to a > merge or a rebase. The pull request now contains 49 commits: > > - Merge branch 'master' into remove-jvmci > - Remove graal from test/langtools > - Remove jvmci and graal from test/lib > - Remove jvmci and graal from test/jdk/jdk/jfr > - Remove jvmci from test/jdk/tools/jlink > - Remove jvmci and graal from test/jdk/jdk/modules > - Remove jvmci and graal frmo test/jdk/java/lang > - Remove graal from test/jdk/javax > - Remove jvmci and graal from test/jdk/com/sun/jdi > - Remove jvmci and graal from test/hotspot/jtreg/runtime > - ... and 39 more: https://git.openjdk.org/jdk/compare/061bd076...0100264f I reviewed cpu, os_cpu, c1, cds, code, compiler, interpreter, cvmci, opto, prims I have only few comments. src/hotspot/cpu/aarch64/sharedRuntime_aarch64.cpp line 245: > 243: #else > 244: #if !INCLUDE_JVMCI > 245: assert(!_save_vectors, "vectors are generated only by C2 and JVMCI"); Keep assert because it is under `if ! JVMCI` but remove JVMCI from message. src/hotspot/cpu/riscv/sharedRuntime_riscv.cpp line 206: > 204: #else > 205: #if !INCLUDE_JVMCI > 206: assert(!_save_vectors, "vectors are generated only by C2 and JVMCI"); Keep this assert, remove JVMCI from message. src/hotspot/share/classfile/javaClasses.cpp line 5107: > 5105: jint java_lang_Integer::value(oop obj) { > 5106: jvalue v; > 5107: java_lang_boxing_object::get_value(obj, &v); I thought we may use it in C2 for boxing elimination but it seems not. `EliminateAutoBox` flag is on by default and your testing did not hit an issue. src/hotspot/share/code/nmethod.cpp line 927: > 925: return nullptr; > 926: } > 927: assert(cont_offset != exception_offset, "continuation offset and > exception offset must be different"); May be `guarantee` instead of `assert`. src/hotspot/share/compiler/compiler_globals.hpp line 275: > 273: "mode if posssible") > \ > 274: > \ > 275: product(ccstr, CompilationMode, "default", > \ `CompilationMode` flag was added for Graal: https://bugs.openjdk.org/browse/JDK-8227003 Consider reversing changes as followup RFE. ------------- PR Review: https://git.openjdk.org/jdk/pull/30834#pullrequestreview-4300021164 PR Review Comment: https://git.openjdk.org/jdk/pull/30834#discussion_r3249835421 PR Review Comment: https://git.openjdk.org/jdk/pull/30834#discussion_r3249851694 PR Review Comment: https://git.openjdk.org/jdk/pull/30834#discussion_r3249975398 PR Review Comment: https://git.openjdk.org/jdk/pull/30834#discussion_r3250010633 PR Review Comment: https://git.openjdk.org/jdk/pull/30834#discussion_r3250136528
