summaryrefslogtreecommitdiff
path: root/ext/opcache/jit/zend_jit_trace.c
Commit message (Collapse)AuthorAgeFilesLines
...
* Use guard to check if array is packed or hashDmitry Stogov2020-08-261-4/+48
|
* Prevent negative array index accessDmitry Stogov2020-08-261-3/+10
|
* Merge branch 'jit_match'Dmitry Stogov2020-08-251-0/+3
|\ | | | | | | | | | | * jit_match: Support for CASE_STRICT JIT for MATCH and CASE_STRICT instructions
| * JIT for MATCH and CASE_STRICT instructionsDmitry Stogov2020-08-251-0/+3
| |
* | Record information about packed arraysDmitry Stogov2020-08-251-2/+8
| |
* | Move AVOID_REFCOUNTING type info flag into a separate bitDmitry Stogov2020-08-251-5/+10
|/
* cleanup unused parametersDmitry Stogov2020-08-201-52/+51
|
* Shrink live intervals of IS_VAR/IS_TMP_VARDmitry Stogov2020-08-191-3/+25
|
* Fixed register allocation for CASE instruction. CASE don't destroy first ↵Dmitry Stogov2020-08-181-0/+4
| | | | operand and it may be used later in VM or different trace.
* Don't add guard for empty()Dmitry Stogov2020-08-181-0/+6
|
* JIT extension may be NULLDmitry Stogov2020-08-181-2/+2
|
* Fixed support for named argumentsDmitry Stogov2020-08-181-1/+2
|
* Fixed trace type inference for FE_FETCH_R/RWDmitry Stogov2020-08-171-1/+9
|
* Fixed support for possible indirect variable modification ↵Dmitry Stogov2020-08-171-1/+9
| | | | (ext/standard/tests/array/bug77135.phpt failure).
* JIT for ZEND_ISSET_ISEMPTY_CVDmitry Stogov2020-08-171-0/+36
|
* Fixed JIT for indirectly recursive tracesDmitry Stogov2020-08-171-2/+13
|
* Properly patch jmp tablesDmitry Stogov2020-08-171-1/+5
|
* Implement named parametersNikita Popov2020-07-311-0/+21
| | | | | | | | | | | | | | | | | | 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.
* Remove more unused func_info fieldsNikita Popov2020-07-301-6/+0
|
* Clear result type for exit point caused by JMPZ_EX/NZ_EXDmitry Stogov2020-07-301-1/+10
|
* Don't skip fcall guard for method calls from traitDmitry Stogov2020-07-301-0/+8
|
* Temporary disable abstract test usage for inferring previous type of ↵Dmitry Stogov2020-07-291-0/+12
| | | | variables (previous value may be in CPU register and type of the stack slot may be inconsistent).
* Fixed live-range interval construction (close all frames)Dmitry Stogov2020-07-291-0/+16
|
* Use inline function instead of macroDmitry Stogov2020-07-291-11/+24
|
* Fixed incorrect reuse of exit_pointDmitry Stogov2020-07-281-1/+2
|
* Check for EG(exception) after leaving function frameDmitry Stogov2020-07-281-1/+7
|
* Move asserts to better placesDmitry Stogov2020-07-281-3/+4
|
* Replace ZEND_JIT_TRACE_MAX_EXIT_COUNTERS constant by ↵Dmitry Stogov2020-07-281-4/+11
| | | | opcache.jit_max_exit_counters configuration directive
* Update abstarct stack before guard to keep proper type in side traceDmitry Stogov2020-07-281-0/+1
|
* Fixed incorrect side exit opline of "fake" init_fcall guardDmitry Stogov2020-07-271-8/+21
|
* Correct assertionDmitry Stogov2020-07-271-1/+9
|
* Fixed incorrect abstract stack size calculationDmitry Stogov2020-07-271-1/+1
|
* Properly cleanup in case of abort because too many functions in single trace.Dmitry Stogov2020-07-271-0/+2
|
* Prevent setting of incorrect continuation countersDmitry Stogov2020-07-271-2/+0
|
* type in commentDmitry Stogov2020-07-271-1/+1
|
* Cleanup abstract test usageDmitry Stogov2020-07-231-39/+31
|
* Allow keeping result of FETCH_DIM_R in CPU registerDmitry Stogov2020-07-231-3/+4
|
* We track only arguments of user functions on abstract stackDmitry Stogov2020-07-231-1/+2
|
* Separate and fix deoptimization code generatorDmitry Stogov2020-07-221-126/+149
|
* Prevent incorrect trasing JIT TSSA usage for range() result type inferenceDmitry Stogov2020-07-221-0/+1
|
* Drop no-op dasm_growpc() callNikita Popov2020-07-221-1/+0
| | | | | This doesn't do anything, as maxpc=0 is passed. However, ubsan complains about the memset of a null pointer, so avoid it.
* Keep CPU regesters used by deoptimizerDmitry Stogov2020-07-201-1/+2
|
* Side exit on overflowDmitry Stogov2020-07-171-0/+5
|
* Eliminate useless exception checksDmitry Stogov2020-07-171-0/+2
|
* Eliminate some reference-countingDmitry Stogov2020-07-171-2/+24
|
* cleanupDmitry Stogov2020-07-161-6/+3
|
* cleanupDmitry Stogov2020-07-161-6/+1
|
* Check type guard on result of FETCH_OBJ_R/IS instructionsDmitry Stogov2020-07-161-1/+4
|
* Fixed tracing JIT for ASSIGN to typed referenceDmitry Stogov2020-07-161-0/+3
|
* Check type guard on result of FETCH_DIM_R/IS instructionsDmitry Stogov2020-07-151-11/+87
|