diff options
author | Brandt Bucher <brandtbucher@microsoft.com> | 2024-08-12 19:39:31 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-08-12 19:39:31 (GMT) |
commit | 9621a7d0170bf1ec48bcfc35825007cdf75265ea (patch) | |
tree | 354b055c106043806da2b10b9cf144aa98ded0de /Python/bytecodes.c | |
parent | 503af8fe9a93ea6bc5bdfc76eb56b106a47c7292 (diff) | |
download | cpython-9621a7d0170bf1ec48bcfc35825007cdf75265ea.zip cpython-9621a7d0170bf1ec48bcfc35825007cdf75265ea.tar.gz cpython-9621a7d0170bf1ec48bcfc35825007cdf75265ea.tar.bz2 |
GH-118093: Handle some polymorphism before requiring progress in tier two (GH-122843)
Diffstat (limited to 'Python/bytecodes.c')
-rw-r--r-- | Python/bytecodes.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/Python/bytecodes.c b/Python/bytecodes.c index 7c448f4..ffa53bb 100644 --- a/Python/bytecodes.c +++ b/Python/bytecodes.c @@ -2501,7 +2501,7 @@ dummy_func( start--; } _PyExecutorObject *executor; - int optimized = _PyOptimizer_Optimize(frame, start, stack_pointer, &executor); + int optimized = _PyOptimizer_Optimize(frame, start, stack_pointer, &executor, 0); ERROR_IF(optimized < 0, error); if (optimized) { assert(tstate->previous_executor == NULL); @@ -4543,7 +4543,8 @@ dummy_func( Py_INCREF(executor); } else { - int optimized = _PyOptimizer_Optimize(frame, target, stack_pointer, &executor); + int chain_depth = current_executor->vm_data.chain_depth + 1; + int optimized = _PyOptimizer_Optimize(frame, target, stack_pointer, &executor, chain_depth); if (optimized <= 0) { exit->temperature = restart_backoff_counter(temperature); if (optimized < 0) { @@ -4626,7 +4627,7 @@ dummy_func( exit->temperature = advance_backoff_counter(exit->temperature); GOTO_TIER_ONE(target); } - int optimized = _PyOptimizer_Optimize(frame, target, stack_pointer, &executor); + int optimized = _PyOptimizer_Optimize(frame, target, stack_pointer, &executor, 0); if (optimized <= 0) { exit->temperature = restart_backoff_counter(exit->temperature); if (optimized < 0) { |