Category
Regression · JIT emit / NestedJIT ABI · php-src-strict
Problem
After #21116 removed phantom JIT\Variable::getValue(), EnumSpaceshipJit no longer fatals on emit, but LLVM module verify still fails when compiling test/compliance/cases/language/enum_spaceship_jit.phpt.
| Repro |
Expected |
Actual (post-#21116) |
vendor/bin/phpunit --filter EnumSpaceshipJit |
green |
module verify: [8 x i8] icmp, __value__ bitcasts, preg_quote/?string, ExceptionHandler depth i32/i64 |
php-src reference
PHP implementation target
- NestedJIT ABI for CompareJitHelper / ExceptionHandler / value-box loads (
lib/JIT.php, ext/standard/JitSpaceshipCompareKernel.php, helpers)
- Prefer PHP-in-PHP NestedJIT fixes over new C
Repro
./script/docker-exec.sh -- bash -lc 'source script/php-env.sh && vendor/bin/phpunit --filter EnumSpaceshipJit'
Progress already on #21123
- numOnLeft i64; HashTable →
__hashtable__*; CompareUnlikeHelper split; StatPath insert restore; enum_from phi dominance; ExceptionHandler empty-string ABI
- Cleared: spaceshipNumberString i32/i64, path_is_readable parentless, enum_from dominance, void*/string* select
Done when
Category
Regression· JIT emit / NestedJIT ABI · php-src-strictProblem
After #21116 removed phantom
JIT\Variable::getValue(),EnumSpaceshipJitno longer fatals on emit, but LLVM module verify still fails when compilingtest/compliance/cases/language/enum_spaceship_jit.phpt.vendor/bin/phpunit --filter EnumSpaceshipJit[8 x i8] icmp,__value__bitcasts, preg_quote/?string, ExceptionHandler depth i32/i64php-src reference
Zend/zend_enum.c— zend_compare_enumZend/zend_operators.c— compare_function / spaceshipPHP implementation target
lib/JIT.php,ext/standard/JitSpaceshipCompareKernel.php, helpers)Repro
./script/docker-exec.sh -- bash -lc 'source script/php-env.sh && vendor/bin/phpunit --filter EnumSpaceshipJit'Progress already on #21123
__hashtable__*; CompareUnlikeHelper split; StatPath insert restore; enum_from phi dominance; ExceptionHandler empty-string ABIDone when
vendor/bin/phpunit --filter EnumSpaceshipJitgreen in pinned container