History log of /PHP-7.3/ext/opcache/Optimizer/zend_cfg.c (Results 26 – 50 of 63)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 6633e849 16-Mar-2017 Nikita Popov

Sort blocks in loop identification

The previous implementation was doing O(blocks*levels) iterations,
which for a linear-ish domtree is O(blocks^2). Avoid this by sorting
the blocks

Sort blocks in loop identification

The previous implementation was doing O(blocks*levels) iterations,
which for a linear-ish domtree is O(blocks^2). Avoid this by sorting
the blocks by decreasing level upfront.

show more ...


Revision tags: php-7.1.3, php-7.0.17, php-7.1.3RC1, php-7.0.17RC1, php-7.1.2, php-7.0.16, php-7.0.16RC1, php-7.1.2RC1, php-5.6.30, php-7.0.15, php-5.6.30RC1, php-7.1.1RC1, php-7.0.15RC1
# dac6c639 04-Jan-2017 Sammy Kaye Powers

Update copyright headers to 2017


# 9e29f841 02-Jan-2017 Sammy Kaye Powers

Update copyright headers to 2017


Revision tags: php-7.1.1
# 8250b3fc 08-Dec-2016 Xinchen Hui

Fixed possible false assertion failure


Revision tags: php-5.6.29, php-7.0.14
# 9c1920d9 02-Dec-2016 Dmitry Stogov

Revert "Fix memory leaks with FE_RESET upon empty iterator"

This reverts commit 00e516e57549f29387ef858de7847e7e4ca0c1c0.


Revision tags: php-7.1.0
# 00e516e5 28-Nov-2016 Bob Weinand

Fix memory leaks with FE_RESET upon empty iterator

Solved by manually freeing and jumping to the opcode *after* FE_FREE


Revision tags: php-5.6.29RC1, php-7.0.14RC1, php-7.1.0RC6, php-5.6.28, php-7.0.13, php-5.6.28RC1, php-7.1.0RC5, php-7.0.13RC1, php-7.1.0RC4, php-5.6.27, php-7.0.12, php-7.1.0RC3, php-5.6.27RC1, php-7.0.12RC1, php-5.6.26, php-7.1.0RC2, php-7.0.11, php-5.6.26RC1, php-7.1.0RC1, php-7.0.11RC1
# 94fbcbe1 29-Aug-2016 Dmitry Stogov

Allow optional splitting of basic blocks at RECV/RECV_INIT opcodes.


# caf890b2 22-Aug-2016 Dmitry Stogov

Fixed CFG construction for stackless execution (split basic blocks after calls)


Revision tags: php-7.1.0beta3, php-5.6.25, php-7.0.10, php-7.1.0beta2, php-5.6.25RC1, php-7.0.10RC1, php-7.1.0beta1, php-5.6.24, php-7.0.9, php-5.5.38, php-5.6.24RC1, php-7.1.0alpha3, php-7.0.9RC1, php-7.1.0alpha2, php-7.0.8
# 14331620 21-Jun-2016 Dmitry Stogov

Fixed compilation warnings


Revision tags: php-5.6.23, php-5.5.37, php-5.6.23RC1, php-7.0.8RC1, php-7.1.0alpha1
# 70f05468 05-Jun-2016 Nikita Popov

Don't optimize special dynamic calls to non-dynamic

As it drops the warning. This is more problematic with constant
propagation, as tests would fail.

Extract a zend_optimizer_cl

Don't optimize special dynamic calls to non-dynamic

As it drops the warning. This is more problematic with constant
propagation, as tests would fail.

Extract a zend_optimizer_classify_function() function, as its now
needed by zend_cfg and update_opN.

show more ...


# 4935c032 27-May-2016 Xinchen Hui

Revert "assert won't cause indrect var access if it's disabled"

in the other hand, it should not be there if it's disabled...

This reverts commit 27f40676e6f506f353ad8d679dd9b21aa87

Revert "assert won't cause indrect var access if it's disabled"

in the other hand, it should not be there if it's disabled...

This reverts commit 27f40676e6f506f353ad8d679dd9b21aa87b828e.

show more ...


# 27f40676 27-May-2016 Xinchen Hui

assert won't cause indrect var access if it's disabled


Revision tags: php-5.6.22, php-5.5.36, php-7.0.7
# a19eb8e3 18-May-2016 Nikita Popov

Ensure no entry predecessors for SSA construction


# e745b4ca 18-May-2016 Nikita Popov

Replace BB end with BB len

And support empty blocks everywhere.


# 0d62dfdf 21-May-2016 Nikita Popov

Improve previous fix

Do not mark loop var free blocks as reachable after all -- as we
can't construct SSA for unreachable blocks, this would cause
issues down the line.

Inst

Improve previous fix

Do not mark loop var free blocks as reachable after all -- as we
can't construct SSA for unreachable blocks, this would cause
issues down the line.

Instead add an extra UNREACHABLE_FREE flag and retain only the
FREE instruction during NOP removal. (If we retain all
instructions in the BB we might leave a jump instruction that goes
into the nowhere.)

show more ...


# fa956662 21-May-2016 Nikita Popov

Fix reachability detection if live ranges aren't split

Even if we don't split, we still want to keep the same logic for
reachibility detection.


# b65b15c6 17-May-2016 Nikita Popov

Mark assert() as INDIRECT_VAR_ACCESS

I don't like this... we may want to detect "obviously not string"
operands by checking for the result of a comparison instruction.


# ccf18da4 12-May-2016 Dmitry Stogov

Eliminated checks for (func->op_array.fn_flags & ZEND_ACC_GENERATOR) in fast path of DO_FCALL* handlers.
This slightly improves calls to regular function and method calls in cost of a bit slower

Eliminated checks for (func->op_array.fn_flags & ZEND_ACC_GENERATOR) in fast path of DO_FCALL* handlers.
This slightly improves calls to regular function and method calls in cost of a bit slower generator initialization.
Separate call frame for generators, allocated on heap, now created by ZEND_GENERATOR_CREATE instruction.

show more ...


Revision tags: php-5.6.22RC1, php-7.0.7RC1, php-7.0.6, php-5.6.21, php-5.5.35, php-5.6.21RC1, php-7.0.6RC1, php-5.6.20, php-5.5.34, php-7.0.5, php-5.6.20RC1, php-7.0.5RC1
# 8e5b1397 12-Mar-2016 Nikita Popov

Evaluate arguments of new for classes without ctor

ML: http://markmail.org/message/4b3mk7jid64zvz34


# fc49f1c4 17-Mar-2016 Kalle Sommer Nielsen

Fix build


Revision tags: php-5.6.19, php-5.5.33, php-7.0.4
# 8d758e7b 27-Feb-2016 Nikita Popov

Fix dominator tree construction

The used dominator intersection algorithm assumes a postorder
numbering of the CFG. The reversal of our natural numbering is
quite similar to postorde

Fix dominator tree construction

The used dominator intersection algorithm assumes a postorder
numbering of the CFG. The reversal of our natural numbering is
quite similar to postorder, but not the same.

In the future we should precompute both preorder/postorder
numberings and orderings, as these are useful in many places.

show more ...


Revision tags: php-5.6.19RC1, php-7.0.4RC1
# 7174af40 09-Feb-2016 Nikita Popov

Support CFG construction without live range splitting

We must not split at live range boundaries for SSA constructions,
otherwise an OP_DATA instruction may be separated into new block

Support CFG construction without live range splitting

We must not split at live range boundaries for SSA constructions,
otherwise an OP_DATA instruction may be separated into new block
and not picked up during renaming.

It's also unnecessary for this use case and only blows up the CFG.

show more ...


Revision tags: php-5.6.18, php-7.0.3, php-5.5.32
# 949aaea6 23-Jan-2016 Nikita Popov

Don't insert duplicate predecessors

Otherwise we'll get corrupt phis


# 9b854eba 22-Jan-2016 Dmitry Stogov

More accurate handling of isset() and unset()


Revision tags: php-5.6.18RC1, php-7.0.3RC1
# dcf3db6a 19-Jan-2016 Nikita Popov

Mark isset($$var) as INDIRECT_VAR_ACCESS


123