History log of /PHP-7.4/ext/opcache/Optimizer/zend_optimizer.c (Results 1 – 25 of 220)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# df7417d1 17-Nov-2020 Nikita Popov

Fix incorrectly optimized out live range

For x ? y : z style structures, the live range starts at z, but
may also hold the value of y. Make sure that the refcounting check
takes this

Fix incorrectly optimized out live range

For x ? y : z style structures, the live range starts at z, but
may also hold the value of y. Make sure that the refcounting check
takes this into account, by checking the type of a potential phi
user.

show more ...


# a4f806aa 17-Sep-2020 Nikita Popov

Fixed bug #80083

Add db2_execute() to the list of functions accessing the local
scope. Ideally the API wouldn't do that, but it seems most
pragmatic to address this on the opcache si

Fixed bug #80083

Add db2_execute() to the list of functions accessing the local
scope. Ideally the API wouldn't do that, but it seems most
pragmatic to address this on the opcache side at this point.

show more ...


# 7c1316ec 04-May-2020 Nikita Popov

Fixed bug #79535

We did not allocate a cache slot for FETCH_CLASS. This is already
fixed on newer PHP versions.


# 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.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
# 48ca5a1e 05-Jul-2019 Dmitry Stogov

Replace ZEND_ASSIGN_ADD (and others) by ZEND_ASSIGN_OP, ZEND_ASSIGN_DIM_OP, ZEND_ASSGIN_OBJ_OP and ZEND_ASSIGN_STATIC_PROP_OP


Revision tags: 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, 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
# 1133ee11 19-Feb-2019 Dmitry Stogov

Check for USER_FUNCTION


Revision tags: php-7.3.3RC1, php-7.2.16RC1, 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
# a50198d0 15-Jan-2019 Nikita Popov

Implement ??= operator

RFC: https://wiki.php.net/rfc/null_coalesce_equal_operator

$a ??= $b is $a ?? ($a = $b), with the difference that $a is only
evaluated once, to the degree

Implement ??= operator

RFC: https://wiki.php.net/rfc/null_coalesce_equal_operator

$a ??= $b is $a ?? ($a = $b), with the difference that $a is only
evaluated once, to the degree that this is possible. In particular
in $a[foo()] ?? $b function foo() is only ever called once.
However, the variable access themselves will be reevaluated.

show more ...


# abd06510 21-Jan-2019 Dmitry Stogov

Avoid double live ranges recalculation.


# 97ccafd4 21-Jan-2019 Dmitry Stogov

Live ranges construction optimization


# 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
# e219ec14 07-Jan-2019 Nikita Popov

Implement typed properties

RFC: https://wiki.php.net/rfc/typed_properties_v2

This is a squash of PR #3734, which is a squash of PR #3313.

Co-authored-by: Bob Weinand <bobwe

Implement typed properties

RFC: https://wiki.php.net/rfc/typed_properties_v2

This is a squash of PR #3734, which is a squash of PR #3313.

Co-authored-by: Bob Weinand <bobwei9@hotmail.com>
Co-authored-by: Joe Watkins <krakjoe@php.net>
Co-authored-by: Dmitry Stogov <dmitry@zend.com>

show more ...


# 16176ad0 10-Jan-2019 Xinchen Hui

Incase of invalid read


# bf4dab01 09-Jan-2019 Nikita Popov

Make operator swapping depend on IGNORE_OVERLOADING flag

Add MUL back to the list and instead make the entire optimization
depend on IGNORE_OVERLOADING, which is there exactly so we can

Make operator swapping depend on IGNORE_OVERLOADING flag

Add MUL back to the list and instead make the entire optimization
depend on IGNORE_OVERLOADING, which is there exactly so we can make
these kinds of assumptions.

show more ...


# cd49db9d 08-Jan-2019 Xinchen Hui

Fixed bug #77266 (Assertion failed in dce_live_ranges)


# 9bf80ef3 27-Dec-2018 Dmitry Stogov

Respect static method visibility


Revision tags: php-7.2.14RC1, php-7.3.1RC1
# 93aabf15 10-Dec-2018 Nikita Popov

Fixed bug #77275

Instead of juggling with this problem during literal compaction,
make sure that we always initialize Z_EXTRA for literals, which
seems like the more robust solution.


Revision tags: php-5.6.39, php-7.1.25, php-7.2.13, php-7.0.33, php-7.3.0, php-7.1.25RC1, php-7.2.13RC1, php-7.3.0RC6
# ba99aa13 14-Nov-2018 Dmitry Stogov

Fixed issues related to optimization and persitence of classes linked with interfaces, traits or internal classes.


Revision tags: 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...


# bf38e6c1 30-Oct-2018 Dmitry Stogov

Keep original value of "prototype"


# ebf44fbb 30-Oct-2018 Dmitry Stogov

Reslove inherited op_array references once afrer all optimizations.


123456789