-
-
Notifications
You must be signed in to change notification settings - Fork 33.3k
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
This affects both x86-64 and AArch64.
Most guard micro-ops are checking against 16 or 32 bit version numbers, so this is an important use case.
The code we generate is too large and, on AArch64, performs extra memory accesses.
| Constant | x86-64 now | x86-64 ideal | AArch64 now | AArch64 ideal |
|---|---|---|---|---|
| 16 bit | 1 10 byte instruction | 1 5 byte instruction | 2 instructions + 1 memory load | 1 instruction |
| 32 bit | 1 10 byte instruction | 1 5 byte instruction | 2 instructions + 1 memory load | 2 instructions |
efimov-mikhail, Balmasexy and sergey-miryanov
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