Skip to content

php-in-php: delete dead array_merge LLVM from ArrayBuiltinHelper (#10183)#16919

Merged
PurHur merged 1 commit into
masterfrom
agent/runtime-php-array-merge-dead-llvm
Jul 6, 2026
Merged

php-in-php: delete dead array_merge LLVM from ArrayBuiltinHelper (#10183)#16919
PurHur merged 1 commit into
masterfrom
agent/runtime-php-array-merge-dead-llvm

Conversation

@PurHur

@PurHur PurHur commented Jul 6, 2026

Copy link
Copy Markdown
Owner

Summary

Follow-up slice of #10183 / #1492: array_merge() and array_merge_recursive() JIT/AOT already route through ArrayMergeRuntime + ArrayMergeRecursiveRuntimeArrayMergeJitHelper / ArrayMergeRecursiveJitHelper PHP (SSOT: VmArray / HashTable::mergeRecursiveCopy()). The old LLVM paths in ArrayBuiltinHelper were unreachable dead code.

LLVM shrink

Removed Lines
ArrayBuiltinHelper::merge() + mergeSingleArgumentCopy() LLVM ~160
ArrayBuiltinHelper::mergeRecursive() + overlay LLVM subtree ~300
ext/standard/JitArrayMergeRecursive.php shim 18
Net ArrayBuiltinHelper.php −468

Kept appendValueEntryToPacked() / storeValueEntryAtIndexWithHashtable() (still used by copyInto()).

Verification

./script/docker-exec.sh -- bash -lc 'source script/php-env.sh
vendor/bin/phpunit --filter ArrayMergeRecursiveRuntimeShrinkTest   # OK (3 tests)
vendor/bin/phpunit --filter ArrayMergeRuntimeShrinkTest            # OK (2 tests)
vendor/bin/phpunit test/compliance/VMTest.php --filter array_merge_recursive  # OK (7 tests)
make bootstrap-selfhost-vm-driver-execute-probe                    # OK
php script/bootstrap-inventory.php && php script/check-selfhost-spine-coverage-sync.php
'

Note: 2 AotTest array_merge_recursive cases fail on master too (HashTable::mergerecursivecopy() AOT naming) — pre-existing, not introduced here.

Closes #10183 (dead-code slice; epic tracking continues under #1492).

Made with Cursor

ArrayMergeRuntime and ArrayMergeRecursiveRuntime already route through
ArrayMergeJitHelper / ArrayMergeRecursiveJitHelper PHP; remove ~468 lines
of unreachable LLVM (merge, mergeRecursive, overlay) plus JitArrayMergeRecursive shim.

Co-authored-by: Cursor <cursoragent@cursor.com>
@PurHur PurHur merged commit 31978db into master Jul 6, 2026
1 check failed
@PurHur PurHur deleted the agent/runtime-php-array-merge-dead-llvm branch July 6, 2026 13:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

php-in-php: JIT ArrayBuiltinHelper — route array builtin LLVM through VmArray PHP not ~15k-line monolith (#1492)

1 participant