Browse Source
Introduce BIND_LEXICAL
Introduce BIND_LEXICAL
This opcodes inserts a local CV into the closure static variable table. This replaces the previous mechanism of having static variables marked as LEXICAL, which perform a symtable lookup during copying. This means a) functions which contain closures no longer have to rebuild their symtable (better performance) and b) we can now track used variables in SSA.pull/1699/head
16 changed files with 157 additions and 98 deletions
-
15Zend/zend_closures.c
-
1Zend/zend_closures.h
-
42Zend/zend_compile.c
-
1Zend/zend_compile.h
-
2Zend/zend_types.h
-
53Zend/zend_variables.c
-
2Zend/zend_variables.h
-
31Zend/zend_vm_def.h
-
56Zend/zend_vm_execute.h
-
6Zend/zend_vm_opcodes.c
-
3Zend/zend_vm_opcodes.h
-
18ext/opcache/Optimizer/zend_cfg.c
-
1ext/opcache/Optimizer/zend_dfg.c
-
3ext/opcache/Optimizer/zend_dump.c
-
14ext/opcache/Optimizer/zend_inference.c
-
7ext/opcache/Optimizer/zend_ssa.c
Write
Preview
Loading…
Cancel
Save
Reference in new issue