#
17d6efc7 |
| 28-Sep-2021 |
Nikita Popov |
Fix block marking for two arm math This would end up taking the successors_count=2 case, even though we need to treat SWITCH and MATCH differently. This incorrectly marked a block as
Fix block marking for two arm math This would end up taking the successors_count=2 case, even though we need to treat SWITCH and MATCH differently. This incorrectly marked a block as FOLLOW, resulting in incorrect block pass optimization. Fixes oss-fuzz #39380.
show more ...
|
#
823888c4 |
| 27-Sep-2021 |
Nikita Popov |
Start block at loop var free This ensures that code directly before the loop var free is separated out (and will generally be eliminated as unreachable). This fixes some assumptions
Start block at loop var free This ensures that code directly before the loop var free is separated out (and will generally be eliminated as unreachable). This fixes some assumptions we have that unreachable loop var free blocks start with the loop var free. Fixes oss-fuzz #39395.
show more ...
|
#
a9991fbf |
| 21-Jul-2021 |
Dmitry Stogov |
Fixed Bug #80959 (infinite loop in building cfg during JIT compilation)
|
Revision tags: 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, php-7.4.11, php-7.3.23 |
|
#
34bb5ba2 |
| 18-Sep-2020 |
Nikita Popov |
Remove support for EXT_NOP This is an annoying edge case that regularly gets broken. As we're not aware of significant users of this API, and there are other ways to hook this, remov
Remove support for EXT_NOP This is an annoying edge case that regularly gets broken. As we're not aware of significant users of this API, and there are other ways to hook this, remove support for EXT_NOP.
show more ...
|
#
a9cbdafa |
| 17-Sep-2020 |
Dmitry Stogov |
Support for ZEND_COMPILE_EXTENDED_STMT
|
Revision tags: php-8.0.0beta4, php-7.4.11RC1, php-7.3.23RC1 |
|
#
8516434a |
| 03-Sep-2020 |
Nikita Popov |
Fixed bug #80046 We already protect against optimizing away loop frees in DFA pass, but not in block pass.
|
#
04e77d2d |
| 03-Sep-2020 |
Nikita Popov |
Fixed bug #80046 We already protect against optimizing away loop frees in DFA pass, but not in block pass.
|
Revision tags: php-8.0.0beta3, php-7.4.10, php-7.3.22, php-8.0.0beta2, php-7.3.22RC1, php-7.4.10RC1, php-8.0.0beta1, php-7.4.9, php-7.2.33, php-7.3.21, php-8.0.0alpha3, php-7.4.9RC1, php-7.3.21RC1, php-7.4.8, php-7.2.32, php-8.0.0alpha2, php-7.3.20, php-8.0.0alpha1, php-7.4.8RC1, php-7.3.20RC1, php-7.4.7, php-7.3.19, php-7.4.7RC1, php-7.3.19RC1 |
|
#
9bf11983 |
| 24-May-2020 |
Ilija Tovilo |
Implement nullsafe ?-> operator RFC: https://wiki.php.net/rfc/nullsafe_operator Closes GH-5619. Co-authored-by: Nikita Popov <nikita.ppv@gmail.com>
|
Revision tags: php-7.4.6, php-7.2.31, php-7.4.6RC1, php-7.3.18RC1, php-7.2.30, php-7.4.5, php-7.3.17 |
|
#
9fa1d133 |
| 09-Apr-2020 |
Ilija Tovilo |
Implement match expression RFC: https://wiki.php.net/rfc/match_expression_v2 Closes GH-5371.
|
#
19e886d9 |
| 24-Apr-2020 |
Nikita Popov |
Avoid throw expression leaks Mark "throw" used in expression context with a flag, and don't treat it as a BB terminator in that case. This prevents us from optimizing away the follow
Avoid throw expression leaks Mark "throw" used in expression context with a flag, and don't treat it as a BB terminator in that case. This prevents us from optimizing away the following opcodes as unreachable, which may result in live ranges being dropped incorrectly. Close GH-5450.
show more ...
|
Revision tags: php-7.4.5RC1, php-7.3.17RC1, php-7.3.18, php-7.4.4, php-7.2.29, php-7.3.16, php-7.4.4RC1, php-7.3.16RC1, php-7.4.3, php-7.2.28, php-7.3.15RC1, php-7.4.3RC1, php-7.3.15, php-7.2.27, php-7.4.2, php-7.3.14 |
|
#
0b4778c3 |
| 16-Jan-2020 |
Máté Kocsis |
Fix #78880: Another bunch of spelling errors
|
Revision tags: php-7.3.14RC1, php-7.4.2RC1, php-7.4.1, php-7.2.26, php-7.3.13 |
|
#
2d03b638 |
| 12-Dec-2019 |
Nikita Popov |
Fix handling of non-final loop var free in sccp We only need to preserve the FE_FREE that marks the end of the loop range. Skip FE_FREEs with the FREE_ON_RETURN flag.
|
Revision tags: php-7.4.1RC1, php-7.3.13RC1, php-7.2.26RC1, php-7.4.0, php-7.2.25, php-7.3.12, php-7.4.0RC6, php-7.3.12RC1, php-7.2.25RC1, php-7.4.0RC5, php-7.1.33, php-7.2.24, php-7.3.11, php-7.4.0RC4, php-7.3.11RC1, php-7.2.24RC1, php-7.4.0RC3, php-7.2.23, php-7.3.10, php-7.4.0RC2, php-7.2.23RC1, php-7.3.10RC1, php-7.4.0RC1, php-7.1.32, php-7.2.22, php-7.3.9, php-7.4.0beta4, php-7.2.22RC1, php-7.3.9RC1, php-7.4.0beta2, php-7.1.31, php-7.2.21, php-7.3.8, php-7.4.0beta1 |
|
#
b065fbde |
| 19-Jul-2019 |
Dmitry Stogov |
ZEND_DECLARE_ANON_CLASS doesn't need to skip anything now. It's immediatelly followed by ZEND_NEW.
|
Revision tags: php-7.2.21RC1, php-7.3.8RC1, php-7.4.0alpha3, php-7.3.7, php-7.2.20, php-7.4.0alpha2, php-7.3.7RC3, php-7.3.7RC2, php-7.2.20RC2, php-7.4.0alpha1, php-7.3.7RC1, php-7.2.20RC1, php-7.2.19, php-7.3.6, php-7.1.30 |
|
#
89b2d886 |
| 24-May-2019 |
Nikita Popov |
Register class before fetching parent We want the class declaration to be available while compiling the parent class.
|
Revision tags: php-7.2.19RC1, php-7.3.6RC1, php-7.1.29, php-7.2.18, php-7.3.5, php-7.2.18RC1, php-7.3.5RC1 |
|
#
56a5d0bd |
| 03-Apr-2019 |
Dmitry Stogov |
Fixed CFG construction for SWITCH opcodes
|
Revision tags: php-7.2.17, php-7.3.4, php-7.1.28, php-7.3.4RC1, php-7.2.17RC1, php-7.1.27, php-7.3.3, php-7.2.16, php-7.3.3RC1, php-7.2.16RC1 |
|
#
f8cd8eb7 |
| 19-Feb-2019 |
Joe Watkins |
ZEND_COMPILE_EXTENDED_INFO split Currently a tool may not decide between debugging and profiling behaviour: We split ZEND_COMPILE_EXTENDED_INFO into ZEND_COMPILE_EXTENDED_FCALL and ZEND_COMPILE_EXTEN
ZEND_COMPILE_EXTENDED_INFO split Currently a tool may not decide between debugging and profiling behaviour: We split ZEND_COMPILE_EXTENDED_INFO into ZEND_COMPILE_EXTENDED_FCALL and ZEND_COMPILE_EXTENDED_STMT We define ZEND_COMPILE_EXTENDED_INFO as ZEND_COMPILE_EXTENDED_STMT|ZEND_COMPILE_EXTENDED_FCALL
show more ...
|
Revision tags: php-7.2.15, php-7.3.2 |
|
#
da919a8b |
| 05-Feb-2019 |
Dmitry Stogov |
Remove copyright years.
|
Revision tags: php-7.2.15RC1 |
|
#
92ac598a |
| 22-Jan-2019 |
Peter Kokot |
Remove local variables This patch removes the so called local variables defined per file basis for certain editors to properly show tab width, and similar settings. These are mainly
Remove local variables This patch removes the so called local variables defined per file basis for certain editors to properly show tab width, and similar settings. These are mainly used by Vim and Emacs editors yet with recent changes the once working definitions don't work anymore in Vim without custom plugins or additional configuration. Neither are these settings synced across the PHP code base. A simpler and better approach is EditorConfig and fixing code using some code style fixing tools in the future instead. This patch also removes the so called modelines for Vim. Modelines allow Vim editor specifically to set some editor configuration such as syntax highlighting, indentation style and tab width to be set in the first line or the last 5 lines per file basis. Since the php test files have syntax highlighting already set in most editors properly and EditorConfig takes care of the indentation settings, this patch removes these as well for the Vim 6.0 and newer versions. With the removal of local variables for certain editors such as Emacs and Vim, the footer is also probably not needed anymore when creating extensions using ext_skel.php script. Additionally, Vim modelines for setting php syntax and some editor settings has been removed from some *.phpt files. All these are mostly not relevant for phpt files neither work properly in the middle of the file.
show more ...
|
Revision tags: php-7.3.2RC1 |
|
#
6c983c62 |
| 21-Jan-2019 |
Dmitry Stogov |
Use ZEND_FUNC_FREE_LOOP_VAR flag to avoid useless iterations.
|
#
3269e884 |
| 17-Jan-2019 |
Nikita Popov |
Implement single-pass live range calculation Instead of interleaving creation of live-ranges with the main compiler code, compute them in a separate pass over the opcodes as part of
Implement single-pass live range calculation 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.
show more ...
|
Revision tags: php-5.6.40, php-7.1.26, php-7.3.1, php-7.2.14, php-7.2.14RC1, php-7.3.1RC1 |
|
#
da1e6679 |
| 17-Dec-2018 |
Nikita Popov |
CFG construction: Avoid code duplication These code for those two cases is the same nowadays, so merge them.
|
Revision tags: php-5.6.39, php-7.1.25, php-7.2.13, php-7.0.33, php-7.3.0 |
|
#
17f8b9fb |
| 28-Nov-2018 |
Nikita Popov |
Fixed bug #77215 Remove invalid assertion: A block can have multiple switch frees, so if we don't do live range block splitting, it is not necessarily true that the free is located a
Fixed bug #77215 Remove invalid assertion: A block can have multiple switch frees, so if we don't do live range block splitting, it is not necessarily true that the free is located at the start of a block.
show more ...
|
Revision tags: php-7.1.25RC1, php-7.2.13RC1, php-7.3.0RC6, php-7.1.24, php-7.2.12, php-7.3.0RC5 |
|
#
9afce019 |
| 01-Nov-2018 |
Zeev Suraski |
Future-proof email addresses
|
#
67e0138c |
| 01-Nov-2018 |
Zeev Suraski |
Future-proof email addresses...
|
Revision tags: php-7.1.24RC1, php-7.2.12RC1, php-7.3.0RC4, php-7.1.23, php-7.2.11, php-7.3.0RC3, php-7.1.23RC1, php-7.2.11RC1, php-7.3.0RC2, php-5.6.38, php-7.1.22, php-7.3.0RC1, php-7.2.10, php-7.0.32, php-7.1.22RC1, php-7.3.0beta3, php-7.2.10RC1, php-7.1.21, php-7.2.9, php-7.3.0beta2, php-7.1.21RC1, php-7.3.0beta1, php-7.2.9RC1, php-5.6.37, php-7.1.20, php-7.3.0alpha4, php-7.0.31, php-7.2.8, php-7.1.20RC1, php-7.2.8RC1, php-7.3.0alpha3, php-7.3.0alpha2, php-7.1.19, php-7.2.7, php-7.1.19RC1, php-7.3.0alpha1, php-7.2.7RC1, php-7.1.18, php-7.2.6, php-7.2.6RC1, php-7.1.18RC1, php-5.6.36, php-7.2.5, php-7.1.17, php-7.0.30, php-7.1.17RC1, php-7.2.5RC1, php-5.6.35, php-7.0.29, php-7.2.4, php-7.1.16, php-7.1.16RC1, php-7.2.4RC1, php-7.1.15, php-5.6.34, php-7.2.3, php-7.0.28, php-7.2.3RC1, php-7.1.15RC1 |
|
#
ca035f26 |
| 05-Feb-2018 |
Dmitry Stogov |
Moved "zval.u2.cache_slot" into free room of "zend_op"
|