#
98dfde2c |
| 25-Dec-2021 |
Nikita Popov |
Remove unnecessary INSTANCEOF special case in sccp While we can't replace the instanceof operand, we will evaluate the instanceof to false and replace its result anyway. Even in case
Remove unnecessary INSTANCEOF special case in sccp While we can't replace the instanceof operand, we will evaluate the instanceof to false and replace its result anyway. Even in cases where the instanceof user cannot be replaced, we already have generic code to convert the opcode to QM_ASSIGN in that case.
show more ...
|
#
36dafade |
| 25-Dec-2021 |
Nikita Popov |
Remove unnecessary try_replace_op1() special cases update_op1_const() can handle these nowadays. |
#
8b235380 |
| 24-Dec-2021 |
Dmitry Stogov |
Merge branch 'PHP-8.1' * PHP-8.1: Fix memory leak in SCCP
|
#
b2939b63 |
| 24-Dec-2021 |
Dmitry Stogov |
Merge branch 'PHP-8.0' into PHP-8.1 * PHP-8.0: Fix memory leak in SCCP
|
#
32e2d97a |
| 20-Dec-2021 |
Tyson Andre |
Allow internal functions to declare if they support compile-time evaluation, add functions. (#7780) https://wiki.php.net/rfc/strtolower-ascii means that these functions no longer depend
Allow internal functions to declare if they support compile-time evaluation, add functions. (#7780) https://wiki.php.net/rfc/strtolower-ascii means that these functions no longer depend on the current locale in php 8.2. Before that, this was unsafe to evaluate at compile time. Followup to GH-7506 Add strcmp/strcasecmp/strtolower/strtoupper functions Add bin2hex/hex2bin and related functions Update test of garbage collection using strtolower to use something else to create a refcounted string
show more ...
|
Revision tags: php-8.0.14, php-8.1.1, php-7.4.27 |
|
#
2337c051 |
| 13-Dec-2021 |
Dmitry Stogov |
Merge branch 'PHP-8.1' * PHP-8.1: Fix incorrect optimization that leads to memory leak
|
#
f8f0a650 |
| 13-Dec-2021 |
Dmitry Stogov |
Merge branch 'PHP-8.0' into PHP-8.1 * PHP-8.0: Fix incorrect optimization that leads to memory leak
|
Revision tags: php-8.1.1RC1, php-8.0.14RC1, php-7.4.27RC1 |
|
#
8cdead15 |
| 29-Nov-2021 |
Dmitry Stogov |
Merge branch 'PHP-8.1' * PHP-8.1: JIT: Fix exception handling when next array element is already occupied
|
#
23c5a6fd |
| 29-Nov-2021 |
Dmitry Stogov |
Merge branch 'PHP-8.0' into PHP-8.1 * PHP-8.0: JIT: Fix exception handling when next array element is already occupied
|
Revision tags: 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 |
|
#
902d6439 |
| 11-Oct-2021 |
Nikita Popov |
Deprecate implicit dynamic properties Writing to a proprety that hasn't been declared is deprecated, unless the class uses the #[AllowDynamicProperties] attribute or defines __get()/
Deprecate implicit dynamic properties Writing to a proprety that hasn't been declared is deprecated, unless the class uses the #[AllowDynamicProperties] attribute or defines __get()/__set(). RFC: https://wiki.php.net/rfc/deprecate_dynamic_properties
show more ...
|
#
90b7bde6 |
| 03-Nov-2021 |
Dmitry Stogov |
Use more compact representation for packed arrays. - for packed arrays we store just an array of zvals without keys. - the elements of packed array are accessible throuf as ht->arPacked[
Use more compact representation for packed arrays. - for packed arrays we store just an array of zvals without keys. - the elements of packed array are accessible throuf as ht->arPacked[i] instead of ht->arData[i] - in addition to general ZEND_HASH_FOREACH_* macros, we introduced similar familied for packed (ZEND_HASH_PACKED_FORECH_*) and real hashes (ZEND_HASH_MAP_FOREACH_*) - introduced an additional family of macros to access elements of array (packed or real hashes) ZEND_ARRAY_ELEMET_SIZE, ZEND_ARRAY_ELEMET_EX, ZEND_ARRAY_ELEMET, ZEND_ARRAY_NEXT_ELEMENT, ZEND_ARRAY_PREV_ELEMENT - zend_hash_minmax() prototype was changed to compare only values Because of smaller data set, this patch may show performance improvement on some apps and benchmarks that use packed arrays. (~1% on PHP-Parser) TODO: - sapi/phpdbg needs special support for packed arrays (WATCH_ON_BUCKET). - zend_hash_sort_ex() may require converting packed arrays to hash.
show more ...
|
Revision tags: php-8.0.12RC1, php-7.4.25RC1, php-8.1.0RC3 |
|
#
5bf088f6 |
| 28-Sep-2021 |
Nikita Popov |
Move TYPE_CHECK handling from sccp to inference The handling of TYPE_CHECK makes for an awkward special case, because it is determined outside the usual SCCP framework. Instead move
Move TYPE_CHECK handling from sccp to inference The handling of TYPE_CHECK makes for an awkward special case, because it is determined outside the usual SCCP framework. Instead move the logic into type inference (to infer a more specific may_be_true or may_be_false if possible). This will get picked up by SCCP through the existing logic to make use of type and range information. However, this also requires us to make use of type info in feasible edge marking, otherwise we would regress existing optimization power.
show more ...
|
#
25c26424 |
| 28-Sep-2021 |
Nikita Popov |
Merge branch 'PHP-8.1' * PHP-8.1: Fix type inference and SCCP with typed references
|
#
2b71df71 |
| 28-Sep-2021 |
Nikita Popov |
Merge branch 'PHP-8.0' into PHP-8.1 * PHP-8.0: Fix type inference and SCCP with typed references
|
Revision tags: php-8.0.11, php-7.4.24, php-7.3.31 |
|
#
44bc9556 |
| 20-Sep-2021 |
George Peter Banyard |
Check against FAILURE instead of different then SUCCESS |
#
53d5420d |
| 20-Sep-2021 |
George Peter Banyard |
Use more appropriate types in Optimizer Mainly using zend_result and bool instead of int |
#
55582a25 |
| 20-Sep-2021 |
Nikita Popov |
Merge branch 'PHP-8.0' into PHP-8.1 * PHP-8.0: Don't replace values in unreachable code in sccp
|
#
3191f831 |
| 16-Sep-2021 |
Nikita Popov |
Merge branch 'PHP-8.0' into PHP-8.1 * PHP-8.0: Don't const evaluate increment of array in SCCP
|
Revision tags: php-8.1.0RC2 |
|
#
54bbee96 |
| 14-Sep-2021 |
Nikita Popov |
Check for no uses before removing result operand It's possible for there to still be phi uses. |
#
fa3d603b |
| 14-Sep-2021 |
Nikita Popov |
Mark ASSIGN result as UNUSED in SCCP We can't drop the ASSIGN entirely, but we should mark the result as UNUSED. Otherwise we'll replace uses of it in operands and will not free the
Mark ASSIGN result as UNUSED in SCCP We can't drop the ASSIGN entirely, but we should mark the result as UNUSED. Otherwise we'll replace uses of it in operands and will not free the ASSIGN result value. This can happen with non-interned strings, but possibly there's some other cases that can trigger this as well.
show more ...
|
Revision tags: 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 |
|
#
273720dc |
| 19-Jul-2021 |
Nikita Popov |
Add str_replace/array_unique to ct eval list Taken from GH-5870. |
Revision tags: php-7.4.22RC1, php-8.0.9RC1 |
|
#
7bbc85f1 |
| 08-Jul-2021 |
Kamil Tekiela |
Sccp new functions for ct (#7220) * strstr * explode |
Revision tags: 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 |
|
#
b6958bb8 |
| 31-May-2021 |
George Peter Banyard |
Implement "Deprecate implicit non-integer-compatible float to int conversions" RFC. (#6661) RFC: https://wiki.php.net/rfc/implicit-float-int-deprecate Co-authored-by: Nikita Popov <
Implement "Deprecate implicit non-integer-compatible float to int conversions" RFC. (#6661) RFC: https://wiki.php.net/rfc/implicit-float-int-deprecate Co-authored-by: Nikita Popov <nikita.ppv@gmail.com>
show more ...
|
Revision tags: 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 |
|
#
c4a749c9 |
| 20-Apr-2021 |
Nikita Popov |
Remove php includes from sccp.c |