#
a79c70f5 |
| 14-Aug-2024 |
Gina Peter Banyard |
[RFC] Convert exit (and die) from language constructs to functions (#13483) RFC: https://wiki.php.net/rfc/exit-as-function
|
#
a3b148e3 |
| 03-Jun-2024 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Fix GH-14361: Deep recursion in zend_cfg.c causes segfault Changes the CFG reachability algorithm to use iteration instead of recursion. Closes GH-14432.
|
#
631bc816 |
| 06-Feb-2024 |
Ilija Tovilo |
Implement stackless internal function calls Co-authored-by: Dmitry Stogov <dmitry@zend.com> Closes GH-12461
|
Revision tags: php-8.2.0RC1, php-8.1.10, php-8.0.23, php-8.0.23RC1, php-8.1.10RC1, php-8.2.0beta3 |
|
#
0b1d750d |
| 11-Aug-2022 |
Ilija Tovilo |
Allow arbitrary expressions in static variable initializer Closes GH-9301
|
#
d5c649b3 |
| 23-Feb-2023 |
Max Kellermann |
zend_compiler, ...: use `uint8_t` instead of `zend_uchar` (#10621) `zend_uchar` suggests that the value is an ASCII character, but here, it's about very small integers. This is misleadi
zend_compiler, ...: use `uint8_t` instead of `zend_uchar` (#10621) `zend_uchar` suggests that the value is an ASCII character, but here, it's about very small integers. This is misleading, so let's use a C99 integer instead. On all architectures currently supported by PHP, `zend_uchar` and `uint8_t` are identical. This change is only about code readability.
show more ...
|
#
2f4973fd |
| 16-Jan-2023 |
Christoph M. Becker |
Revert GH-10279 Cf. <https://github.com/php/php-src/pull/10220#issuecomment-1383739816>. This reverts commit 45a128c9de93bf60956102d85d15f1fe8913bb70. This reverts commit 1eb71c
Revert GH-10279 Cf. <https://github.com/php/php-src/pull/10220#issuecomment-1383739816>. This reverts commit 45a128c9de93bf60956102d85d15f1fe8913bb70. This reverts commit 1eb71c3f155a42ad6867cd5e2f6d921a99506a37. This reverts commit 492523a779dced91eb09215183287e0856b693bf. This reverts commit c7a4633891392d16d40b08135598807b3f0443b0. This reverts commit 308adb915c1b659ab377f752fb27b408a455d7ed. This reverts commit cd27d5e07f01172ac8a701996d260a731489d856. This reverts commit c5933409b47bea760977cf9c9ea04cbb63aaafe5. This reverts commit 46371f4eb339f7e7615a8732d61f2369f8d9129e. This reverts commit 623e2e9fc6a23b8eb7f22010eaf99bf6f638917d. This reverts commit e7434c124772c05fe836832e02196d50bec10c23. This reverts commit d28d323ca20976ed776171330b90588cc3857dd6. This reverts commit 1a067b84ee423a6fb06a5debd92b4cafefeac4e4. This reverts commit a55c0c5fc3f624a685f42281df26cf87f445be43. This reverts commit b5aeb3a4d40dbf38da65975d12b9d2c593b83bdd. This reverts commit f061a035e44d3f6bbc71774f2101525d74fbf16f. This reverts commit b088575119b3244a4d08f6a300251111a221c66b. This reverts commit b1d48774a79592e7fb1ba85d3a2bd6717f25acec. This reverts commit 94f9a20ce6451b54e8346cc474de6b4f9b8897a4. This reverts commit 4831e48708e19346ace0fa5f3f085ee8afd43267. This reverts commit cd985de190534c8e3567a4c5547eb98c45337fa0. This reverts commit 9521d21681b22a471f21b3c56e32b883acac3301. This reverts commit d6136151e9f7fc40e753ac0ebe1790e0d0371b6b.
show more ...
|
#
a55c0c5f |
| 04-Jan-2023 |
Max Kellermann |
Zend/Optimizer/zend_cfg: include cleanup
|
#
eecbb60d |
| 17-Oct-2022 |
Dmitry Stogov |
Fix memory leak Fixes oss-fuzz #52479
|
Revision tags: php-8.2.0beta2, php-8.1.9, php-8.0.22, php-8.1.9RC1, php-8.2.0beta1, php-8.0.22RC1, php-8.0.21, php-8.1.8, php-8.2.0alpha3, php-8.1.8RC1, php-8.2.0alpha2, php-8.0.21RC1, php-8.0.20, php-8.1.7, php-8.2.0alpha1, php-7.4.30, php-8.1.7RC1, php-8.0.20RC1, php-8.1.6, php-8.0.19, php-8.1.6RC1, php-8.0.19RC1, php-8.0.18, php-8.1.5, php-7.4.29, php-8.1.5RC1, php-8.0.18RC1, php-8.1.4, php-8.0.17, php-8.1.4RC1, php-8.0.17RC1, php-8.1.3, php-8.0.16, php-7.4.28 |
|
#
ca0afc3c |
| 07-Feb-2022 |
Dmitry Stogov |
Improve speed of dominators and loop identification algorithms
|
Revision tags: php-8.1.3RC1, php-8.0.16RC1, php-8.1.2, php-8.0.15, php-8.1.2RC1, php-8.0.15RC1 |
|
#
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 ...
|
Revision tags: php-8.0.14, php-8.1.1, php-7.4.27, php-8.1.1RC1, php-8.0.14RC1, php-7.4.27RC1, php-8.1.0, php-8.0.13, php-7.4.26, php-7.3.33, php-8.1.0RC6, php-7.4.26RC1, php-8.0.13RC1, php-8.1.0RC5, php-7.3.32, php-7.4.25, php-8.0.12, php-8.1.0RC4, php-8.0.12RC1 |
|
#
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 ...
|
Revision tags: php-7.4.25RC1 |
|
#
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 ...
|
Revision tags: php-8.1.0RC3 |
|
#
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 ...
|
Revision tags: php-8.0.11, php-7.4.24, php-7.3.31 |
|
#
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
|
Revision tags: php-8.1.0RC2, php-7.4.24RC1, php-8.0.11RC1, php-8.1.0RC1, php-7.4.23, php-8.0.10, php-7.3.30, php-8.1.0beta3, php-8.0.10RC1, php-7.4.23RC1, php-8.1.0beta2, php-8.0.9, php-7.4.22, php-8.1.0beta1, php-7.4.22RC1, php-8.0.9RC1, php-8.1.0alpha3, php-7.4.21, php-7.3.29, php-8.0.8, php-8.1.0alpha2, php-7.4.21RC1, php-8.0.8RC1, php-8.1.0alpha1, php-8.0.7, php-7.4.20, php-8.0.7RC1, php-7.4.20RC1 |
|
#
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 ...
|
Revision tags: php-8.0.6, php-7.4.19, php-7.4.18, php-7.3.28, php-8.0.5 |
|
#
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 ...
|
Revision tags: php-8.0.5RC1, php-7.4.18RC1, php-8.0.4RC1, php-7.4.17RC1, php-8.0.3, php-7.4.16, php-8.0.3RC1, php-7.4.16RC1, php-8.0.2, php-7.4.15, php-7.3.27, php-8.0.2RC1, php-7.4.15RC2, php-7.4.15RC1, php-8.0.1, php-7.4.14, php-7.3.26, php-7.4.14RC1, php-8.0.1RC1, php-7.3.26RC1, php-8.0.0, php-7.3.25, php-7.4.13, php-8.0.0RC5, php-7.4.13RC1, php-8.0.0RC4, php-7.3.25RC1, php-7.4.12, php-8.0.0RC3, php-7.3.24, php-8.0.0RC2, php-7.4.12RC1, php-7.3.24RC1, php-7.2.34, php-8.0.0rc1 |
|
#
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 ...
|