Skip to content

Regression: EnumSpaceshipJit module verify fails NestedJIT ABI after getValue fix (re-#21109) #21124

Description

@PurHur

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

  • vendor/bin/phpunit --filter EnumSpaceshipJit green in pinned container
  • Remaining NestedJIT verify errors above gone
  • php-src-strict; no php-compiler-strict shortcut

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions