History log of /PHP-7.3/ext/opcache/Optimizer/optimize_func_calls.c (Results 26 – 50 of 59)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: php-5.5.35, php-5.6.21RC1, php-7.0.6RC1
# 4f54c15c 07-Apr-2016 Nikita Popov

Ct bind private/final $this method call args

The test covers two edge-cases wrt opcache support.


# b73517c1 14-Apr-2016 Dmitry Stogov

Use DO_FCALL_BY_NAME instead of DO_FCALL, if possible


# 3ad0e1d6 07-Apr-2016 Nikita Popov

Fix static method arg binding in traits


Revision tags: php-5.6.20, php-5.5.34, php-7.0.5
# b867bd1c 26-Mar-2016 Nikita Popov

Fix FETCH_CLASS_SELF comparisons

Turns out those don't form a bitfield.


Revision tags: php-5.6.20RC1, php-7.0.5RC1
# 64dae1ea 13-Mar-2016 Nikita Popov

Statically bind static method call arguments

If we know what method will be called, use ct-bound send opcodes.

The intl test is changed because a runtime error changed to a
comp

Statically bind static method call arguments

If we know what method will be called, use ct-bound send opcodes.

The intl test is changed because a runtime error changed to a
compile-time error.

show more ...


Revision tags: php-5.6.19, php-5.5.33, php-7.0.4, php-5.6.19RC1, php-7.0.4RC1, php-5.6.18, php-7.0.3, php-5.5.32
# 63fb2b71 25-Jan-2016 Xinchen Hui

Improve the names


Revision tags: php-5.6.18RC1, php-7.0.3RC1, php-5.6.17, php-5.5.31, php-7.0.2
# 2eb1f38d 01-Jan-2016 Lior Kaplan

Happy new year (Update copyright to 2016)


Revision tags: php-7.0.2RC1, php-5.6.17RC1, php-7.0.1RC1, php-7.0.0, php-5.6.16, php-7.0.0RC8, php-7.0.0RC7, php-5.6.16RC1, php-5.6.15, php-7.0.0RC6
# eb7be537 27-Oct-2015 Dmitry Stogov

Speed up fetching of class entries for self:: parent:: and static::

This is generalized solution for Bob's idea of speed up self::method() calls without ZEND_FETCH_CLASS.

At first,

Speed up fetching of class entries for self:: parent:: and static::

This is generalized solution for Bob's idea of speed up self::method() calls without ZEND_FETCH_CLASS.

At first, it adds few new opcodes to separate class related behaviour:
FETCH_STATIC_PROP_R
FETCH_STATIC_PROP_W
FETCH_STATIC_PROP_RW
FETCH_STATIC_PROP_FUNC_ARG
FETCH_STATIC_PROP_UNSET
FETCH_STATIC_PROP_IS
UNSET_STATIC_PROP
ISSET_ISEMPTY_STATIC_PROP
FETCH_CLASS_CONSTANT

At seconds, it enables IS_UNUSED operand to fetch (self, parent or static without separate FETCH_CLASS) for new opcodes and the following ones:
INIT_STATIC_METHOD_CALL
NEW
END_INSTANCEOF

Finaly, opcache optimizer had to be fixed to support new opcodes.

show more ...


Revision tags: php-7.0.1, php-5.6.15RC1, php-7.0.0RC5, php-5.5.30, php-5.6.14, php-7.0.0RC4, php-5.6.14RC1, php-7.0.0RC3, php-5.6.13, php-7.0.0RC2, php-5.5.29, php-5.4.45, php-5.6.13RC1, php-7.0.0RC1, php-5.6.12, php-5.5.28, php-7.0.0beta3, php-5.4.44, php-5.6.12RC1, php-7.0.0beta2, php-7.0.0beta1, php-5.6.11, php-5.5.27, php-5.4.43, php-5.6.11RC1, php-5.5.27RC1, php-7.0.0alpha2, php-5.5.26, php-7.0.0alpha1, php-5.6.10, php-5.4.42, POST_PHP7_NSAPI_REMOVAL, PRE_PHP7_NSAPI_REMOVAL, php-5.6.10RC1, php-5.5.26RC1, php-5.5.25, php-5.6.9, php-5.4.41, php-5.6.9RC1, php-5.5.25RC1, php-5.6.8, php-5.5.24, php-5.4.40, php-5.6.8RC1, php-5.5.24RC1, php-5.6.7, php-5.5.23, php-5.4.39, php-5.6.7RC1, php-5.5.23RC1, POST_PHP7_EREG_MYSQL_REMOVALS, PRE_PHP7_EREG_MYSQL_REMOVALS
# a29b64fc 04-Mar-2015 Xinchen Hui

Fixed bug #69159 (Opcache causes problem when passing a variable variable to a function)


# c2c78dc9 25-Feb-2015 Dmitry Stogov

Added specialized versions of DO_FCALL handler:
DO_ICALL - for internal functions
DO_UCALL - for user functions
DO_FCALL_BY_NAME - plain, most probably user, funcstions (not methods)


# dcb96c2e 24-Feb-2015 Dmitry Stogov

Split INIT_FCALL_BY_NAME inti INIT_FCALL_BY_NAME(CONST+STRING) and INIT_DYNAMIC_CALL(CONST-STRING|TMPVAR|CV)


Revision tags: php-5.6.6, php-5.5.22, php-5.4.38, POST_PHP7_REMOVALS, PRE_PHP7_REMOVALS, php-5.6.6RC1, php-5.5.22RC1, php-5.5.21, php-5.6.5, php-5.4.37
# fc33f52d 15-Jan-2015 Xinchen Hui

bump year


Revision tags: php-5.5.21RC1, php-5.6.5RC1
# b7a7b1a6 03-Jan-2015 Stanislav Malyshev

trailing whitespace removal


Revision tags: POST_NATIVE_TLS_MERGE, PRE_NATIVE_TLS_MERGE, php-5.5.20, php-5.4.36, php-5.6.4
# bdeb220f 13-Dec-2014 Anatol Belski

first shot remove TSRMLS_* things


# 9ea35a37 12-Dec-2014 Dmitry Stogov

Make ZEND_INIT_FCALL keep predcalculted size of necessary stack space in opline->op1.num to avoid its recalculation on each execution.


Revision tags: php-5.6.4RC1, php-5.5.20RC1
# e20a7274 18-Nov-2014 Dmitry Stogov

SEND_VAR_NO_REF optimization


Revision tags: php-5.6.3, php-5.5.19, php-5.4.35, php-5.6.3RC1, php-5.5.19RC1, php-5.5.18, php-5.4.34, php-5.5.18RC1, php-5.6.1, php-5.6.2, php-5.4.33, php-5.5.17, php-5.6.1RC1, php-5.5.17RC1, php-5.4.33RC1
# 234af84c 28-Aug-2014 Dmitry Stogov

Refactored optimizer (compile different opimizer passes separately, instead of including *.c file)


Revision tags: php-5.6.0
# 614bc316 26-Aug-2014 Dmitry Stogov

Fixed incorrect ZEND_INIT_FCALL_BY_NAME -> ZEND_INIT_FCALL conversion


Revision tags: POST_AST_MERGE, PRE_AST_MERGE, POST_64BIT_BRANCH_MERGE, PRE_64BIT_BRANCH_MERGE, php-5.5.16, php-5.4.32
# f72d6f97 15-Aug-2014 Nikita Popov

ZEND_INIT_FCALL_BY_NAME can have non-string literal


# 101c0553 15-Aug-2014 Xinchen Hui

Add copyright header


# e2522b4f 15-Aug-2014 Xinchen Hui

Remove old version PHP supports


Revision tags: POST_PHPNG_MERGE, PRE_PHPNG_MERGE, php-5.6.0RC4, php-5.3.29, php-5.5.16RC1, php-5.4.32RC1, php-5.3.29RC1, php-5.6.0RC3, php-5.5.15, php-5.4.31
# de306e70 10-Jul-2014 Dmitry Stogov

Implement call_user_func() and call_user_func_array() using special opcodes.
In some rare cases it leads to insignificant changes in error messages.


Revision tags: php-5.4.31RC1, php-5.5.15RC1
# b36aaea6 07-Jul-2014 Dmitry Stogov

ZEND_SEND_VAR and ZEND_SEND_VAL specialization


Revision tags: php-5.6.0RC2
# b7715c7e 30-Jun-2014 Dmitry Stogov

Refactored parameter passing mechanism.

In PHP-5.6 and below each argument passed to user function was copies on VM stack twice.
Now we always have ZEND_INIT_FCALL (or simular) opcode th

Refactored parameter passing mechanism.

In PHP-5.6 and below each argument passed to user function was copies on VM stack twice.
Now we always have ZEND_INIT_FCALL (or simular) opcode that pushes "call frame" on top of VM stack.
"Call frame" is actually the same zend_execute_data structure.
All the following ZEND_SEND instructions push arguments on top of the stack in a way that they directly comes into corresponding CV variables of the called frame. Extra arguments are copied at the end of stack frame (after all CV and TMP variables) on function enterance.

There are two minor incompatibilities:
1) It's not allowed to decalre functions redefining arguments e.g. "function foo($a,$a) {}".
2) func_get_arg() and func_get args() return the current value of argument and not the original value that was sent.

show more ...


Revision tags: php-5.4.30, php-5.5.14, php-5.6.0RC1
# a4f38192 18-Jun-2014 Dmitry Stogov

Use arena allocator for optimizer temporary data structures


123