Dmitry Stogov
9dd3e8be8a
JIT: Fixed memory leak in Zend/tests/concat_002.phpt introduced by fac78ee760
2021-11-17 18:43:39 +03:00
Dmitry Stogov
fac78ee760
JIT: Fixed memory leak
2021-11-17 13:59:35 +03:00
Dmitry Stogov
48a65fef6f
JIT: Fixed memory lieak
2021-11-17 12:48:56 +03:00
David Carlier
fb3e646f6b
OpenBSD ZTS build fix
...
Closes GH-7661.
2021-11-17 10:20:05 +01:00
Dmitry Stogov
fc35a6b93c
Tracing JIT: Fixed abstract stack consistency for [QM_]ASSIGN of CV to itself
2021-11-15 23:25:16 +03:00
Dmitry Stogov
85066fd88e
Tracing JIT: Fixed failure on non-optimized op_arrays (op_array->T may be above ssa->vars_count)
2021-11-15 14:44:01 +03:00
Dmitry Stogov
292d76d8a4
JIT: Fixed reference-counting inference
2021-11-15 10:39:58 +03:00
Dmitry Stogov
64fde17042
Fixed test
2021-11-12 22:48:50 +03:00
Dmitry Stogov
12d02e6227
Fixed incorrect guard elimination
2021-11-12 21:00:08 +03:00
Dmitry Stogov
5380b415a2
JIT: Partially fix handling of exceptions thrown in interrupt handlers
2021-11-11 21:14:17 +03:00
Dmitry Stogov
64915775a7
JIT: Fixed incorrect MOD into BW_AND optimization
2021-11-10 21:14:41 +03:00
Dmitry Stogov
3081423706
Tracing JIT: Fixed register allocation
...
In case of side exit on ADD/SUB/MUL overflow source registers must be kept unchanged
2021-11-10 20:04:25 +03:00
Dmitry Stogov
3dba5566ce
Tracing JIT: Fixed incorrect assumption about in-memeory zval type
2021-11-10 16:46:09 +03:00
Dmitry Stogov
45683703f1
JIT: Fixed memory leak
2021-11-10 12:49:20 +03:00
Dmitry Stogov
203c1b807e
Tracing JIT: Fixed incorrect tracing type inference
...
There are some cases when IS_VAR/IS_TMP_VAR variables are set to IS_UNDEF.
TODO: It would be better to switch to IS_NULL in master.
2021-11-10 11:10:44 +03:00
Dmitry Stogov
535a0553e8
Fixed incorrect reference counter inference
2021-11-08 20:54:17 +03:00
Dmitry Stogov
8fe808207f
JIT: Fixed incorrect guard elimination
2021-11-08 20:08:39 +03:00
Nikita Popov
53df29bc29
Drop pi nodes for both old/new pred in replace_predecessor
...
We also need to drop pi nodes for new_pred here, as the pi node
restriction for new_pred is not necessarily true for control
coming from old_pred as well.
Fixes oss-fuzz #40782 .
2021-11-08 14:56:42 +01:00
Dmitry Stogov
e868ded6ef
Don't call _zend_hash_index_find() for packed arrays
2021-11-08 13:13:23 +03:00
Dmitry Stogov
7bf63243e1
JIT: Fixed incorrect guard elimination
2021-11-08 12:28:36 +03:00
Dmitry Stogov
34d22acc7e
Tracing JIT: Fixed incorrect guard elimination
2021-11-03 23:37:00 +03:00
Dmitry Stogov
66d93c63ff
Fixed type inference for FETCH_DIM_W without use
2021-11-03 19:44:38 +03:00
Dmitry Stogov
2605911272
Tracing JIT: Fixed reference counting when escape because of IS_UNDEF element (test)
2021-11-01 22:19:10 +03:00
Dmitry Stogov
d7ac39b02d
Tracing JIT: Fixed reference counting when escape because of IS_UNDEF element
2021-11-01 22:14:12 +03:00
Dmitry Stogov
5c43e0c0ee
Fixed incorrect assumption about reference counting
2021-11-01 20:28:05 +03:00
Dmitry Stogov
f1e6a7d83d
JIT: Fixed numeric string index handling
2021-11-01 18:50:32 +03:00
Dmitry Stogov
cd32b47235
JIT: Fixed register allocation in case of integer overflow
2021-11-01 16:46:41 +03:00
Nikita Popov
2e29817005
Handle FETCH_DIM_R after FETCH_DIM_FUNC_ARG in inference
...
This can happen if a call is optimized, but FETCH_DIM_FUNC_ARG
cannot be converted to FETCH_DIM_R because it uses an UNUSED op2,
which is not supported by FETCH_DIM_R.
Fixes oss-fuzz 6144185837682688.
2021-11-01 14:26:36 +01:00
Nikita Popov
f8ec5a1d4c
Fix range inference hang
...
We shouldn't switch from range to no range for ZEND_DIV and instead
explicitly return an overflowing range. Otherwise the range will
not actually get updated during widening, and we'll perform
essentially infinite narrowing.
Fixes oss-fuzz #40566 .
2021-11-01 12:31:34 +01:00
Dmitry Stogov
29c8c1e955
Tracing JIT: Fixed possible endless loop when escape from ZEND_CALL_TOP frame
2021-10-25 12:10:25 +03:00
Dmitry Stogov
d3251632ad
Tracing JIT: Fixed incorrect assumption about in-memeory zval type
2021-10-22 14:38:38 +03:00
Dmitry Stogov
c7e974fc4e
Tracing JIT: Fixed incorrect assumtion about temporary variable types clobbered by *_ROPE instructions
2021-10-21 21:35:57 +03:00
Dmitry Stogov
b69c6ba9df
Use right frame
2021-10-20 23:50:33 +03:00
Dmitry Stogov
95c0dfc57f
JIT: Fixed megamorphic call detection
2021-10-20 22:16:25 +03:00
Dmitry Stogov
38626dbaad
JIT: Fixed memory leak
2021-10-20 10:38:47 +03:00
Dmitry Stogov
6bd5271c62
Fixed incorrect optimization that may cause JIT assertion
2021-10-18 23:18:52 +03:00
Dmitry Stogov
d3063c02c6
Tracing JIT: Fixed memory leak
2021-10-18 22:14:53 +03:00
Dmitry Stogov
e59d0a7151
JIT: Fixed DASM_S_RANGE_VREG error
2021-10-18 17:58:42 +03:00
Dmitry Stogov
13d1244575
Tracing JIT: Fixed ADD with two references to arrays
2021-10-18 17:26:36 +03:00
Dmitry Stogov
6021e72143
Tracinf JIT: Prevnt generation code for instruction that with cyclic dependency
...
e.g. $a[] += $a is compiled into ASSIGN_DIM_OP+OP_DATA, where OP_DATA.op1_use depends on ASSIGN_DIM_OP.op1_def
2021-10-18 16:53:45 +03:00
Nikita Popov
9ebe8494b8
Don't replace tmp with cv in YIELD argument
...
For by-ref generators, these may have different behavior.
Fixes oss-fuzz 6059739298004992.
2021-10-12 14:26:53 +02:00
Dmitry Stogov
a4c41d45cd
Fixed type inference for COPY_TMP
2021-10-11 16:56:07 +03:00
Dmitry Stogov
ccdda69a18
JIT: Fixed usage of incorrect specialized zval destructor
2021-10-11 13:00:23 +03:00
Dmitry Stogov
ed8ec9d71e
Fixed type inference (ASSIGN_OP with typed reference may cause type conversion)
2021-10-11 10:48:49 +03:00
Dmitry Stogov
bbd875268a
JIT: Fixed incorrect double/long register hinting
2021-10-08 15:46:49 +03:00
Dmitry Stogov
b279de416e
JIT: Fixed extension handling
2021-10-08 14:06:32 +03:00
Dmitry Stogov
45b127ad4a
Flush error messages emitted during preloading
2021-10-08 12:34:25 +03:00
Dmitry Stogov
7cea20f937
JIT: Fixed FETCH_LIST_R on string
2021-10-07 22:13:39 +03:00
Dmitry Stogov
b47a48ff80
Fixed bug #81512 (Unexpected behavior with arrays and JIT)
2021-10-07 21:24:38 +03:00
Nikita Popov
b564113756
Check exception after undef var notice
...
For simple assignments, we may not emit an exception check elsewhere,
so perform it directly after the undef var notice.
2021-10-07 16:54:26 +02:00