History log of /PHP-7.4/ext/opcache/Optimizer/block_pass.c (Results 1 – 25 of 200)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 683c9884 07-Oct-2020 Nikita Popov

Fixed bug #80194

We should strip NOPs from unreachable_free blocks as well, to make
sure that the free really is the first op.


# 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.


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
# af9b127f 13-Sep-2019 Dmitry Stogov

Make constant and copy propagation only for IS_TMP_VAR operands


Revision tags: 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
# ccfe6c86 20-Jun-2019 Nikita Popov

Avoid memset/memcpy null ub in block pass

The arena allocator has no problem with zero-size allocations (and
will just return the same pointer for each in this case), so just
do that

Avoid memset/memcpy null ub in block pass

The arena allocator has no problem with zero-size allocations (and
will just return the same pointer for each in this case), so just
do that to avoid null pointers.

show more ...


Revision tags: 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, php-7.3.3RC1, php-7.2.16RC1, php-7.2.15, php-7.3.2, php-7.2.15RC1, php-7.3.2RC1, php-5.6.40, php-7.1.26, php-7.3.1, php-7.2.14, php-7.2.14RC1, php-7.3.1RC1, 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, php-7.1.24, php-7.2.12, php-7.3.0RC5, php-7.1.24RC1, php-7.2.12RC1, php-7.3.0RC4, php-7.1.23, php-7.2.11, php-7.3.0RC3
# e829d087 06-Oct-2018 CHU Zhaowei

Implement spread operator in arrays

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

Closes GH-3640.


# 105a04aa 28-Feb-2019 Nikita Popov

Don't remove CONST CAST in CONCAT operand

CONCAT assumes that CONST operands are strings, so we cannot
blindly remove CAST operands.


# 1b998bb9 28-Feb-2019 Nikita Popov

Remove unnecessary convert_to_string_safe macro

I'm assuming that the reason this existed was to avoid modifying
an interned string. However, the current code handles this case
fine

Remove unnecessary convert_to_string_safe macro

I'm assuming that the reason this existed was to avoid modifying
an interned string. However, the current code handles this case
fine already.

show more ...


# da919a8b 05-Feb-2019 Dmitry Stogov

Remove copyright years.


# 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 ...


# 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 ...


# 8c7aa88e 07-Nov-2018 Dmitry Stogov

Fixed crash introduced by bfaf662ac2e58c16208224f32cb8387a35b3da97


# bfaf662a 06-Nov-2018 Dmitry Stogov

Micro-optimization


# 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.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
# ab8094c6 26-Jul-2018 Dmitry Stogov

Pack zend_constant.flags and zend_constant.module_number into reserved space inside zend_constant.value.


Revision tags: php-5.6.37, php-7.1.20, php-7.3.0alpha4, php-7.0.31, php-7.2.8, php-7.1.20RC1
# af341213 04-Jul-2018 Dmitry Stogov

se zval_ptr_dtor_str() instead of zend_string_release_ex(Z_STR(*), 0)


Revision tags: 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
# 5eb1f92f 28-May-2018 Dmitry Stogov

Use zend_string_release_ex() instread of zend_string_release() in places, where we sure about string persistence.


Revision tags: php-7.1.18, php-7.2.6, php-7.2.6RC1, php-7.1.18RC1
# 83f98f73 27-Apr-2018 Dmitry Stogov

Don't store values of PHP_SAPI and PHP_BINARY in file cache, because it may be used by different SAPI.


# 279ba58e 27-Apr-2018 Nikita Popov

Fixed bug #76275

* Adjust IS_SERIALIZED() check to account for potential empty
allocations at the end of the memory region.
* Deallocate empty allocation if all try/catch elements

Fixed bug #76275

* Adjust IS_SERIALIZED() check to account for potential empty
allocations at the end of the memory region.
* Deallocate empty allocation if all try/catch elements have been
removed in the block pass (similar to what we do if all live
ranges have been eliminated).

show more ...


Revision tags: 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
# 52fddfcc 13-Mar-2018 Dmitry Stogov

Avoid useless iterations


Revision tags: php-7.2.4RC1, php-7.1.15, php-5.6.34, php-7.2.3, php-7.0.28
# b0af9ac7 16-Feb-2018 Nikita Popov

Avoid live range references in opcodes

Don't store the live range of the freed variable for FREE_ON_RETURN
frees, instead look it up at runtime. As this is an extremely
unlikely code

Avoid live range references in opcodes

Don't store the live range of the freed variable for FREE_ON_RETURN
frees, instead look it up at runtime. As this is an extremely
unlikely codepath (in particular, it requires a loop variable with
a throwing destructor), saving the runtime lookup of the live range
is not worth the extra complexity this adds everywhere else.

show more ...


# 372bf8a9 16-Feb-2018 Nikita Popov

Fixed bug #75969

Move NOP stripping out of zend_optimize_block: NOP stripping may
move instructions, which may invalidate a Tsource shared across
an extended basic block.


12345678