summaryrefslogtreecommitdiff
path: root/ext/opcache/Optimizer/optimize_temp_vars_5.c
Commit message (Collapse)AuthorAgeFilesLines
* Implement single-pass live range calculationNikita Popov2019-01-211-8/+0
| | | | | | | | Instead of interleaving creation of live-ranges with the main compiler code, compute them in a separate pass over the opcodes as part of pass_two. Additionally, do not keep live ranges synchronized during optimization in opcache and instead use the same mechanism to recompute them after optimization.
* Future-proof email addresses...Zeev Suraski2018-11-011-3/+3
|
* Removed dead codeDmitry Stogov2018-10-291-6/+0
|
* year++Xinchen Hui2018-01-021-1/+1
|
* Get rid of old compatibility macrosDmitry Stogov2017-07-041-13/+13
|
* Merge branch 'PHP-7.0' into PHP-7.1Bob Weinand2017-07-011-0/+1
|\
| * Fixed bug #74840 (Opcache overwrites argument of GENERATOR_RETURN within ↵Bob Weinand2017-07-011-0/+1
| | | | | | | | finally)
| * Update copyright headers to 2017Sammy Kaye Powers2017-01-041-1/+1
| |
* | Update copyright headers to 2017Sammy Kaye Powers2017-01-041-1/+1
| |
* | Remove EXT_TYPE_UNUSED in favor of IS_UNUSEDNikita Popov2016-02-111-9/+4
| | | | | | | | | | | | | | | | | | | | | | 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.
* | Cleanup OP_DATA usage. Now only first operand of OP_DATA is used for ↵Dmitry Stogov2016-02-091-20/+0
| | | | | | | | ASSIGN_DIM, ASSIGN_OBJ and ASSIGN_OP (DIM/OBJ) instructions.
* | Improve the namesXinchen Hui2016-01-251-1/+1
| |
* | Merge branch 'PHP-7.0'Lior Kaplan2016-01-011-1/+1
|\ \ | |/ | | | | | | | | | | * PHP-7.0: Update header to PHP Version 7 Happy new year (Update copyright to 2016) Happy new year (Update copyright to 2016)
| * Happy new year (Update copyright to 2016)Lior Kaplan2016-01-011-1/+1
| |
* | Remove uses of VARs in extended_valueNikita Popov2015-12-211-12/+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.
* | Squashed commit of the following:Dmitry Stogov2015-11-131-0/+8
|/ | | | | | | | | | | | | | | | | | | | | | | | | | commit afe963e6cc289696e60c6c679796ba2197c52b3b Author: Dmitry Stogov <dmitry@zend.com> Date: Fri Nov 13 15:32:29 2015 +0300 Added news entry commit a126b891c97848dd7ef8f1abf716328c46e0f19c Author: Dmitry Stogov <dmitry@zend.com> Date: Fri Nov 13 15:29:21 2015 +0300 VERIFY_RETURN_TYPE doesn't have to cleanup operand on exception, bacause now, live temporary variables are released by exception unwinder. commit 0db475e98786e6bcaa8401ee3e0b33743b9a2f2b Author: Dmitry Stogov <dmitry@zend.com> Date: Thu Nov 12 22:55:39 2015 +0300 Fixed copy/paste commit 0ac73fe7174bec9de9a610319a98b259bea67f7f Author: Dmitry Stogov <dmitry@zend.com> Date: Wed Nov 11 16:11:50 2015 +0300 Fixed bug #62210 (Exceptions can leak temporary variables)
* Fixed bug #70207 (Finally is broken with opcache)Dmitry Stogov2015-08-101-1/+31
|
* Reduce memory usage by using bitsets instead of array of bytes.Dmitry Stogov2015-08-061-34/+37
|
* Add comment to explaining the new checkXinchen Hui2015-07-081-0/+3
|
* Fixed bug #70012 (Exception lost with nested finally block)Xinchen Hui2015-07-081-2/+3
|
* Refactored using specialized opcodesDmitry Stogov2015-04-271-0/+1
|
* Optimized strings concatenation.Dmitry Stogov2015-03-241-4/+33
| | | | | ZEND_ADD_STRING/VAR/CHAR are replaced with ZEND_ROPE_INTI, ZEND_ROPE_ADD, ZEND_ROPE_END. Instead of reallocation and copying string on each ZEND_ADD_STRING/VAR/CAHR, collect all the strings and then allocate and construct the resulting string once.
* Fix "forech" statemt behaviour according to ↵Dmitry Stogov2015-02-121-28/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://wiki.php.net/rfc/php7_foreach Squashed commit of the following: commit 1e41295097576dbce6c197ddb7507c07ccae3cbe Author: Dmitry Stogov <dmitry@zend.com> Date: Sat Jan 31 07:28:58 2015 +0300 Generalize HashTableIterator API to allows its usage without involvement of HashTable.nInternalPonter commit 5406f21b11e563069d64045e599693b51c444b63 Author: Dmitry Stogov <dmitry@zend.com> Date: Fri Jan 30 18:08:43 2015 +0300 Reduced alghorithms complexity commit b37f1d58d2a141b6e1d980a461ccb588d4317d2e Author: Dmitry Stogov <dmitry@zend.com> Date: Fri Jan 30 18:08:30 2015 +0300 Fixed test name commit fb2d079645829b12ed4e55a461034df6400bc430 Author: Dmitry Stogov <dmitry@zend.com> Date: Fri Jan 30 18:08:05 2015 +0300 API cleanup commit 08302c0d6d1cab279b9f2129df03a057baddf2ff Author: Dmitry Stogov <dmitry@zend.com> Date: Fri Jan 30 14:20:46 2015 +0300 Make array_splice() to preserve foreach hash position commit cc4b7be41e2e2b9b0d7a3c8e98466b8886692e6e Author: Dmitry Stogov <dmitry@zend.com> Date: Fri Jan 30 12:24:31 2015 +0300 Make internal function, operation on array passed by reference, to preserve foreach hash position commit 5aa9712b0a30303aadfe3bdd8ae1f072ca3e6ba1 Author: Dmitry Stogov <dmitry@zend.com> Date: Fri Jan 30 09:49:35 2015 +0300 Implement consistent behavior for foreach by value over plain object commit 4c5b385ff53ae9f0b52572e98c4db801f56603b0 Author: Dmitry Stogov <dmitry@zend.com> Date: Fri Jan 30 07:56:37 2015 +0300 More careful iterators update. commit 721fc9e80d2ee8f2cd79c8c3cdceffae2c72de92 Author: Dmitry Stogov <dmitry@zend.com> Date: Thu Jan 29 21:43:28 2015 +0300 Added new test commit 15a23b1218b3e38630d677751a975907daa2cd54 Author: Dmitry Stogov <dmitry@zend.com> Date: Thu Jan 29 21:05:02 2015 +0300 Reimplement iteration magic with HashTableIterators (see https://wiki.php.net/rfc/php7_foreach#implementation_details) commit 10a3260b1f16b6075fd8140f673dfef4d5efea91 Author: Dmitry Stogov <dmitry@zend.com> Date: Thu Jan 29 21:04:44 2015 +0300 New test commit eef80c583762d1e98d177cdbb27e3a8a6b0c4539 Author: Dmitry Stogov <dmitry@zend.com> Date: Wed Jan 28 16:52:21 2015 +0300 Fixed foreach by reference iteration over constant array commit 61e739187391661e2d541947bec25d7dcc4479f3 Author: Dmitry Stogov <dmitry@zend.com> Date: Wed Jan 28 14:59:54 2015 +0300 Fixed temporary variable re-allocation pass commit 92e90c09f085c22707ff4a59201f016f56e0ef8b Author: Dmitry Stogov <dmitry@zend.com> Date: Wed Jan 28 12:44:57 2015 +0300 Fixed operand destruction in case of exceptions in iterator commit dd2a36a2074bbb0cb31de00b66dcf2812d6d753f Author: Dmitry Stogov <dmitry@zend.com> Date: Wed Jan 28 10:02:34 2015 +0300 Use GET_OP1_ZVAL_PTR_DEREF() (IS_TMP_VAR and IS_CONST can't be IS_REFERENCE) commit 4638f7b91407c48710007af82a68da0007c820f2 Author: Dmitry Stogov <dmitry@zend.com> Date: Wed Jan 28 07:43:28 2015 +0300 Change "foreach" statement behavior (this is just a PoC yet) - "foreach by value" don't relay on internal array/object pointer and doesnt perform array duplication. It just locks it incrementing reference counter. If the original array is modified by some code, the copy on write is performed and "foreach" still work with the old copy. - it makes no difference if array given to "foreach by value" is reference itself - "foreach by reference" still use internal array/object pointer and should work similar to PHP-5. (This id not completely implemented)
* bump yearXinchen Hui2015-01-151-1/+1
|
* trailing whitespace removalStanislav Malyshev2015-01-101-1/+1
|
* Reimplemented used stack size recalculation (replaced ↵Dmitry Stogov2014-12-261-51/+0
| | | | 3d4babdc2b03515fa30e382125a7e79d10bafe7e)
* Adjust tempoary variable used in caller's sideXinchen Hui2014-12-251-0/+51
|
* Refactored optimizer (compile different opimizer passes separately, instead ↵Dmitry Stogov2014-08-281-1/+9
| | | | of including *.c file)
* Add copyright headerXinchen Hui2014-08-151-0/+21
|
* Remove old version PHP supportsXinchen Hui2014-08-151-106/+17
|
* Use arena allocator for optimizer temporary data structuresDmitry Stogov2014-06-181-9/+7
|
* Optimizer related fixes (incomplete)Dmitry Stogov2014-03-311-6/+29
|
* ext/opcache refactoring (incomplete)Dmitry Stogov2014-03-281-13/+14
|
* Merge Zend Optimizer+Dmitry Stogov2013-03-161-0/+222
git-subtree-dir: ext/opcache git-subtree-mainline: b1dbfb73571b051fef055dc371e05163cf73eb8b git-subtree-split: 8d35170c5fe9b9c0c864b7a6c4dc6b0149809569