From 03d66d9ee239d77d54912f4fa3074560ac2a8101 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20H=C3=A4ssig?= Date: Tue, 24 Jun 2025 07:00:45 +0000 Subject: [PATCH] 8358572: C1 hits "need debug information" assert with -XX:-DeoptC1 Reviewed-by: shade, aph --- src/hotspot/share/c1/c1_Compilation.cpp | 2 +- src/hotspot/share/c1/c1_GraphBuilder.cpp | 5 ++--- src/hotspot/share/c1/c1_globals.hpp | 3 --- 3 files changed, 3 insertions(+), 7 deletions(-) diff --git a/src/hotspot/share/c1/c1_Compilation.cpp b/src/hotspot/share/c1/c1_Compilation.cpp index 3e2171eee08..bb5ceb0106b 100644 --- a/src/hotspot/share/c1/c1_Compilation.cpp +++ b/src/hotspot/share/c1/c1_Compilation.cpp @@ -668,7 +668,7 @@ ciKlass* Compilation::cha_exact_type(ciType* type) { if (type != nullptr && type->is_loaded() && type->is_instance_klass()) { ciInstanceKlass* ik = type->as_instance_klass(); assert(ik->exact_klass() == nullptr, "no cha for final klass"); - if (DeoptC1 && UseCHA && !(ik->has_subklass() || ik->is_interface())) { + if (UseCHA && !(ik->has_subklass() || ik->is_interface())) { dependency_recorder()->assert_leaf_type(ik); return ik; } diff --git a/src/hotspot/share/c1/c1_GraphBuilder.cpp b/src/hotspot/share/c1/c1_GraphBuilder.cpp index 8658bebdaee..c11017fc442 100644 --- a/src/hotspot/share/c1/c1_GraphBuilder.cpp +++ b/src/hotspot/share/c1/c1_GraphBuilder.cpp @@ -1855,7 +1855,6 @@ void GraphBuilder::access_field(Bytecodes::Code code) { Dependencies* GraphBuilder::dependency_recorder() const { - assert(DeoptC1, "need debug information"); return compilation()->dependency_recorder(); } @@ -2001,7 +2000,7 @@ void GraphBuilder::invoke(Bytecodes::Code code) { ciMethod* cha_monomorphic_target = nullptr; ciMethod* exact_target = nullptr; Value better_receiver = nullptr; - if (UseCHA && DeoptC1 && target->is_loaded() && + if (UseCHA && target->is_loaded() && !(// %%% FIXME: Are both of these relevant? target->is_method_handle_intrinsic() || target->is_compiled_lambda_form()) && @@ -2252,7 +2251,7 @@ bool GraphBuilder::direct_compare(ciKlass* k) { if (ik->is_final()) { return true; } else { - if (DeoptC1 && UseCHA && !(ik->has_subklass() || ik->is_interface())) { + if (UseCHA && !(ik->has_subklass() || ik->is_interface())) { // test class is leaf class dependency_recorder()->assert_leaf_type(ik); return true; diff --git a/src/hotspot/share/c1/c1_globals.hpp b/src/hotspot/share/c1/c1_globals.hpp index e3615ae88ad..755a1572e54 100644 --- a/src/hotspot/share/c1/c1_globals.hpp +++ b/src/hotspot/share/c1/c1_globals.hpp @@ -244,9 +244,6 @@ develop(bool, GenerateArrayStoreCheck, true, \ "Generates code for array store checks") \ \ - develop(bool, DeoptC1, true, \ - "Use deoptimization in C1") \ - \ develop(bool, PrintBailouts, false, \ "Print bailout and its reason") \ \