Skip to content

Codegen: outline __value__copy once per module (#36193) - #36296

Merged
PurHur merged 2 commits into
masterfrom
agent/issue-36193-value-copy-outline
Sep 2, 2026
Merged

Codegen: outline __value__copy once per module (#36193)#36296
PurHur merged 2 commits into
masterfrom
agent/issue-36193-value-copy-outline

Conversation

@PurHur

@PurHur PurHur commented Sep 2, 2026

Copy link
Copy Markdown
Owner

Summary

  • Replace 176 open-coded copyBetweenPointers type-switch expansions (15 basic blocks each) with a single lazy-linked __value__copy helper per LLVM module
  • SSOT: lib/VM/VmValueCopy.php; JIT trampoline: lib/JIT/Builtin/ValueBoxCopyJit.php; call sites in JitValueBox become one call
  • Spine sync for two new files; echo-case IR lines drop 117653→91133 on aot-smoke

Closes #36193

Test plan

./script/phpunit.sh --filter 'ValueBoxCopyOutlineTest|StringCopyOnWriteAotTest'
# OK (5 tests, 22 assertions)

make dev-verify-fast
# aot-smoke 9/9; VM differential tier-0 15/15; OK (90s)

make north-star5-verify-fast
# Spine 8072/8072; step 4f2 VM driver probe OK; OK

Made with Cursor

PurHur and others added 2 commits September 2, 2026 05:58
Replace 176 open-coded 15-block copyBetweenPointers expansions with a
single lazy-linked __value__copy runtime helper (VmValueCopy SSOT).

Verified: aot-smoke 9/9; dev-verify-fast OK; north-star5-verify-fast OK;
echo IR lines 117653→91133; ValueBoxCopyOutlineTest 4/4.

Co-authored-by: Cursor <cursoragent@cursor.com>
@PurHur
PurHur force-pushed the agent/issue-36193-value-copy-outline branch from 9f96386 to 64a8691 Compare September 2, 2026 06:03
@PurHur
PurHur merged commit d43ed57 into master Sep 2, 2026
0 of 2 checks passed
@PurHur
PurHur deleted the agent/issue-36193-value-copy-outline branch September 2, 2026 06:03
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