Skip to content

Commit a80315a

Browse files
author
David Simms
committed
Merge jdk
Merge jdk-26+1
2 parents 2796f35 + 62fde68 commit a80315a

File tree

100 files changed

+2028
-223
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

100 files changed

+2028
-223
lines changed

.jcheck/conf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[general]
22
project=valhalla
33
jbs=JDK
4-
version=25
4+
version=26
55

66
[checks]
77
error=author,committer,executable,symlink,whitespace

make/conf/version-numbers.conf

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,17 +26,17 @@
2626
# Default version, product, and vendor information to use,
2727
# unless overridden by configure
2828

29-
DEFAULT_VERSION_FEATURE=25
29+
DEFAULT_VERSION_FEATURE=26
3030
DEFAULT_VERSION_INTERIM=0
3131
DEFAULT_VERSION_UPDATE=0
3232
DEFAULT_VERSION_PATCH=0
3333
DEFAULT_VERSION_EXTRA1=0
3434
DEFAULT_VERSION_EXTRA2=0
3535
DEFAULT_VERSION_EXTRA3=0
36-
DEFAULT_VERSION_DATE=2025-09-16
37-
DEFAULT_VERSION_CLASSFILE_MAJOR=69 # "`$EXPR $DEFAULT_VERSION_FEATURE + 44`"
36+
DEFAULT_VERSION_DATE=2026-03-17
37+
DEFAULT_VERSION_CLASSFILE_MAJOR=70 # "`$EXPR $DEFAULT_VERSION_FEATURE + 44`"
3838
DEFAULT_VERSION_CLASSFILE_MINOR=0
3939
DEFAULT_VERSION_DOCS_API_SINCE=11
40-
DEFAULT_ACCEPTABLE_BOOT_VERSIONS="24 25"
41-
DEFAULT_JDK_SOURCE_TARGET_VERSION=25
42-
DEFAULT_PROMOTED_VERSION_PRE=lworld5ea
40+
DEFAULT_ACCEPTABLE_BOOT_VERSIONS="24 25 26"
41+
DEFAULT_JDK_SOURCE_TARGET_VERSION=26
42+
DEFAULT_PROMOTED_VERSION_PRE=lworldea2

src/hotspot/share/c1/c1_Runtime1.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -963,7 +963,7 @@ JRT_ENTRY(void, Runtime1::deoptimize(JavaThread* current, jint trap_request))
963963
Deoptimization::DeoptReason reason = Deoptimization::trap_request_reason(trap_request);
964964

965965
if (action == Deoptimization::Action_make_not_entrant) {
966-
if (nm->make_not_entrant("C1 deoptimize")) {
966+
if (nm->make_not_entrant(nmethod::ChangeReason::C1_deoptimize)) {
967967
if (reason == Deoptimization::Reason_tenured) {
968968
MethodData* trap_mdo = Deoptimization::get_method_data(current, method, true /*create_if_missing*/);
969969
if (trap_mdo != nullptr) {
@@ -1290,7 +1290,7 @@ JRT_ENTRY(void, Runtime1::patch_code(JavaThread* current, C1StubId stub_id ))
12901290
// safepoint, but if it's still alive then make it not_entrant.
12911291
nmethod* nm = CodeCache::find_nmethod(caller_frame.pc());
12921292
if (nm != nullptr) {
1293-
nm->make_not_entrant("C1 code patch");
1293+
nm->make_not_entrant(nmethod::ChangeReason::C1_codepatch);
12941294
}
12951295

12961296
Deoptimization::deoptimize_frame(current, caller_frame.id());
@@ -1538,7 +1538,7 @@ void Runtime1::patch_code(JavaThread* current, C1StubId stub_id) {
15381538
// Make sure the nmethod is invalidated, i.e. made not entrant.
15391539
nmethod* nm = CodeCache::find_nmethod(caller_frame.pc());
15401540
if (nm != nullptr) {
1541-
nm->make_not_entrant("C1 deoptimize for patching");
1541+
nm->make_not_entrant(nmethod::ChangeReason::C1_deoptimize_for_patching);
15421542
}
15431543
}
15441544

@@ -1666,7 +1666,7 @@ JRT_ENTRY(void, Runtime1::predicate_failed_trap(JavaThread* current))
16661666

16671667
nmethod* nm = CodeCache::find_nmethod(caller_frame.pc());
16681668
assert (nm != nullptr, "no more nmethod?");
1669-
nm->make_not_entrant("C1 predicate failed trap");
1669+
nm->make_not_entrant(nmethod::ChangeReason::C1_predicate_failed_trap);
16701670

16711671
methodHandle m(current, nm->method());
16721672
MethodData* mdo = m->method_data();

src/hotspot/share/ci/ciReplay.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -803,7 +803,7 @@ class CompileReplay : public StackObj {
803803
// Make sure the existence of a prior compile doesn't stop this one
804804
nmethod* nm = (entry_bci != InvocationEntryBci) ? method->lookup_osr_nmethod_for(entry_bci, comp_level, true) : method->code();
805805
if (nm != nullptr) {
806-
nm->make_not_entrant("CI replay");
806+
nm->make_not_entrant(nmethod::ChangeReason::CI_replay);
807807
}
808808
replay_state = this;
809809
CompileBroker::compile_method(methodHandle(THREAD, method), entry_bci, comp_level,

src/hotspot/share/classfile/classFileParser.cpp

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -154,12 +154,14 @@
154154

155155
#define JAVA_23_VERSION 67
156156

157-
#define CONSTANT_CLASS_DESCRIPTORS 69
158-
159157
#define JAVA_24_VERSION 68
160158

161159
#define JAVA_25_VERSION 69
162160

161+
#define JAVA_26_VERSION 70
162+
163+
#define CONSTANT_CLASS_DESCRIPTORS 70
164+
163165
void ClassFileParser::set_class_bad_constant_seen(short bad_constant) {
164166
assert((bad_constant == JVM_CONSTANT_Module ||
165167
bad_constant == JVM_CONSTANT_Package) && _major_version >= JAVA_9_VERSION,
@@ -4135,9 +4137,9 @@ void ClassFileParser::set_precomputed_flags(InstanceKlass* ik) {
41354137
}
41364138

41374139
bool ClassFileParser::supports_inline_types() const {
4138-
// Inline types are only supported by class file version 69.65535 and later
4139-
return _major_version > JAVA_25_VERSION ||
4140-
(_major_version == JAVA_25_VERSION && _minor_version == JAVA_PREVIEW_MINOR_VERSION);
4140+
// Inline types are only supported by class file version 70.65535 and later
4141+
return _major_version > JAVA_26_VERSION ||
4142+
(_major_version == JAVA_26_VERSION && _minor_version == JAVA_PREVIEW_MINOR_VERSION);
41414143
}
41424144

41434145
// utility methods for appending an array with check for duplicates

src/hotspot/share/classfile/verifier.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ class Verifier : AllStatic {
4848
INVOKEDYNAMIC_MAJOR_VERSION = 51,
4949
NO_RELAX_ACCESS_CTRL_CHECK_VERSION = 52,
5050
DYNAMICCONSTANT_MAJOR_VERSION = 55,
51-
VALUE_TYPES_MAJOR_VERSION = 67,
51+
VALUE_TYPES_MAJOR_VERSION = 70,
5252
JAVA_PREVIEW_MINOR_VERSION = 65535,
5353
};
5454

src/hotspot/share/code/codeCache.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1361,7 +1361,7 @@ void CodeCache::make_marked_nmethods_deoptimized() {
13611361
while(iter.next()) {
13621362
nmethod* nm = iter.method();
13631363
if (nm->is_marked_for_deoptimization() && !nm->has_been_deoptimized() && nm->can_be_deoptimized()) {
1364-
nm->make_not_entrant("marked for deoptimization");
1364+
nm->make_not_entrant(nmethod::ChangeReason::marked_for_deoptimization);
13651365
nm->make_deoptimized();
13661366
}
13671367
}

src/hotspot/share/code/nmethod.cpp

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1994,14 +1994,12 @@ void nmethod::invalidate_osr_method() {
19941994
}
19951995
}
19961996

1997-
void nmethod::log_state_change(const char* reason) const {
1998-
assert(reason != nullptr, "Must provide a reason");
1999-
1997+
void nmethod::log_state_change(ChangeReason change_reason) const {
20001998
if (LogCompilation) {
20011999
if (xtty != nullptr) {
20022000
ttyLocker ttyl; // keep the following output all in one block
20032001
xtty->begin_elem("make_not_entrant thread='%zu' reason='%s'",
2004-
os::current_thread_id(), reason);
2002+
os::current_thread_id(), change_reason_to_string(change_reason));
20052003
log_identity(xtty);
20062004
xtty->stamp();
20072005
xtty->end_elem();
@@ -2010,7 +2008,7 @@ void nmethod::log_state_change(const char* reason) const {
20102008

20112009
ResourceMark rm;
20122010
stringStream ss(NEW_RESOURCE_ARRAY(char, 256), 256);
2013-
ss.print("made not entrant: %s", reason);
2011+
ss.print("made not entrant: %s", change_reason_to_string(change_reason));
20142012

20152013
CompileTask::print_ul(this, ss.freeze());
20162014
if (PrintCompilation) {
@@ -2025,9 +2023,7 @@ void nmethod::unlink_from_method() {
20252023
}
20262024

20272025
// Invalidate code
2028-
bool nmethod::make_not_entrant(const char* reason) {
2029-
assert(reason != nullptr, "Must provide a reason");
2030-
2026+
bool nmethod::make_not_entrant(ChangeReason change_reason) {
20312027
// This can be called while the system is already at a safepoint which is ok
20322028
NoSafepointVerifier nsv;
20332029

@@ -2096,7 +2092,7 @@ bool nmethod::make_not_entrant(const char* reason) {
20962092
assert(success, "Transition can't fail");
20972093

20982094
// Log the transition once
2099-
log_state_change(reason);
2095+
log_state_change(change_reason);
21002096

21012097
// Remove nmethod from method.
21022098
unlink_from_method();

src/hotspot/share/code/nmethod.hpp

Lines changed: 82 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -476,6 +476,85 @@ class nmethod : public CodeBlob {
476476
void oops_do_set_strong_done(nmethod* old_head);
477477

478478
public:
479+
enum class ChangeReason : u1 {
480+
C1_codepatch,
481+
C1_deoptimize,
482+
C1_deoptimize_for_patching,
483+
C1_predicate_failed_trap,
484+
CI_replay,
485+
JVMCI_invalidate_nmethod,
486+
JVMCI_invalidate_nmethod_mirror,
487+
JVMCI_materialize_virtual_object,
488+
JVMCI_new_installation,
489+
JVMCI_register_method,
490+
JVMCI_replacing_with_new_code,
491+
JVMCI_reprofile,
492+
marked_for_deoptimization,
493+
missing_exception_handler,
494+
not_used,
495+
OSR_invalidation_back_branch,
496+
OSR_invalidation_for_compiling_with_C1,
497+
OSR_invalidation_of_lower_level,
498+
set_native_function,
499+
uncommon_trap,
500+
whitebox_deoptimization,
501+
zombie,
502+
};
503+
504+
505+
static const char* change_reason_to_string(ChangeReason change_reason) {
506+
switch (change_reason) {
507+
case ChangeReason::C1_codepatch:
508+
return "C1 code patch";
509+
case ChangeReason::C1_deoptimize:
510+
return "C1 deoptimized";
511+
case ChangeReason::C1_deoptimize_for_patching:
512+
return "C1 deoptimize for patching";
513+
case ChangeReason::C1_predicate_failed_trap:
514+
return "C1 predicate failed trap";
515+
case ChangeReason::CI_replay:
516+
return "CI replay";
517+
case ChangeReason::JVMCI_invalidate_nmethod:
518+
return "JVMCI invalidate nmethod";
519+
case ChangeReason::JVMCI_invalidate_nmethod_mirror:
520+
return "JVMCI invalidate nmethod mirror";
521+
case ChangeReason::JVMCI_materialize_virtual_object:
522+
return "JVMCI materialize virtual object";
523+
case ChangeReason::JVMCI_new_installation:
524+
return "JVMCI new installation";
525+
case ChangeReason::JVMCI_register_method:
526+
return "JVMCI register method";
527+
case ChangeReason::JVMCI_replacing_with_new_code:
528+
return "JVMCI replacing with new code";
529+
case ChangeReason::JVMCI_reprofile:
530+
return "JVMCI reprofile";
531+
case ChangeReason::marked_for_deoptimization:
532+
return "marked for deoptimization";
533+
case ChangeReason::missing_exception_handler:
534+
return "missing exception handler";
535+
case ChangeReason::not_used:
536+
return "not used";
537+
case ChangeReason::OSR_invalidation_back_branch:
538+
return "OSR invalidation back branch";
539+
case ChangeReason::OSR_invalidation_for_compiling_with_C1:
540+
return "OSR invalidation for compiling with C1";
541+
case ChangeReason::OSR_invalidation_of_lower_level:
542+
return "OSR invalidation of lower level";
543+
case ChangeReason::set_native_function:
544+
return "set native function";
545+
case ChangeReason::uncommon_trap:
546+
return "uncommon trap";
547+
case ChangeReason::whitebox_deoptimization:
548+
return "whitebox deoptimization";
549+
case ChangeReason::zombie:
550+
return "zombie";
551+
default: {
552+
assert(false, "Unhandled reason");
553+
return "Unknown";
554+
}
555+
}
556+
}
557+
479558
// create nmethod with entry_bci
480559
static nmethod* new_nmethod(const methodHandle& method,
481560
int compile_id,
@@ -641,8 +720,8 @@ class nmethod : public CodeBlob {
641720
// alive. It is used when an uncommon trap happens. Returns true
642721
// if this thread changed the state of the nmethod or false if
643722
// another thread performed the transition.
644-
bool make_not_entrant(const char* reason);
645-
bool make_not_used() { return make_not_entrant("not used"); }
723+
bool make_not_entrant(ChangeReason change_reason);
724+
bool make_not_used() { return make_not_entrant(ChangeReason::not_used); }
646725

647726
bool is_marked_for_deoptimization() const { return deoptimization_status() != not_marked; }
648727
bool has_been_deoptimized() const { return deoptimization_status() == deoptimize_done; }
@@ -965,7 +1044,7 @@ class nmethod : public CodeBlob {
9651044
// Logging
9661045
void log_identity(xmlStream* log) const;
9671046
void log_new_nmethod() const;
968-
void log_state_change(const char* reason) const;
1047+
void log_state_change(ChangeReason change_reason) const;
9691048

9701049
// Prints block-level comments, including nmethod specific block labels:
9711050
void print_nmethod_labels(outputStream* stream, address block_begin, bool print_section_labels=true) const;

src/hotspot/share/compiler/compilationPolicy.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -924,7 +924,7 @@ void CompilationPolicy::compile(const methodHandle& mh, int bci, CompLevel level
924924
nmethod* osr_nm = mh->lookup_osr_nmethod_for(bci, CompLevel_simple, false);
925925
if (osr_nm != nullptr && osr_nm->comp_level() > CompLevel_simple) {
926926
// Invalidate the existing OSR nmethod so that a compile at CompLevel_simple is permitted.
927-
osr_nm->make_not_entrant("OSR invalidation for compiling with C1");
927+
osr_nm->make_not_entrant(nmethod::ChangeReason::OSR_invalidation_for_compiling_with_C1);
928928
}
929929
compile(mh, bci, CompLevel_simple, THREAD);
930930
}
@@ -1516,7 +1516,7 @@ void CompilationPolicy::method_back_branch_event(const methodHandle& mh, const m
15161516
int osr_bci = nm->is_osr_method() ? nm->osr_entry_bci() : InvocationEntryBci;
15171517
print_event(MAKE_NOT_ENTRANT, mh(), mh(), osr_bci, level);
15181518
}
1519-
nm->make_not_entrant("OSR invalidation, back branch");
1519+
nm->make_not_entrant(nmethod::ChangeReason::OSR_invalidation_back_branch);
15201520
}
15211521
}
15221522
// Fix up next_level if necessary to avoid deopts

0 commit comments

Comments
 (0)