History log of /php-src/Zend/zend_vm_handlers.h (Results 26 – 50 of 76)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
Revision tags: php-7.4.4RC1, php-7.3.16RC1, php-7.4.3, php-7.2.28, php-7.3.15RC1, php-7.4.3RC1, php-7.3.15, php-7.2.27, php-7.4.2, php-7.3.14
# d9335916 08-Jan-2020 Nikita Popov

Add support for $obj::class

This allows $obj::class, which gives the same result as get_class($obj).
Anything other than an object results in TypeError.

RFC: https://wiki.php.ne

Add support for $obj::class

This allows $obj::class, which gives the same result as get_class($obj).
Anything other than an object results in TypeError.

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

Closes GH-5065.

show more ...

# 77bf144d 14-Jan-2020 Dmitry Stogov

Inline hot parts of bitwise instructions into hybrid VM

Revision tags: php-7.3.14RC1, php-7.4.2RC1, php-7.4.1, php-7.2.26, php-7.3.13, php-7.4.1RC1
# dea62d4b 07-Dec-2019 Tyson Andre

Speed up ZEND_IS_IDENTICAL when it can't throw

Add a specialized opcode handler to use for `===`/`!==` when:

1. At least one side is a $cv, and the other is a $cv or CONST
(a

Speed up ZEND_IS_IDENTICAL when it can't throw

Add a specialized opcode handler to use for `===`/`!==` when:

1. At least one side is a $cv, and the other is a $cv or CONST
(avoids the need to free operands)
2. Neither operand can be undefined or a reference
(avoids the need for error handling and dereferencing)

```
// Elapsed time decreased from 0.275 seconds to 0.243 seconds in combination
// with PR #4982
function count_same(array $values) {
$same = 0;
foreach ($values as $x) {
foreach ($values as $y) {
if ($y === $x) {
$same++;
}
}
}
return $same;
}
$values = range(0, 5000);
$values[] = new stdClass();
$values[] = null;
$values[] = 3;
$start = microtime(true);
$total = count_same($values);
```

show more ...

# 621842e3 20-Dec-2019 Dmitry Stogov

RECV opcode optimization

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
# 9c9a833f 09-Oct-2019 Nikita Popov

Actually remove the YIELD key specialization

I only adjusted the code before, without switching to TMPVAR.

# da3b2457 09-Oct-2019 Nikita Popov

Reduce YIELD_FROM specialization

Generator delegation is a complex compound operation, it does not
make a lot of sense to optimize refcounting here to this degree.

# 2aba10be 09-Oct-2019 Nikita Popov

Reduce ZEND_THROW specialization

Throwing is very expensive due to the need of gathering the backtrace,
so it makes little sense to optimize refcounting to this degree.

Revision tags: php-7.3.11RC1, php-7.2.24RC1, php-7.4.0RC3, php-7.2.23, php-7.3.10, php-7.4.0RC2, 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
# 853b426e 24-Jul-2019 Dmitry Stogov

Avoid over-specialization

Revision tags: php-7.4.0beta1
# 1eb70617 24-Jul-2019 Nikita Popov

Avoid references in TMP var

Make sure we deref the OBJ_IS result, because we store it in a TMP
var, which is not allowed to contain references and will cause
assertion failures in th

Avoid references in TMP var

Make sure we deref the OBJ_IS result, because we store it in a TMP
var, which is not allowed to contain references and will cause
assertion failures in the unspecialized VM.

This also partially reverts fd463a9a6078074f8f648982b42bdd14423fb614,
which merged the TMP and VAR specializations of COALESCE to work
around this bug.

An alternative would be to change the result type of OBJ_IS back
to VAR.

show more ...

# b30e4a5a 17-Jul-2019 Dmitry Stogov

Avoid extra specialization for cold opcodes

# 918f09f7 17-Jul-2019 Dmitry Stogov

Added specialization for comparison instructions and QM_ASSIGN

# 349a388b 16-Jul-2019 Dmitry Stogov

Slit INC/DEC opcodes into hot/cold parts and remove specialized versioins for LONG_OR_DOUBLE.

Revision tags: php-7.2.21RC1, php-7.3.8RC1
# 2e26b063 15-Jul-2019 Dmitry Stogov

Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
Fixed incorrect specialization (missed IS_INDIRECT handling)


# c5709801 15-Jul-2019 Dmitry Stogov

Merge branch 'PHP-7.2' into PHP-7.3

* PHP-7.2:
Fixed incorrect specialization (missed IS_INDIRECT handling)


# ef1a1a06 11-Jul-2019 Dmitry Stogov

Separate "cold" parts of comparison instructions

# be94c0c3 11-Jul-2019 Dmitry Stogov

Separate "cold" parts of binary op instructions

# e1f418dd 09-Jul-2019 Dmitry Stogov

Remove duplicated code for (PRE|POST)_DEC_(OBJ|STATIC_PROP) opcodes

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

# ef05eab4 04-Jul-2019 Dmitry Stogov

Improve zend_binary_assign_op helpers.
Reorder opcode numbers to make ADD-POW and ASSIGN_ADD-ASSIGN_POW opcodes sequencional.

Revision tags: php-7.3.7
# 56b8b165 03-Jul-2019 Dmitry Stogov

Optimization of INC/DEC helpers

Revision tags: php-7.2.20
# e8f1f701 25-Jun-2019 Dmitry Stogov

Reduce overhead of delayed early binding

Revision tags: php-7.4.0alpha2, php-7.3.7RC3, 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.

# 3f4dfe18 05-Jun-2019 Dmitry Stogov

Prevent generation of specialized ZEND_ASSIGN_OP_..._STATIC_PROP handlers, that call unspecialized helper, anyway.

# 1814308e 30-May-2019 Dmitry Stogov

Don't specialize "cold" handlers

# 4e567ed1 30-May-2019 Dmitry Stogov

Removed useless specialization. Specialized handlers called not specialized helpers.

1234