1
0
mirror of https://github.com/php/php-src.git synced 2026-04-29 03:03:26 +02:00
Commit Graph

49 Commits

Author SHA1 Message Date
Dmitry Stogov 06103d65b1 Use zval_ptr_dtor_nogc() to free IS_TMP_VAR operands.
Removed ZEND_SWITCH_FREE opcode (ZEND_FREE used instead).
2014-09-23 17:21:29 +04:00
Dmitry Stogov d244d3bbf1 Fixed typo 2014-09-23 01:04:47 +04:00
Dmitry Stogov 3bc8a958c5 Fixed useless or duplicated IS_INTERNED() checks 2014-09-19 15:41:01 +04:00
Dmitry Stogov 82096dc151 Removed ZEND_QM_ASSIGN_VAR and ZEND_JMP_SET_VAR opcodes (in PHPNG they did exacly the same as ZEND_QM_ASSIGN and ZEND_JMP_SET) 2014-09-11 12:29:54 +04:00
Dmitry Stogov 234af84c04 Refactored optimizer (compile different opimizer passes separately, instead of including *.c file) 2014-08-28 17:23:12 +04:00
Dmitry Stogov ee552b628c Reorder fields for better nenory consumtion and data locality on 64-bit systems 2014-08-27 22:45:27 +04:00
Anatol Belski 6f9f0bf205 master renames phase 2 2014-08-25 19:28:33 +02:00
Anatol Belski c3e3c98ec6 master renames phase 1 2014-08-25 19:24:55 +02:00
Anatol Belski 63d3f0b844 basic macro replacements, all at once 2014-08-19 08:07:31 +02:00
Xinchen Hui 101c055396 Add copyright header 2014-08-15 16:47:54 +08:00
Xinchen Hui e2522b4f1d Remove old version PHP supports 2014-08-15 16:40:07 +08:00
Dmitry Stogov b7715c7e8a Refactored parameter passing mechanism.
In PHP-5.6 and below each argument passed to user function was copies on VM stack twice.
Now we always have ZEND_INIT_FCALL (or simular) opcode that pushes "call frame" on top of VM stack.
"Call frame" is actually the same zend_execute_data structure.
All the following ZEND_SEND instructions push arguments on top of the stack in a way that they directly comes into corresponding CV variables of the called frame. Extra arguments are copied at the end of stack frame (after all CV and TMP variables) on function enterance.

There are two minor incompatibilities:
1) It's not allowed to decalre functions redefining arguments e.g. "function foo($a,$a) {}".
2) func_get_arg() and func_get args() return the current value of argument and not the original value that was sent.
2014-06-30 15:43:45 +04:00
Dmitry Stogov 87b667221e Code cleanup 2014-06-20 19:40:03 +04:00
Dmitry Stogov a4f38192ec Use arena allocator for optimizer temporary data structures 2014-06-18 17:09:37 +04:00
Xinchen Hui eb5c613311 Fixed Zend Hash API usage (although it's in comments) 2014-05-18 12:05:36 +08:00
Dmitry Stogov feeebc2e05 Fixed new hash API usage 2014-05-17 11:48:29 +04:00
Dmitry Stogov 17d027ed47 Split IS_BOOL into IS_FALSE and IS_TRUE 2014-04-30 18:32:42 +04:00
Dmitry Stogov afe66d89a1 Cleanup 2014-04-21 16:34:40 +04:00
Dmitry Stogov 3434d3fc98 Optimize CASE(TRUE, X) into BOOL(X) (this pattern affects wordpress) 2014-04-17 21:15:02 +04:00
Dmitry Stogov c92dd8eedf Fixed ZEND_CAST related optimizations (now it returns IS_VAR instead of IS_TMP_VAR) 2014-04-17 11:12:47 +04:00
Dmitry Stogov 76cc99fe60 Refactored ZVAL flags usage to simplify various checks (e.g. Z_REFCOUNTED(), candidate for GC, etc) 2014-04-03 15:26:23 +04:00
Dmitry Stogov fd4d11e053 fixes 2014-03-31 23:38:37 +04:00
Dmitry Stogov 7465be4fbd Optimizer related fixes (incomplete) 2014-03-31 18:13:16 +04:00
Dmitry Stogov 5324f22f59 ext/opcache refactoring (incomplete) 2014-03-28 23:34:49 +04:00
Dmitry Stogov 3458dac342 Merge branch 'PHP-5.6'
* PHP-5.6:
  Fixed bug #66471 (Keep backward compatibility)
2014-01-13 15:36:06 +04:00
Dmitry Stogov ca550248f1 Fixed bug #66471 (Keep backward compatibility) 2014-01-13 15:34:25 +04:00
Dmitry Stogov aab2e8eb7e Merge branch 'PHP-5.6'
* PHP-5.6:
  Fixed bug #66474 (Optimizer bug in constant string to boolean conversion)
2014-01-13 12:08:23 +04:00
Dmitry Stogov d09d64c15c Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Fixed bug #66474 (Optimizer bug in constant string to boolean conversion)

Conflicts:
	NEWS
2014-01-13 12:07:50 +04:00
Dmitry Stogov fcd75690fe Fixed bug #66474 (Optimizer bug in constant string to boolean conversion) 2014-01-13 12:06:19 +04:00
Bob Weinand b11b3d201f Fixed ZTS build. Needed to bump API version number. 2013-12-18 16:44:20 +01:00
Kalle Sommer Nielsen d14670ccdb Eliminate another TSRMLS_FETCH() in i_zend_is_true()
# Affected extensions have all been updated, ext/opcache and ext/zip
# both have macros for cross version compatibility
2013-12-18 07:25:05 +01:00
Dmitry Stogov e7132597a6 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Fixed bug #66176 (Invalid constant substitution)
  Fixed bug #66176 (Invalid constant substitution)
2013-11-26 21:01:01 +04:00
Dmitry Stogov d79dd9cc1c Fixed bug #66176 (Invalid constant substitution) 2013-11-26 21:00:00 +04:00
Dmitry Stogov 27524b52b5 Fixed bug #66176 (Invalid constant substitution) 2013-11-26 19:55:49 +04:00
Dmitry Stogov 0999d85049 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Fixed bug #66176 (Invalid constant substitution)

Conflicts:
	NEWS
2013-11-26 17:48:11 +04:00
Dmitry Stogov d85ac7fb3f Fixed bug #66176 (Invalid constant substitution) 2013-11-26 17:47:02 +04:00
Nikita Popov 0d7a638866 Implement variadic function syntax
As per RFC: https://wiki.php.net/rfc/variadics
2013-09-26 18:39:17 +02:00
Xinchen Hui 46f18ccf0d Fixed bug #65665 (Exception not properly caught when opcache enabled) 2013-09-16 14:43:01 +08:00
Dmitry Stogov 1c67a9940a Fixed compilation warning 2013-08-26 09:48:10 +04:00
Dmitry Stogov cb17c99511 Improved implementation of NOP removal pass from O(n^2) to O(n) (hnw) 2013-07-30 22:31:37 +04:00
Dmitry Stogov 4b83f4a011 Avoid possible conditional jump depended on uninitialised value 2013-04-29 10:45:31 +04:00
Dmitry Stogov e27039630a Fixed support for PHP-5.3 2013-04-10 21:27:06 +04:00
Dmitry Stogov 7845f49006 Numeric string constants used as array indeces have to be converted to long at compile time 2013-04-10 15:33:08 +04:00
Dmitry Stogov 2b28f29e53 Fixed CFG construction bugs 2013-04-09 17:48:45 +04:00
Dmitry Stogov 23b44e7f39 Fixed ZTS build 2013-04-01 21:16:33 +04:00
Dmitry Stogov 74f158fb9d Fixed issue #79 (Optimization Problem/Bug) 2013-04-01 11:33:04 +04:00
Dmitry Stogov 987dee9ca1 Fixed PHP-5.2 ZTS compatibility 2013-03-25 12:21:58 +04:00
Dmitry Stogov e00b04a54f Fixed memory leaks 2013-03-16 17:24:54 +04:00
Dmitry Stogov 34d3202eda Merge Zend Optimizer+
git-subtree-dir: ext/opcache
git-subtree-mainline: b1dbfb7357
git-subtree-split: 8d35170c5f
2013-03-16 00:41:46 +04:00