You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Language: Enum::cases() — JIT/AOT case list lowering (phase 2 of #3308) #4068
UnitEnum::cases() / backed Enum::cases() work on VM via lib/VM/Builtin/EnumCases.php. JIT skips enum static calls (test/compliance/JITTest.php — "Enum::cases() is VM-only until JIT enum case lowering (#3308)").
Self-host and enum-heavy code needs compile-time/lowering of Suit::cases() without VM deopt.
php-src reference
Zend/zend_enum.c — zend_enum_list_cases, case table materialization
Category
languageProblem (phase 2 of #3308)
UnitEnum::cases()/ backedEnum::cases()work on VM vialib/VM/Builtin/EnumCases.php. JIT skips enum static calls (test/compliance/JITTest.php— "Enum::cases() is VM-only until JIT enum case lowering (#3308)").Self-host and enum-heavy code needs compile-time/lowering of
Suit::cases()without VM deopt.php-src reference
Zend/zend_enum.c—zend_enum_list_cases, case table materializationZend/zend_compile.c—ZEND_FETCH_CLASS_CONSTANTfor syntheticcasesmethodRepro (JIT failure today)
Zend / VM:
2:HeartsJIT (today): VM fallback or compile skip for
cases()static call.Scope
lib/JIT/— lowerTYPE_STATICCALLon enum classes where method is syntheticcasesVM\ClassEntry/ enum registry at JIT compile timetest/compliance/cases/language/enum_cases_jit.phpt(extendenum_cases.phpt)Done when
2:Heartsunderbin/jit.phpwithout VM fallbackJITTestenum-cases skip removedEnum::cases()JIT yesLinks
from/tryFromJIT) · Epic: Self-host critical path — compiler compiles itself (M3→M5) #1492