-
-
Notifications
You must be signed in to change notification settings - Fork 32.6k
Open
Labels
3.15new features, bugs and security fixesnew features, bugs and security fixesinterpreter-core(Objects, Python, Grammar, and Parser dirs)(Objects, Python, Grammar, and Parser dirs)performancePerformance or resource usagePerformance or resource usagetopic-JIT
Description
Currently, we insert shim code into every piece of jitted code to handle the change in calling conventions from the interpreter and the jitted code.
We should, instead use a trampoline function. A trampoline function would perform the same job as the shim code,
but has many advantages:
- we would only need one for the entire process, instead of one per executor.
- we wouldn't need extra refcounting code to keep the shim alive as the trampoline function would always be live.
- we can simplify the tier1 -> tier2 code in
ENTER_EXECUTOR
by having the trampoline manage much of the details - we can use the same interface for the tier 2 interpreter, further simplifying the code
- we only need one entry into the JIT code. No need for
jit_side_entry
Linked PRs
Metadata
Metadata
Assignees
Labels
3.15new features, bugs and security fixesnew features, bugs and security fixesinterpreter-core(Objects, Python, Grammar, and Parser dirs)(Objects, Python, Grammar, and Parser dirs)performancePerformance or resource usagePerformance or resource usagetopic-JIT