Skip to content

JIT: cache __value__ type tags in emitBoxedNumericResult (#36217) - #36289

Merged
PurHur merged 2 commits into
masterfrom
agent/issue-36217-tag-caching
Sep 2, 2026
Merged

JIT: cache __value__ type tags in emitBoxedNumericResult (#36217)#36289
PurHur merged 2 commits into
masterfrom
agent/issue-36217-tag-caching

Conversation

@PurHur

@PurHur PurHur commented Sep 2, 2026

Copy link
Copy Markdown
Owner

Summary

Closes #36217 (partial — loop-counter and call-argument speculation remain follow-ups)

Test plan

./script/phpunit.sh --filter 'Issue34674|Issue34678|value_string_arith'
# OK (3 tests, 25 assertions)

make dev-verify-fast
# aot-smoke: 9 passed, 0 failed
# VM differential tier-0: 15/15 match Zend
# dev-verify-fast: OK (108s wall)

Not run: full script/differential-sweep.sh --aot --repeat 3 (no lowering semantics change expected; tag loads are CSE-equivalent)

Made with Cursor

PurHur and others added 2 commits September 2, 2026 05:02
Cache isNamedVariableSlot and operandForScopeSlot per slot, invalidated
when bindScopeOperandSlot mutates scope — same pattern as #36152 /
operandBySlotCache (#36226). fibo(25) ~27.7s → ~25.5s on VM.

Co-authored-by: Cursor <cursoragent@cursor.com>
Load each operand's type byte once for promotion checks and float
conversion instead of reloading via valueIsDouble/valueBoxToDouble.

Co-authored-by: Cursor <cursoragent@cursor.com>
@PurHur
PurHur merged commit 6c496fa into master Sep 2, 2026
1 check failed
@PurHur
PurHur deleted the agent/issue-36217-tag-caching branch September 2, 2026 05:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant