diff --git a/src/codegen/compiler.cc b/src/codegen/compiler.cc index c93f6e5d42db..5a22b9550a9e 100644 --- a/src/codegen/compiler.cc +++ b/src/codegen/compiler.cc @@ -1179,9 +1179,13 @@ void SpawnDuplicateConcurrentJobForStressTesting(Isolate* isolate, isolate->concurrent_recompilation_enabled() && mode == ConcurrencyMode::kNotConcurrent && isolate->node_observer() == nullptr); + GetOptimizedCodeResultHandling result_handling = + FLAG_stress_concurrent_inlining_attach_code + ? GetOptimizedCodeResultHandling::kDefault + : GetOptimizedCodeResultHandling::kDiscardForTesting; USE(GetOptimizedCode(isolate, function, ConcurrencyMode::kConcurrent, code_kind, BytecodeOffset::None(), nullptr, - GetOptimizedCodeResultHandling::kDiscardForTesting)); + result_handling)); } bool FailAndClearPendingException(Isolate* isolate) { diff --git a/src/flags/flag-definitions.h b/src/flags/flag-definitions.h index 6fd6c3305bc6..e0a0566f2b21 100644 --- a/src/flags/flag-definitions.h +++ b/src/flags/flag-definitions.h @@ -713,12 +713,17 @@ DEFINE_INT(concurrent_recompilation_delay, 0, "artificial compilation delay in ms") DEFINE_BOOL(concurrent_inlining, true, "run optimizing compiler's inlining phase on a separate thread") -DEFINE_BOOL(stress_concurrent_inlining, false, - "makes concurrent inlining more likely to trigger in tests") +DEFINE_BOOL( + stress_concurrent_inlining, false, + "create additional concurrent optimization jobs but throw away result") DEFINE_IMPLICATION(stress_concurrent_inlining, concurrent_inlining) DEFINE_NEG_IMPLICATION(stress_concurrent_inlining, lazy_feedback_allocation) DEFINE_WEAK_VALUE_IMPLICATION(stress_concurrent_inlining, interrupt_budget, 15 * KB) +DEFINE_BOOL(stress_concurrent_inlining_attach_code, false, + "create additional concurrent optimization jobs") +DEFINE_IMPLICATION(stress_concurrent_inlining_attach_code, + stress_concurrent_inlining) DEFINE_INT(max_serializer_nesting, 25, "maximum levels for nesting child serializers") DEFINE_BOOL(trace_heap_broker_verbose, false,