Refactor Opcache optimizer code and move it into Zend. [dmitry, laruence]
Reuse CFG, SSA construction from zend-jit project. [dmitry, laruence] [DONE]
Reuse type and range inference from zend-jit project. [dmitry, laruence] [DONE]
Introduce type specialized opcode handlers e.g. ADD_INT_NUMBER, ADD_INT_INT, ADD_INT_INT_NO_OVERFLOW, etc. [dmitry, nikic] [DONE]
Try additional specialization for frequently executed opcodes (e.g. ASSIGN_NO_RET, DO_FCALL_NO_RET, etc). (VM code size increase doesn't affect performance in negative way) [bwoebi, dmitry] DONE
Escape analysis [dmitry] [DONE] (in PHP-7.3)
Narrowing non-escaping HashTables to plain stack allocated arrays: zend_uchar[], zend_long[], double[], zend_string*[]. Implement corresponding specialized opcode handlers: FETCH_DIM_LONG, ASSIGN_DIM_LONG, etc. [nikic]
Function inlining [nikic, dmitry]
Try marking functions as compile-time evaluable where possible [instead of individual specialized handlers in compiler]
Dataflow optimizations [nikic, dmitry]
Sparse conditional constant propagation [DONE] (in PHP-7.3)
Dead code elimination (control dependent?) [DONE] (in PHP-7.3)
Global value numbering (RPO?)
Copy propagation
Scalar Replacement of Aggreagates [dmitry]
Tail call elimination? (Should this be only where explicit - could cause debugging pain?)