History log of /php-src/Zend/zend_vm_gen.php (Results 51 – 75 of 342)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
# e8525c2f 13-Nov-2019 Tyson Andre

Optimize int === int/double === double

Do this by reusing the implementation used for `==`
when both arguments are ints (IS_LONG) or both are floats (IS_DOUBLE)

```php
// Be

Optimize int === int/double === double

Do this by reusing the implementation used for `==`
when both arguments are ints (IS_LONG) or both are floats (IS_DOUBLE)

```php
// Before: nestedloop_ni took 0.442 seconds
// After: nestedloop_ni takes 0.401 seconds (same as nestedloop_ne)
function nestedloop_ni(int $k) {
$x = 0;
for ($i=0; $i < 50000000; $i++) {
if ($i === $k) {
$x++;
}
}
print "$x\n";
}
function nestedloop_ne(int $k) {
$x = 0;
for ($i=0; $i < 50000000; $i++) {
if ($i == $k) {
$x++;
}
}
print "$x\n";
}
```

show more ...

Revision tags: 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
# f6f32f2c 09-Oct-2019 Dmitry Stogov

SAMRT BRANCH improvement.

Avoid need of insertion NOP opcoes between unrelated SMART BRANCH instruction and following JMPZ/JMPNZ.
Now instead of checking the opcode of following instruct

SAMRT BRANCH improvement.

Avoid need of insertion NOP opcoes between unrelated SMART BRANCH instruction and following JMPZ/JMPNZ.
Now instead of checking the opcode of following instruction, the same information is encoded into SMART BRANH result_type.

show more ...

# eec04f6b 08-Oct-2019 Dmitry Stogov

Encapsulate all SMART BRANCH related logic inside macros. Result of SMART BRANCH may be uninitialized (on exception).

Revision tags: php-7.3.11RC1, php-7.2.24RC1, php-7.4.0RC3
# a66c60cc 26-Sep-2019 Nikita Popov

Throw Error when writing property of non-object

This removes object auto-vivification support.

This also means that we can remove the corresponding special
handling for typed pr

Throw Error when writing property of non-object

This removes object auto-vivification support.

This also means that we can remove the corresponding special
handling for typed properites: We no longer need to check that a
property is convertible to stdClass if such a conversion might
take place indirectly due to a nested property write.

Additionally OBJ_W style operations now no longer modify the
object operand, and as such we no longer need to treat op1 as a
def in SSA form.

The next step would be to actually compile the whole LHS of OBJ_W
operations in R rather than W mode, but that causes issues with
SimpleXML, whose object handlers depend on the current compilation
structure.

Part of https://wiki.php.net/rfc/engine_warnings.

show more ...

# 470bbb8c 25-Sep-2019 Dmitry Stogov

Avoid code dupliction

Revision tags: php-7.2.23, php-7.3.10, php-7.4.0RC2, php-7.2.23RC1, php-7.3.10RC1
# 02c83b80 10-Sep-2019 Dmitry Stogov

ceanup

# 0f8bb9e3 05-Sep-2019 Dmitry Stogov

Merge branch 'PHP-7.4'

* PHP-7.4:
Remove HOT attribute from some VM handlers. Comparisons almost always followed by JMPZ/JMPNZ; JMPZNZ is rare used.
Remove --with-zlib-dir option

Merge branch 'PHP-7.4'

* PHP-7.4:
Remove HOT attribute from some VM handlers. Comparisons almost always followed by JMPZ/JMPNZ; JMPZNZ is rare used.
Remove --with-zlib-dir option from mysqlnd config

show more ...


# 7237da27 05-Sep-2019 Dmitry Stogov

Remove HOT attribute from some VM handlers. Comparisons almost always followed by JMPZ/JMPNZ; JMPZNZ is rare used.

Revision tags: 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
# 57d9b94d 24-Jul-2019 Dmitry Stogov

Simplify TMP/VAR operand releasing

Revision tags: php-7.4.0beta1
# 9e4603f7 24-Jul-2019 Nikita Popov

Try to fix macos build

By avoiding unused variable opline warnings. Also clean up the
replacement of ZEND_VM_SPEC -- we were sometimes treating it as
an always-defined constant with

Try to fix macos build

By avoiding unused variable opline warnings. Also clean up the
replacement of ZEND_VM_SPEC -- we were sometimes treating it as
an always-defined constant with a value (what it actually is) and
sometimes as a conditionally defined constant (which it isn't, but
which still worked thanks to the specializer). Switch to only
treating it as a constant with a value.

show more ...

# 8d51af9b 23-Jul-2019 Dmitry Stogov

Fixed CALL VM

# b30e4a5a 17-Jul-2019 Dmitry Stogov

Avoid extra specialization for cold opcodes

# 6fbab09e 17-Jul-2019 Dmitry Stogov

Remove old hack

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


# 9ccf3fb9 15-Jul-2019 Dmitry Stogov

Fixed incorrect specialization (missed IS_INDIRECT handling)

# 350f2212 11-Jul-2019 Dmitry Stogov

Allow GOTO style helpers in HYBRID VM

# 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

# 8f0c87e1 09-Jul-2019 Dmitry Stogov

Avoid unintended inlining

# e1f418dd 09-Jul-2019 Dmitry Stogov

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

Revision tags: php-7.4.0alpha3
# 1804fd63 08-Jul-2019 Dmitry Stogov

Fixed dispatch from inlined hybrid opcode to another opcode

# 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

# 925fd0fe 04-Jul-2019 Dmitry Stogov

Introduce and use ZEND_VM_INLINE_HANDLER() to avoid ZEND_RETURN exception

12345678910>>...14