summaryrefslogtreecommitdiff
path: root/ext/opcache/Optimizer/zend_dump.c
Commit message (Collapse)AuthorAgeFilesLines
...
* Cleanup cfg flags & Added ZEND_FUNC_HAS_EXTENED_INFOXinchen Hui2017-10-181-1/+4
|
* Always use IS_CONSTANT_AST (IS_CONSTANT is removed).Dmitry Stogov2017-10-101-3/+0
|
* Add line numbers to Opcache's zend_dump_op() debug outputRasmus Lerdorf2017-10-061-2/+2
|
* Changed the way VM accesses constant operands in 64-bit builds.Dmitry Stogov2017-10-041-3/+3
|
* Merge branch 'PHP-7.2'Xinchen Hui2017-09-291-1/+1
|\ | | | | | | | | * PHP-7.2: Fixed bug #75267 (possible &/&& mixup)
| * Merge branch 'PHP-7.1' into PHP-7.2Xinchen Hui2017-09-291-1/+1
| |\ | | | | | | | | | | | | * PHP-7.1: Fixed bug #75267 (possible &/&& mixup)
| | * Fixed bug #75267 (possible &/&& mixup)Xinchen Hui2017-09-291-1/+1
| | |
| | * Update copyright headers to 2017Sammy Kaye Powers2017-01-041-1/+1
| | |
* | | Added debug outputDmitry Stogov2017-09-131-2/+25
| | |
* | | Initial implementation of Escape Analysis (disabled yet).Dmitry Stogov2017-08-221-1/+4
|/ /
* | Separate ISSET_ISEMPTY_CV/UNSET_CV from ISSET_ISEMPTY_VAR/UNSET_VARDmitry Stogov2017-07-171-3/+0
| |
* | Implement jumptable optimizationNikita Popov2017-04-101-8/+26
| |
* | Update copyright headers to 2017Sammy Kaye Powers2017-01-021-1/+1
|/
* Fixed typoDmitry Stogov2016-10-201-1/+1
|
* Allow optional splitting of basic blocks at RECV/RECV_INIT opcodes.Dmitry Stogov2016-08-291-1/+1
|
* Fixed compilation warningsDmitry Stogov2016-06-211-4/+6
|
* Add support for "instanceof" pi nodesNikita Popov2016-06-131-1/+1
|
* Use union for pi constraintsNikita Popov2016-06-131-7/+11
| | | | | This will make it easier to extend pi constraints without impacting structure sizes.
* Split ZEND_SEND_VAR_NO_REF into ZEND_SEND_VAR_NO_REF and ↵Dmitry Stogov2016-05-311-13/+0
| | | | ZEND_SEND_VAR_NO_REF_EX (similar to ZEND_SEND_VAL) and remove ZEND_ARG_* flags.
* Fixed bug #72213 (Finally leaks on nested exceptions).Dmitry Stogov2016-05-251-11/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Squashed commit of the following: commit 8461b0407fc9eab0869d43b84e6a92ba2fe06997 Author: Dmitry Stogov <dmitry@zend.com> Date: Wed May 25 00:34:42 2016 +0300 Rmoved zend_try_catch_element.parent and walk through op_array.try_catch_array backward from the current try_cacth_offset. commit 0c71e249649bed178bfbef30bb3e63c57f07af05 Author: Dmitry Stogov <dmitry@zend.com> Date: Wed May 25 00:04:53 2016 +0300 Move SAVE_OPLINE() to its original place commit 111432a4df738fcd65878a42f23194dc3c4983a2 Author: Dmitry Stogov <dmitry@zend.com> Date: Wed May 25 00:01:10 2016 +0300 Separate the common part of ZEND_HANDLE_EXCEPTION and FAST_RET into zend_dispatch_try_catch_finally_helper. commit 4f21c06c2ec17819a708bc037f318784554a6ecd Author: Nikita Popov <nikic@php.net> Date: Tue May 24 14:55:27 2016 +0200 Improve finally fix commit da5c7274997b8308e682b5bf280124e3a1483086 Author: Dmitry Stogov <dmitry@zend.com> Date: Tue May 24 10:36:08 2016 +0300 Fixed Zend/tests/try/bug70228_3.phpt and Zend/tests/try/bug70228_4.phpt commit cfcedf2fb4f4fc1f7de9f7d53a3037fed7795f19 Author: Dmitry Stogov <dmitry@zend.com> Date: Tue May 24 02:59:27 2016 +0300 Added test commit 4c6aa93d43da941eb4fda15b48154bfb104bdc04 Author: Dmitry Stogov <dmitry@zend.com> Date: Tue May 24 00:38:20 2016 +0300 Added tests commit 8a8f4704b0eca2e460d42c1f253a363b0db8e510 Author: Dmitry Stogov <dmitry@zend.com> Date: Mon May 23 23:27:34 2016 +0300 Fixed bug #72213 (Finally leaks on nested exceptions)
* Replace BB end with BB lenNikita Popov2016-05-241-8/+10
| | | | And support empty blocks everywhere.
* Improve previous fixNikita Popov2016-05-221-2/+1
| | | | | | | | | | | Do not mark loop var free blocks as reachable after all -- as we can't construct SSA for unreachable blocks, this would cause issues down the line. Instead add an extra UNREACHABLE_FREE flag and retain only the FREE instruction during NOP removal. (If we retain all instructions in the BB we might leave a jump instruction that goes into the nowhere.)
* Merge def and gen setsNikita Popov2016-04-211-1/+0
| | | | | | | | | | For live-variable analysis it does not matter if def includes variables that are previously use in the same block, the data flow equations still have the same result. As such there is no need to compute separate gen & def sets. I'm keeping the name "def", because use of "gen" in this context is pretty confusing (gen is usually the use set, not the def set).
* Various SSA-related tweaksNikita Popov2016-02-281-4/+6
| | | | | | | | | * Add FETCH_LIST to inference * Restrict JMP_SET/COALESCE result type * Fix typos in range inference * Add const annotations in zend_ssa.h * For pi statements dump the associated predecessor block * If type can be both true and false, dump bool instead
* Support dropping rc1/rcn from dumpsNikita Popov2016-02-271-32/+35
| | | | For non-JIT we're not interested in rc inference.
* Combine conditionsDmitry Stogov2016-02-111-12/+4
|
* Remove EXT_TYPE_UNUSED in favor of IS_UNUSEDNikita Popov2016-02-111-4/+0
| | | | | | | | | | | This means we no longer allocate an unused VAR for the retval of instructions that support unused results. Nearly all instructions already used the result variable only if it was used. The only exception to this was the return value variable for internal function call results. I've adjusted the code to use a stack zval for the unused return case now. As we have retval specialization now, we know that it doesn't matter.
* Support CFG construction without live range splittingNikita Popov2016-02-091-4/+11
| | | | | | | | We must not split at live range boundaries for SSA constructions, otherwise an OP_DATA instruction may be separated into new block and not picked up during renaming. It's also unnecessary for this use case and only blows up the CFG.
* Don't print try-catch offset for FAST_RET w/o evNikita Popov2016-01-211-1/+3
|
* Consolidate op1/op2 vm flagsNikita Popov2016-01-211-45/+46
|
* Add support for Pi type constraintsNikita Popov2016-01-191-2/+8
| | | | Supports TYPE_CHECK and IS_IDENTICAL for now.
* Typo (ASSESS->ACCESS)Dmitry Stogov2016-01-191-1/+1
|
* Use ZEND_FUNC_INDIRECT_VAR_ASSESS instead of ZEND_FUNC_TOO_DYNAMIC. Handle ↵Dmitry Stogov2016-01-191-0/+3
| | | | function with exceptions handlers and generators separately.
* Introduced BIND_STATIC opcode instead of ↵Dmitry Stogov2016-01-121-3/+0
| | | | | | FETCH_R/FETCH_W(static)+ASSIGN/ASSIGN_REF (similar to BIND_GLOBAL). In the future we may refer to static variable by index instead of name, to eliminate hash lookup.
* Happy new year (Update copyright to 2016)Lior Kaplan2016-01-011-1/+1
|
* Introduce BIND_LEXICALNikita Popov2015-12-291-3/+0
| | | | | | | | | | | 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.
* Support for incompletely constructed SSADmitry Stogov2015-12-231-0/+6
|
* Get rid of MAY_BE_DEFDmitry Stogov2015-12-211-4/+0
|
* Remove uses of VARs in extended_valueNikita Popov2015-12-211-2/+0
| | | | | | | | | | | | | | | | | The DECLARE_(ANON_)INHERITED_CLASS(_DELAYED) opcodes were referencing the parent ce VAR through extended_value. This is hacky and we can't track the def-use chain in SSA. To avoid this, the layout of declaration opcodes is changed as follows: op1 points to the lcname and rtd_key literals, in that order. (For anon/lambda declarations only one of lcname or rtd_key is present.) This frees up op2, which is now used to reference the parent ce VAR in inheriting declarations. The jmp offset for anon class declarations is moved frop op2 to extended_value. The changes were applied both to class and function declarations to keep everything symmetric.
* Fixed dump formatDmitry Stogov2015-12-181-1/+1
|
* Fallbuck to simple dump format if CFG wasn't constructedDmitry Stogov2015-12-161-0/+3
|
* Added e-SSA based DFA optimisation framework (incomplete)Dmitry Stogov2015-12-161-43/+634
|
* Added e-SSA based DFA optimisation framework (incomplete)Dmitry Stogov2015-12-111-62/+94
|
* Describe special meaning of IS_UNUSED oprerandDmitry Stogov2015-12-111-29/+63
|
* Use more compact description encoding schema to free some bitsDmitry Stogov2015-12-111-19/+19
|
* Improve Optimizer debugging facility (print the meaning of extended_value)Dmitry Stogov2015-12-111-6/+221
|
* Apply local optimizatons to extended bacic block (this allows some ↵Dmitry Stogov2015-12-101-5/+7
| | | | optimizarions across few following BBs).
* Improved optimizer dubugging facilityDmitry Stogov2015-12-091-3/+22
|
* Fixed formatingDmitry Stogov2015-12-091-1/+1
|
* Fixed compilation warningDmitry Stogov2015-11-261-1/+1
|