Skip to content

AOT: keep native long on int +/−/* hot path (#36189) - #36281

Merged
PurHur merged 1 commit into
masterfrom
agent/issue-36189-typed-int-native-long
Sep 2, 2026
Merged

AOT: keep native long on int +/−/* hot path (#36189)#36281
PurHur merged 1 commit into
masterfrom
agent/issue-36189-typed-int-native-long

Conversation

@PurHur

@PurHur PurHur commented Sep 2, 2026

Copy link
Copy Markdown
Owner

Summary

php-src reference

  • Zend/zend_operators.hfast_long_add_function / ZEND_SIGNED_ADD_OVERFLOW: fast path stays IS_LONG, overflow materialises double.

Verification

./script/phpunit.sh --filter 'IntArithOverflowPromote31964AotTest|IntSubOverflowPromote32422AotTest'
# OK (3 tests, 13 assertions)

./script/aot-smoke.sh
# aot-smoke: 9 passed, 0 failed

make north-star5-verify-fast
# north-star5-verify: OK (fast)

Not run this run: script/differential-sweep.sh --aot --repeat 3, fibo wall-time benchmark refresh (benchmarks/README.md).

Closes #36189

Made with Cursor

binaryNativeLong no longer boxes every non-overflow result via __value__writeLong;
overflow still promotes to double on a cold path with a flag for VALUE consumers.

Verified: IntArithOverflowPromote31964AotTest + IntSubOverflowPromote32422AotTest 3/3,
aot-smoke 9/9, north-star5-verify-fast OK.

Co-authored-by: Cursor <cursoragent@cursor.com>
@PurHur
PurHur force-pushed the agent/issue-36189-typed-int-native-long branch from 7f00c8b to 6b437e7 Compare September 2, 2026 03:57
@PurHur
PurHur merged commit eddfcd5 into master Sep 2, 2026
1 check failed
@PurHur
PurHur deleted the agent/issue-36189-typed-int-native-long branch September 2, 2026 03:57
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