#
eecbb60d |
| 17-Oct-2022 |
Dmitry Stogov |
Fix memory leak Fixes oss-fuzz #52479 |
#
ca0afc3c |
| 07-Feb-2022 |
Dmitry Stogov |
Improve speed of dominators and loop identification algorithms |
#
4543cd32 |
| 30-Dec-2021 |
Nikita Popov |
Remove JMPZNZ opcode While JMPZNZ can avoid execution of a separate JMP opcode in some cases, it also prevents smart branch optimization, so creating JMPZNZ may actually have a negat
Remove JMPZNZ opcode While JMPZNZ can avoid execution of a separate JMP opcode in some cases, it also prevents smart branch optimization, so creating JMPZNZ may actually have a negative effect. It also adds additional complexity for optimizations. Drop JMPZNZ in favor of JMPZ+JMP or JMPNZ+JMP. Closes GH-7857.
show more ...
|
#
43b3cf11 |
| 06-Oct-2021 |
Nikita Popov |
Merge branch 'PHP-8.1' * PHP-8.1: Don't start new block after loop free
|
#
f455894b |
| 06-Oct-2021 |
Nikita Popov |
Don't start new block after loop free This reverts the change from 493c91c7429ee4552d2b80a2648271e2ba97f15c. Starting a new block means that in the common case where the loop var fre
Don't start new block after loop free This reverts the change from 493c91c7429ee4552d2b80a2648271e2ba97f15c. Starting a new block means that in the common case where the loop var free is not unreachable, we'll always merge back the block. Instead fix the original problem by explicitly removing instructions apart from the loop var free in block pass.
show more ...
|
#
d1aff29a |
| 04-Oct-2021 |
Nikita Popov |
Merge branch 'PHP-8.1' * PHP-8.1: Start new block after loop free
|
#
493c91c7 |
| 04-Oct-2021 |
Nikita Popov |
Start new block after loop free In the attached test case we ended up not updating a leftover MATCH jump in the unreachable_free block. There's different ways this can be addressed,
Start new block after loop free In the attached test case we ended up not updating a leftover MATCH jump in the unreachable_free block. There's different ways this can be addressed, but in this case we can just make sure that a new block is started after the loop free, which will allow it to be dropped as unreachable. We only need to retain the free itself for live-range reconstruction. Fixes oss-fuzz #39516.
show more ...
|
#
223370e5 |
| 28-Sep-2021 |
Nikita Popov |
Merge branch 'PHP-8.1' * PHP-8.1: Fix block marking for two arm math
|
#
1e4a9a49 |
| 28-Sep-2021 |
Nikita Popov |
Merge branch 'PHP-8.0' into PHP-8.1 * PHP-8.0: Fix block marking for two arm math
|
#
3981f430 |
| 27-Sep-2021 |
Nikita Popov |
Merge branch 'PHP-8.1' * PHP-8.1: Start block at loop var free
|
#
b86fdf84 |
| 27-Sep-2021 |
Nikita Popov |
Merge branch 'PHP-8.0' into PHP-8.1 * PHP-8.0: Start block at loop var free
|
#
2157d11d |
| 23-Sep-2021 |
Nikita Popov |
Merge branch 'PHP-8.1' * PHP-8.1: Don't treat expression exit as terminator
|
#
c9762be5 |
| 23-Sep-2021 |
Nikita Popov |
Don't treat expression exit as terminator Same as with throw expressions, this may remove later temporary consuming instructions and thus eliminate live ranges, resulting in a memory
Don't treat expression exit as terminator Same as with throw expressions, this may remove later temporary consuming instructions and thus eliminate live ranges, resulting in a memory leak. We make use of the same hack and don't consider exit a terminator if used in an expression context.
show more ...
|
#
a06d6c36 |
| 20-Sep-2021 |
George Peter Banyard |
Voidify zend_cfg_identify_loops() It always returned SUCCESS |
#
53c72bd6 |
| 20-Sep-2021 |
George Peter Banyard |
Voidify zend_cfg_compute_dominators_tree() It always returned SUCCESS |
#
6a456644 |
| 20-Sep-2021 |
George Peter Banyard |
Voidify zend_cfg_build_predecessors() It always returned SUCCESS |
#
50378666 |
| 20-Sep-2021 |
George Peter Banyard |
Voidify zend_build_cfg() It always returned SUCCESS |
#
53d5420d |
| 20-Sep-2021 |
George Peter Banyard |
Use more appropriate types in Optimizer Mainly using zend_result and bool instead of int |
#
a3a74b07 |
| 21-Jul-2021 |
Dmitry Stogov |
Merge branch 'PHP-8.0' * PHP-8.0: Fixed Bug #80959 (infinite loop in building cfg during JIT compilation)
|
#
01b3fc03 |
| 06-May-2021 |
KsaR |
Update http->https in license (#6945) 1. Update: http://www.php.net/license/3_01.txt to https, as there is anyway server header "Location:" to https. 2. Update few license 3.0 to 3.01 as
Update http->https in license (#6945) 1. Update: http://www.php.net/license/3_01.txt to https, as there is anyway server header "Location:" to https. 2. Update few license 3.0 to 3.01 as 3.0 states "php 5.1.1, 4.1.1, and earlier". 3. In some license comments is "at through the world-wide-web" while most is without "at", so deleted. 4. fixed indentation in some files before |
show more ...
|
#
b82242a8 |
| 20-Apr-2021 |
Nikita Popov |
Remove unnecessary php.h includes from Zend/ The Zend/ directory really shouldn't be including php headers. These particular includes are plain unnecessary. |
#
6cd0b48c |
| 19-Apr-2021 |
Matt Brown |
Implement never return type The never type can be used to indicate that a function never returns, for example because it always unwinds. RFC: https://wiki.php.net/rfc/noreturn_t
Implement never return type The never type can be used to indicate that a function never returns, for example because it always unwinds. RFC: https://wiki.php.net/rfc/noreturn_type Closes GH-6761.
show more ...
|
#
5caaf40b |
| 29-Sep-2020 |
George Peter Banyard |
Introduce pseudo-keyword ZEND_FALLTHROUGH And use it instead of comments |
#
83be073a |
| 26-Jan-2021 |
Nikita Popov |
Move optimizer into core This only moves the files, adjusts the build system, exports APIs and does minor fixups to make sure the code builds. This does not yet try to make the
Move optimizer into core This only moves the files, adjusts the build system, exports APIs and does minor fixups to make sure the code builds. This does not yet try to make the optimizer usable independently of opcache. Closes GH-6642.
show more ...
|