Skip to content

gh-100239: Specialize exact float division with BINARY_OP_EXTEND - #156324

Open
koxudaxi wants to merge 1 commit into
python:mainfrom
koxudaxi:gh-100239-float-division
Open

gh-100239: Specialize exact float division with BINARY_OP_EXTEND#156324
koxudaxi wants to merge 1 commit into
python:mainfrom
koxudaxi:gh-100239-float-division

Conversation

@koxudaxi

@koxudaxi koxudaxi commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

This adds exact float / float and /= entries to BINARY_OP_EXTEND.

gh-146397 added specialized float division uops in tier 2, but plain a / b is still generic in tier 1. The optimizer lowers the new descriptor to the existing float guards and division uops, so no new opcode or JIT stencil is needed.

Benchmarks

Medians of nine alternating runs after two warmups on macOS arm64 with PYTHON_JIT=0:

Benchmark main branch Improvement
exact / loop 288.574 ms 250.588 ms 13.2%
exact /= loop 307.372 ms 263.853 ms 14.2%
pyperformance float body 431.996 ms 414.723 ms 4.0%
Barnes-Hut 436.568 ms 427.196 ms 2.1%

Tier 2 results and the negative controls were neutral.

The full test suite passes. Focused tests also pass with the native JIT, the free-threaded build, and a debug build with refleak checks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant