#
249e9a63 |
| 27-Nov-2019 |
Dmitry Stogov |
Fixed JIT for LONG->DOUBLE conversion when optimizer disabled
|
Revision tags: php-7.4.0 |
|
#
b046a8f7 |
| 26-Nov-2019 |
Dmitry Stogov |
Fixed incorrect JIT compilation
|
Revision tags: php-7.2.25, php-7.3.12 |
|
#
36afe4e3 |
| 12-Nov-2019 |
Dmitry Stogov |
Optimize $x === null into is_null($x)
|
#
d94c27dc |
| 12-Nov-2019 |
Dmitry Stogov |
Fixed JIT for TYPE_CHECK opcode (exception handling in case of undefined argument)
|
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, php-7.3.11RC1, php-7.2.24RC1, php-7.4.0RC3 |
|
#
999e32b6 |
| 25-Sep-2019 |
Nikita Popov |
Implement union types According to RFC: https://wiki.php.net/rfc/union_types_v2 The type representation now makes use of both the pointer payload and the type mask at the same t
Implement union types According to RFC: https://wiki.php.net/rfc/union_types_v2 The type representation now makes use of both the pointer payload and the type mask at the same time. Additionall, zend_type_list is introduced as a new kind of pointer payload, which is used to store multiple class types. Each of the class types is a tagged pointer, which may be either a class name or class entry. The latter is only used for typed properties, while arguments/returns will instead use cache slots. A type list can contain a mix of both names and CEs at the same time, as not all classes may be resolvable. One thing this is missing is support for union types in arginfo and stubs, which I want to handle separately. I've also dropped the special object code from the JIT implementation for now -- I plan to add this back in a different form at a later time. For now I did not want to include non-trivial JIT changes together with large functional changes. Another possible piece of follow-up work is to implement "iterable" as an internal alias for "array|Traversable". I believe this will eliminate quite a few special-cases that had to be implemented. Closes GH-4838.
show more ...
|
Revision tags: php-7.2.23, php-7.3.10 |
|
#
ac4e0f08 |
| 20-Sep-2019 |
Nikita Popov |
Make zend_type a 2-field struct We now store the pointer payload and the type mask separately. This is in preparation for union types, where we will be using both at the same time.
Make zend_type a 2-field struct We now store the pointer payload and the type mask separately. This is in preparation for union types, where we will be using both at the same time. To avoid increasing the size of arginfo structures, the pass_by_reference and is_variadic fields are now stored as part of the type_mask (8-bit are reserved for custom use). Different types of pointer payloads are distinguished based on bits in the type_mask.
show more ...
|
Revision tags: 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, php-7.4.0beta1, php-7.2.21RC1, php-7.3.8RC1, php-7.4.0alpha3, php-7.3.7, php-7.2.20, 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, php-7.2.19RC1, php-7.3.6RC1, php-7.1.29, php-7.2.18, php-7.3.5, php-7.2.18RC1, php-7.3.5RC1, php-7.2.17, php-7.3.4, php-7.1.28, php-7.3.4RC1, php-7.2.17RC1, php-7.1.27, php-7.3.3, php-7.2.16, php-7.3.3RC1, php-7.2.16RC1 |
|
#
aef88361 |
| 13-Feb-2019 |
Nikita Popov |
Don't check $this existence in object opcodes We are now guaranteed that $this always exists inside methods, as well as insides closures (if they use $this at all). This removes
Don't check $this existence in object opcodes We are now guaranteed that $this always exists inside methods, as well as insides closures (if they use $this at all). This removes checks for $this existence from the individual object opcodes. Instead ZEND_FETCH_THIS is used in the cases where $this is not guaranteed to exist, which is mainly the pseudo-main scope. Closes GH-3822.
show more ...
|
#
39897eb8 |
| 29-Oct-2019 |
Nikita Popov |
Try to fix asan warning in scalar_constant_defaults.phpt Doing the SAVE_VALID_OPLINE right before the call, because we still need r0 before that.
|
#
ae46df0c |
| 22-Oct-2019 |
Nikita Popov |
JIT: Add option to disable SSA checks
|
#
fe6c420b |
| 23-Oct-2019 |
Nikita Popov |
JIT: Handle typed refs in assign dim
|
#
ecc309bf |
| 22-Oct-2019 |
Nikita Popov |
JIT: Fix handling of typed ref in assign dim op
|
#
2f80fbe3 |
| 22-Oct-2019 |
Nikita Popov |
JIT: Fix handling of typed ref in assign op
|
#
8cdbcd7d |
| 22-Oct-2019 |
Nikita Popov |
JIT: Check exception after jit_assign_dim_op_helper
|
#
605e0de3 |
| 17-Oct-2019 |
Dmitry Stogov |
Clenup "smart branch" handling
|
#
65c4cc23 |
| 17-Oct-2019 |
Dmitry Stogov |
Fixed wrong shift
|
#
3df64af9 |
| 17-Oct-2019 |
Dmitry Stogov |
Relay on DO_ICALL/DO_UCALL opcode to avoid generation of useless code
|
#
3a88c5b8 |
| 16-Oct-2019 |
Dmitry Stogov |
Fixed exception handling
|
#
5431837a |
| 16-Oct-2019 |
Dmitry Stogov |
Clenup "smart branch" handling
|
#
902b00e6 |
| 15-Oct-2019 |
Dmitry Stogov |
Fixed exception source
|
#
0d55456d |
| 15-Oct-2019 |
Dmitry Stogov |
Use "const" qualifier
|
#
2958fecb |
| 14-Oct-2019 |
Dmitry Stogov |
Fixed incorrect JIT compilation
|
#
3f50922a |
| 14-Oct-2019 |
Dmitry Stogov |
Fixed incorrect JIT compilation
|
#
2f92957f |
| 01-Oct-2019 |
Nikita Popov |
Convert some notices to warnings Part of https://wiki.php.net/rfc/engine_warnings.
|
#
27ad0efb |
| 01-Oct-2019 |
Nikita Popov |
Revert "Save opline before fallible arg type check in recv_init jit" This reverts commit b09bddcaa5d6af94f0b94b324c1f52045c909d5e. This causes test failures on macos -- presumably t
Revert "Save opline before fallible arg type check in recv_init jit" This reverts commit b09bddcaa5d6af94f0b94b324c1f52045c909d5e. This causes test failures on macos -- presumably the relevant difference is that it has no global regs. I suspect that this is related to the fact that SAVE_VALID_OPLINE may use r0 as a scratch register, which is already in use. Reverting for now.
show more ...
|
#
b09bddca |
| 01-Oct-2019 |
Nikita Popov |
Save opline before fallible arg type check in recv_init jit The verify arg functions may throw an exception, so we need to save the opline beforehand. Asan failures could be observed in
Save opline before fallible arg type check in recv_init jit The verify arg functions may throw an exception, so we need to save the opline beforehand. Asan failures could be observed in Zend/tests/type_declarations/scalar_constant_defaults.phpt with a ZTS build.
show more ...
|