History log of /PHP-8.2/Zend/Optimizer/zend_cfg.c (Results 1 – 24 of 24)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
# eecbb60d 17-Oct-2022 Dmitry Stogov

Fix memory leak

Fixes oss-fuzz #52479

# ca0afc3c 07-Feb-2022 Dmitry Stogov

Improve speed of dominators and loop identification algorithms

# 4543cd32 30-Dec-2021 Nikita Popov

Remove JMPZNZ opcode

While JMPZNZ can avoid execution of a separate JMP opcode in some
cases, it also prevents smart branch optimization, so creating
JMPZNZ may actually have a negat

Remove JMPZNZ opcode

While JMPZNZ can avoid execution of a separate JMP opcode in some
cases, it also prevents smart branch optimization, so creating
JMPZNZ may actually have a negative effect. It also adds additional
complexity for optimizations.

Drop JMPZNZ in favor of JMPZ+JMP or JMPNZ+JMP.

Closes GH-7857.

show more ...

# 43b3cf11 06-Oct-2021 Nikita Popov

Merge branch 'PHP-8.1'

* PHP-8.1:
Don't start new block after loop free


# f455894b 06-Oct-2021 Nikita Popov

Don't start new block after loop free

This reverts the change from 493c91c7429ee4552d2b80a2648271e2ba97f15c.
Starting a new block means that in the common case where the loop var
fre

Don't start new block after loop free

This reverts the change from 493c91c7429ee4552d2b80a2648271e2ba97f15c.
Starting a new block means that in the common case where the loop var
free is not unreachable, we'll always merge back the block.

Instead fix the original problem by explicitly removing instructions
apart from the loop var free in block pass.

show more ...

# d1aff29a 04-Oct-2021 Nikita Popov

Merge branch 'PHP-8.1'

* PHP-8.1:
Start new block after loop free


# 493c91c7 04-Oct-2021 Nikita Popov

Start new block after loop free

In the attached test case we ended up not updating a leftover
MATCH jump in the unreachable_free block. There's different ways
this can be addressed,

Start new block after loop free

In the attached test case we ended up not updating a leftover
MATCH jump in the unreachable_free block. There's different ways
this can be addressed, but in this case we can just make sure that
a new block is started after the loop free, which will allow it
to be dropped as unreachable. We only need to retain the free
itself for live-range reconstruction.

Fixes oss-fuzz #39516.

show more ...

# 223370e5 28-Sep-2021 Nikita Popov

Merge branch 'PHP-8.1'

* PHP-8.1:
Fix block marking for two arm math


# 1e4a9a49 28-Sep-2021 Nikita Popov

Merge branch 'PHP-8.0' into PHP-8.1

* PHP-8.0:
Fix block marking for two arm math


# 3981f430 27-Sep-2021 Nikita Popov

Merge branch 'PHP-8.1'

* PHP-8.1:
Start block at loop var free


# b86fdf84 27-Sep-2021 Nikita Popov

Merge branch 'PHP-8.0' into PHP-8.1

* PHP-8.0:
Start block at loop var free


# 2157d11d 23-Sep-2021 Nikita Popov

Merge branch 'PHP-8.1'

* PHP-8.1:
Don't treat expression exit as terminator


# c9762be5 23-Sep-2021 Nikita Popov

Don't treat expression exit as terminator

Same as with throw expressions, this may remove later temporary
consuming instructions and thus eliminate live ranges, resulting
in a memory

Don't treat expression exit as terminator

Same as with throw expressions, this may remove later temporary
consuming instructions and thus eliminate live ranges, resulting
in a memory leak. We make use of the same hack and don't consider
exit a terminator if used in an expression context.

show more ...

# a06d6c36 20-Sep-2021 George Peter Banyard

Voidify zend_cfg_identify_loops()

It always returned SUCCESS

# 53c72bd6 20-Sep-2021 George Peter Banyard

Voidify zend_cfg_compute_dominators_tree()

It always returned SUCCESS

# 6a456644 20-Sep-2021 George Peter Banyard

Voidify zend_cfg_build_predecessors()

It always returned SUCCESS

# 50378666 20-Sep-2021 George Peter Banyard

Voidify zend_build_cfg()

It always returned SUCCESS

# 53d5420d 20-Sep-2021 George Peter Banyard

Use more appropriate types in Optimizer

Mainly using zend_result and bool instead of int

# a3a74b07 21-Jul-2021 Dmitry Stogov

Merge branch 'PHP-8.0'

* PHP-8.0:
Fixed Bug #80959 (infinite loop in building cfg during JIT compilation)


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

# b82242a8 20-Apr-2021 Nikita Popov

Remove unnecessary php.h includes from Zend/

The Zend/ directory really shouldn't be including php headers.
These particular includes are plain unnecessary.

# 6cd0b48c 19-Apr-2021 Matt Brown

Implement never return type

The never type can be used to indicate that a function never
returns, for example because it always unwinds.

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

Implement never return type

The never type can be used to indicate that a function never
returns, for example because it always unwinds.

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

Closes GH-6761.

show more ...

# 5caaf40b 29-Sep-2020 George Peter Banyard

Introduce pseudo-keyword ZEND_FALLTHROUGH

And use it instead of comments

# 83be073a 26-Jan-2021 Nikita Popov

Move optimizer into core

This only moves the files, adjusts the build system, exports APIs
and does minor fixups to make sure the code builds.

This does not yet try to make the

Move optimizer into core

This only moves the files, adjusts the build system, exports APIs
and does minor fixups to make sure the code builds.

This does not yet try to make the optimizer usable independently
of opcache.

Closes GH-6642.

show more ...