#
2758ff2a |
| 01-Aug-2022 |
Dmitry Stogov |
Tracing: Prevent recording types of variables used to pass zend_class_entry
|
#
b69c6ba9 |
| 20-Oct-2021 |
Dmitry Stogov |
Use right frame
|
#
95c0dfc5 |
| 20-Oct-2021 |
Dmitry Stogov |
JIT: Fixed megamorphic call detection
|
#
08100e81 |
| 23-Sep-2021 |
Dmitry Stogov |
Tracing JIT: Fixed possible stack-buffer-overflow.
|
#
cfb21e8d |
| 13-Sep-2021 |
Hao Sun |
JIT: Fixed exit from CALL VM with GCC Global Register Variables PHP JIT supports three configurations: HYRBID, CALL with global register variables feature(CALL+GRV for short), and CALL+n
JIT: Fixed exit from CALL VM with GCC Global Register Variables PHP JIT supports three configurations: HYRBID, CALL with global register variables feature(CALL+GRV for short), and CALL+noGRV. CALL+GRV mode can be built with the following commands: ``` php Zend/zend_vm_gen.php --with-vm-kind=CALL ./buildconf -f; ./configure; make ``` About 230 test cases failed for tracing JIT under CALL+GRV mode on both x86 and arm64 machines. For CALL+GRV mode, the condition to determine whether the execution of an oparray is finished, is "opline == NULL". See function execute_ex() around line "if (UNEXPECTED(!OPLINE)) {". However, such cleanup operation is missing for the JIT wrapper zend_jit_trace_counter_helper(), and the trace_halt stub function. Tests: 1. test cases: all .phpt test cases under "Zend/tests/ tests/ ext/opcache/tests/jit/". 2. both JIT/x86 and JIT/arm64: function JIT, tracing JIT and tracing JIT with "--repeat 3" 3. execution modes: NTS/ZTS, HYBRID/CALL+GRV/CALL+noGRV In my local test, these test cases passed under all JIT configrations.
show more ...
|
#
e9f9e9f8 |
| 09-Dec-2020 |
Dmitry Stogov |
Perform early guard type check for result of FETCH_CONSTANT
|
Revision tags: php-8.0.0, php-7.3.25, php-7.4.13, php-8.0.0RC5 |
|
#
64dc79f9 |
| 16-Nov-2020 |
Dmitry Stogov |
Trampoline cleanup
|
#
de359c00 |
| 11-Nov-2020 |
Dmitry Stogov |
Stop on fake frame
|
#
11c4821b |
| 11-Nov-2020 |
Dmitry Stogov |
[Observer+JIT] Save opline before calling begin/end handlers
|
Revision tags: php-7.4.13RC1, php-8.0.0RC4, php-7.3.25RC1 |
|
#
0571f094 |
| 02-Nov-2020 |
Nikita Popov |
Rename opcache.jit_max_loops_unroll to opcache.jit_max_loop_unrolls
|
Revision tags: php-7.4.12, php-8.0.0RC3, php-7.3.24, php-8.0.0RC2, php-7.4.12RC1, php-7.3.24RC1 |
|
#
aecb05f5 |
| 30-Sep-2020 |
Dmitry Stogov |
Give preference to ENTER->RECURSIVE_CALL trace over ENTER->RETURN
|
Revision tags: php-7.2.34, php-8.0.0rc1 |
|
#
b44cf937 |
| 29-Sep-2020 |
Dmitry Stogov |
Allow tracing JIT cooperate with function JIT.
|
Revision tags: php-7.4.11, php-7.3.23 |
|
#
2a71cb3c |
| 28-Sep-2020 |
Dmitry Stogov |
Improved trace selection rules
|
#
5783e611 |
| 23-Sep-2020 |
Dmitry Stogov |
Improve trace selection (avoid blacklisting of trace that may be linked).
|
#
3c4fb70f |
| 23-Sep-2020 |
Dmitry Stogov |
Replace ZEND_JIT_TRACE_STOP_RETURN_HALT and ZEND_JIT_TRACE_STOP_HALT by separate ZEND_JIT_TRACE_HALT flag.
|
Revision tags: php-8.0.0beta4 |
|
#
f5bbb048 |
| 15-Sep-2020 |
Dmitry Stogov |
Tracing JIT for INIT_DYNAMIC_CALL (closure only)
|
Revision tags: php-7.4.11RC1, php-7.3.23RC1 |
|
#
6b521a98 |
| 03-Sep-2020 |
Dmitry Stogov |
Fixed support for deprecated constants (Zend/tests/const_deprecation.phpt failure)
|
#
91edb907 |
| 02-Sep-2020 |
Dmitry Stogov |
JIT for FETCH_CONSTANT
|
Revision tags: php-8.0.0beta3, php-7.4.10 |
|
#
91d7e872 |
| 01-Sep-2020 |
Dmitry Stogov |
Fixed nested init fcall guards.
|
Revision tags: php-7.3.22 |
|
#
e86b5c87 |
| 25-Aug-2020 |
Dmitry Stogov |
Record information about packed arrays
|
Revision tags: php-8.0.0beta2, php-7.3.22RC1, php-7.4.10RC1, php-8.0.0beta1, php-7.4.9, php-7.2.33, php-7.3.21, php-8.0.0alpha3, php-7.4.9RC1, php-7.3.21RC1, php-7.4.8, php-7.2.32, php-8.0.0alpha2, php-7.3.20, php-8.0.0alpha1, php-7.4.8RC1, php-7.3.20RC1, php-7.4.7, php-7.3.19, php-7.4.7RC1, php-7.3.19RC1, php-7.4.6, php-7.2.31, php-7.4.6RC1, php-7.3.18RC1, php-7.2.30, php-7.4.5, php-7.3.17 |
|
#
d92229d8 |
| 06-Apr-2020 |
Nikita Popov |
Implement named parameters From an engine perspective, named parameters mainly add three concepts: * The SEND_* opcodes now accept a CONST op2, which is the argument nam
Implement named parameters From an engine perspective, named parameters mainly add three concepts: * The SEND_* opcodes now accept a CONST op2, which is the argument name. For now, it is looked up by linear scan and runtime cached. * This may leave UNDEF arguments on the stack. To avoid having to deal with them in other places, a CHECK_UNDEF_ARGS opcode is used to either replace them with defaults, or error. * For variadic functions, EX(extra_named_params) are collected and need to be freed based on ZEND_CALL_HAS_EXTRA_NAMED_PARAMS. RFC: https://wiki.php.net/rfc/named_params Closes GH-5357.
show more ...
|
#
fd56fd22 |
| 28-Jul-2020 |
Dmitry Stogov |
Always record ZEND_JIT_TRACE_START and ZEND_JIT_TRACE_END
|
#
96a1b409 |
| 23-Jul-2020 |
Dmitry Stogov |
Don't record "fake" closures
|
#
76861182 |
| 21-Jul-2020 |
Dmitry Stogov |
Fix type recording and side exit information for FE_FETCH_* instructions
|
#
be0d9126 |
| 21-Jul-2020 |
Dmitry Stogov |
Avoid recording of uninitialized variable
|