Poor quality stencils produced with Homebrew clang version 22.1.2 on Apple Silicon
オープン
@corona10 がすでに取り組んでいます。
2026年4月13日 から。
interpreter-core
pending
performance
topic-JIT
type-bug
- 主要言語
- Python
- スター
- 77.2k
- フォーク
- 35.9k
- PR マージ指標
- PR 指標を取得中
説明
While working on https://github.com/python/cpython/pull/148217, I found that the _fixup_constants optimizer in Tools/jit/_optimizers.py fails to convert adrp+ldr to movz when the two instructions are split by a label.
Example: _LOAD_FAST_r01
// Before (8 instructions):
adrp x8, __JIT_OPARG_16@GOTPAGE
ldr x8, [x8, __JIT_OPARG_16@GOTPAGEOFF]
add x8, x21, w8, uxth #3
ldr x24, [x8, #0x50]
tbnz w24, #0x0, ...
ldr w8, [x24]
add w8, w8, #0x1
str w8, [x24]
// After (7 instructions):
movz x8, #0x0
add x8, x21, w8, uxth #3
ldr x24, [x8, #0x50]
tbnz w24, #0x0, ...
ldr w8, [x24]
add w8, w8, #0x1
str w8, [x24]
Example: _LOAD_FAST_BORROW_r01
// Before (5 instructions):
adrp x8, __JIT_OPARG_16@GOTPAGE
ldr x8, [x8, __JIT_OPARG_16@GOTPAGEOFF]
add x8, x21, w8, uxth #3
ldr x8, [x8, #0x50]
orr x24, x8, #0x1
// After (4 instructions):
movz x8, #0x0
add x8, x21, w8, uxth #3
ldr x8, [x8, #0x50]
orr x24, x8, #0x1
Linked PRs
- gh-148436
- gh-157040
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
評価
この issue はまだ評価されていません。