History log of /PHP-8.0/ext/opcache/jit/zend_jit_vm_helpers.c (Results 1 – 25 of 66)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 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


123