mirror of
https://github.com/python/cpython.git
synced 2026-05-07 11:01:09 +00:00
27 lines
672 B
Python
27 lines
672 B
Python
# Sample script for use by test_gdb.test_jit
|
|
|
|
import _testinternalcapi
|
|
import operator
|
|
|
|
|
|
WARMUP_ITERATIONS = _testinternalcapi.TIER2_THRESHOLD + 10
|
|
|
|
|
|
def jit_bt_hot(depth, warming_up_caller=False):
|
|
if depth == 0:
|
|
if not warming_up_caller:
|
|
id(42)
|
|
return
|
|
|
|
for iteration in range(WARMUP_ITERATIONS):
|
|
operator.call(
|
|
jit_bt_hot,
|
|
depth - 1,
|
|
warming_up_caller or iteration + 1 != WARMUP_ITERATIONS,
|
|
)
|
|
|
|
|
|
# Warm the shared shim once without hitting builtin_id so the real run uses
|
|
# the steady-state shim path when GDB breaks inside id(42).
|
|
jit_bt_hot(1, warming_up_caller=True)
|
|
jit_bt_hot(1)
|