#
3958d5bd |
| 19-Mar-2020 |
Dmitry Stogov |
JIT for ECHO and variable string operands
|
#
282265bc |
| 19-Mar-2020 |
Dmitry Stogov |
JIT for SEND_FUNC_ARG
|
#
8e879b9f |
| 18-Mar-2020 |
Dmitry Stogov |
JIT for ZEND_CHECK_FUNC_ARG
|
Revision tags: php-7.3.18, php-7.4.4, php-7.2.29 |
|
#
d35ce5d6 |
| 16-Mar-2020 |
Nikita Popov |
Merge EX variants of RANGE macros Only need to create the ssa_op variable in range inference...
|
#
44b3971b |
| 16-Mar-2020 |
Nikita Popov |
Merge zend_may_throw(_ex) Explicitly pass ssa_op in the places that don't do so yet.
|
Revision tags: php-7.3.16 |
|
#
4bf2d09e |
| 13-Mar-2020 |
Dmitry Stogov |
Tracing JIT (it doesn't support register allocation yet) Use opcache.jit=1255 to swith it on (the third digit 5 really matters) Use opcache.jit_debug=0xff001 to see how it works and what
Tracing JIT (it doesn't support register allocation yet) Use opcache.jit=1255 to swith it on (the third digit 5 really matters) Use opcache.jit_debug=0xff001 to see how it works and what code it generates
show more ...
|
#
191451da |
| 09-Mar-2020 |
Nikita Popov |
Fix bug #79358: JIT miscompile in composer
|
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, php-7.3.14RC1, php-7.4.2RC1, php-7.4.1, php-7.2.26, php-7.3.13, php-7.4.1RC1 |
|
#
bc6bab6c |
| 06-Dec-2019 |
Nikita Popov |
Basic JIT support for verify return
|
#
e8748112 |
| 24-Dec-2019 |
Dmitry Stogov |
Build call graph before type inference
|
Revision tags: php-7.3.13RC1, php-7.2.26RC1 |
|
#
f8f48ce8 |
| 29-Nov-2019 |
Dmitry Stogov |
Refactor JIT to reduce back-end dependency from SSA representation. This commit shouldn't change JIT behavior, but it adds asserts, that may catch wrong-cases occasionally passed before.
|
Revision tags: php-7.4.0, php-7.2.25, php-7.3.12, php-7.4.0RC6, php-7.3.12RC1, php-7.2.25RC1 |
|
#
61ebce1f |
| 01-Nov-2019 |
Dmitry Stogov |
Don't skip RECV instuctions when function uses type hints
|
Revision tags: 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, 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, 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 ...
|
#
0d55456d |
| 15-Oct-2019 |
Dmitry Stogov |
Use "const" qualifier
|
#
2958fecb |
| 14-Oct-2019 |
Dmitry Stogov |
Fixed incorrect JIT compilation
|
#
2068ce9a |
| 11-Oct-2019 |
Dmitry Stogov |
Use RT_CONSTANT() or CT_CONSTANT() macro depending on ZEND_ACC_DONE_PASS_TWO flag
|
#
3ad20f80 |
| 10-Oct-2019 |
Dmitry Stogov |
Revert/redo pass_two only once
|
#
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 ...
|
#
7d7b20ea |
| 26-Sep-2019 |
Dmitry Stogov |
Don't generate useless stubs
|
#
f43fe067 |
| 09-Sep-2019 |
Dmitry Stogov |
Avoid hash value recalculation on each counter update
|
#
65fa6dac |
| 30-Aug-2019 |
Nikita Popov |
Add jit_bisect_limit To help identify which function is being miscompiled.
|
#
3cc6dd9c |
| 19-Jul-2019 |
Dmitry Stogov |
Fixed JIT
|
#
7a1ca07a |
| 21-Jun-2019 |
Nikita Popov |
Don't try to exclude zreg_none zreg_none has no representation in the regset, so this operation doesn't make sense.
|
#
bb940d99 |
| 19-Jun-2019 |
Nikita Popov |
Avoid UB in overflow checks Some of the overflow checks in zend_may_overflow were optimized away by clang, causing JIT failures on release macos.
|
#
b7a6430a |
| 29-May-2019 |
Nikita Popov |
Don't JIT functions with many blocks Avoids a stack overflow in Zend/tests/runtime_compile_time_binary_operands.php that happens in recursive RPO calculation. We could make that code
Don't JIT functions with many blocks Avoids a stack overflow in Zend/tests/runtime_compile_time_binary_operands.php that happens in recursive RPO calculation. We could make that code non-recursive, but I don't think it makes sense to JIT this kind of function in the first place.
show more ...
|
#
4d1d5bab |
| 28-May-2019 |
Nikita Popov |
Respect optimization_level when running JIT inference Don't enable unsafe type inference by default -- we'll segfault on some FFI tests.
|