History log of /PHP-8.0/ext/opcache/Optimizer/sccp.c (Results 1 – 25 of 122)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 84ea0aa6 16-May-2022 Dmitry Stogov

Fix memory leak

This fixes oss-fuzz #47448


# 33b8ef99 13-May-2022 Arnaud Le Blanc

Do not optimize out ini_get() when the entry does not exist during compilation (#8507)

The entry may exist later if dl is enabled

Fixes GH-8466


# 151d2ac5 11-Mar-2022 Dmitry Stogov

Fixed memory leak

Fixes oss-fuzz #45191


# 965dafe3 28-Jan-2022 Dmitry Stogov

Fix too aggressive DCE that leads to memory leak

Fixes oss-fuzz #43738


# 698ac237 10-Jan-2022 Dmitry Stogov

Fixed NAN handling in SCCP

Fixes oss-fuzz #43341


# 2b81156f 24-Dec-2021 Dmitry Stogov

Fix memory leak in SCCP

Fixes oss-fuzz #42878


# 230de772 13-Dec-2021 Dmitry Stogov

Fix incorrect optimization that leads to memory leak

Fixes oss-fuzz #42221


# aff11554 29-Nov-2021 Dmitry Stogov

JIT: Fix exception handling when next array element is already occupied

Fixes oss-fuzz #41408


# d8c2ff64 28-Sep-2021 Nikita Popov

Fix type inference and SCCP with typed references

We can't assume that the return value will be the same as the RHS
if typed references are involved.


# 1b33da5d 20-Sep-2021 Nikita Popov

Don't replace values in unreachable code in sccp

While technically legal, this may cause unexpected situations
(in this example, setting an FE_FREE operand to constant null)
and is s

Don't replace values in unreachable code in sccp

While technically legal, this may cause unexpected situations
(in this example, setting an FE_FREE operand to constant null)
and is suboptimal anyway. It's better to preserve the vacuous type
and drop it later (though we currently don't implement this).

show more ...


# 4c8093a9 16-Sep-2021 Nikita Popov

Don't const evaluate increment of array in SCCP


# 3f4bc94b 10-Jun-2021 Nikita Popov

Mitigation for bug #81096

This issue is properly fixed by GH-7121 on master. For older
branches, disable the use of range information in SCCP, to
reduce impact of potentially incorre

Mitigation for bug #81096

This issue is properly fixed by GH-7121 on master. For older
branches, disable the use of range information in SCCP, to
reduce impact of potentially incorrect ranges.

show more ...


# 7c6cf094 13-Apr-2021 twosee

Fixed bug #80900

SCCP optimization marks the wrong target feasible when the constant is of the incorrect type.

Closes GH-6861.


# 5b3809e9 27-Nov-2020 Nikita Popov

Respect strict_types during sccp function call evaluation

Similar to what we do with attributes, add a dummy call frame
on which we can set the strict_types flag.


# 0ce9b5f7 27-Nov-2020 Nikita Popov

Don't check for throwing calls in sccp function evaluation

We only need to reject functions that could warn (or have runtime
dependent behavior). If a function can throw in some cases, j

Don't check for throwing calls in sccp function evaluation

We only need to reject functions that could warn (or have runtime
dependent behavior). If a function can throw in some cases, just
let it and discard the result.

show more ...


# a505fc62 27-Nov-2020 Nikita Popov

Fix handling of sccp exceptions

We should clear the exception *before* we destroy the execute_data.
Add a variation of the test that indirects through another file,
and would crash o

Fix handling of sccp exceptions

We should clear the exception *before* we destroy the execute_data.
Add a variation of the test that indirects through another file,
and would crash otherwise.

show more ...


# e5aae358 27-Nov-2020 Nikita Popov

Handle exceptions during SCCP function evaluation

Easier to handle them than to ensure they can't happen in the
first place.


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, php-8.0.0beta4, php-7.4.11RC1, php-7.3.23RC1, php-8.0.0beta3, php-7.4.10, php-7.3.22
# fa8d9b11 28-Aug-2020 George Peter Banyard

Improve type declarations for Zend APIs

Voidification of Zend API which always succeeded
Use bool argument types instead of int for boolean arguments
Use bool return type for functio

Improve type declarations for Zend APIs

Voidification of Zend API which always succeeded
Use bool argument types instead of int for boolean arguments
Use bool return type for functions which return true/false (1/0)
Use zend_result return type for functions which return SUCCESS/FAILURE as they don't follow normal boolean semantics

Closes GH-6002

show more ...


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


# 92c4b065 16-Jun-2020 Christoph M. Becker

Use ZEND_UNREACHABLE() instead of ZEND_ASSERT(0)

Instead of marking unreachable code with `ZEND_ASSERT(0)`, we introduce
`ZEND_UNREACHABLE()`, so that MSVC which does not consider `asser

Use ZEND_UNREACHABLE() instead of ZEND_ASSERT(0)

Instead of marking unreachable code with `ZEND_ASSERT(0)`, we introduce
`ZEND_UNREACHABLE()`, so that MSVC which does not consider `assert(0)`
to mark unreachable code does no longer trigger C4715[1] warnings in
debug builds. This may be useful for other compilers as well.

[1] <https://docs.microsoft.com/de-de/cpp/error-messages/compiler-warnings/compiler-warning-level-1-c4715?view=vs-2019>

show more ...


# 83a77015 08-Jun-2020 twosee

Add helper APIs for maybe-interned string creation

Add ZVAL_CHAR/RETVAL_CHAR/RETURN_CHAR as a shortcut for using
ZVAL_INTERNED_STRING and ZSTR_CHAR.

Add zend_string_init_fast()

Add helper APIs for maybe-interned string creation

Add ZVAL_CHAR/RETVAL_CHAR/RETURN_CHAR as a shortcut for using
ZVAL_INTERNED_STRING and ZSTR_CHAR.

Add zend_string_init_fast() as a helper for the empty string /
one char interned string / zend_string_init() pattern.

Also add corresponding ZVAL_STRINGL_FAST etc macros.

Closes GH-5684.

show more ...


# 543684e7 07-Jun-2020 Tyson Andre

Optimize out no-op `yield from` statements

If the array is empty, then I'd expect that the generator is never left,
and that can be converted to a no-op and the return value would always

Optimize out no-op `yield from` statements

If the array is empty, then I'd expect that the generator is never left,
and that can be converted to a no-op and the return value would always be `null`.

Make `yield from [];` as efficient as `if (false) { yield null; }`
when opcache's sccp pass is enabled.

Closes GH-5679

show more ...


# 7d6a0ba8 07-Jun-2020 twosee

Fix expression warnings and break warnings

Close GH-5675.


# bd329a60 27-May-2020 Dmitry Stogov

Keep information about SEND_UNPACK/SEND_ARRAY in call_info


12345