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