Dmitry Stogov
efba3b6cac
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
JIT: Partially fix handling of exceptions thrown in interrupt handlers
2021-11-11 21:22:47 +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
4aa73bbfc4
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
JIT: Fixed incorrect MOD into BW_AND optimization
2021-11-10 21:18:15 +03:00
Dmitry Stogov
64915775a7
JIT: Fixed incorrect MOD into BW_AND optimization
2021-11-10 21:14:41 +03:00
Dmitry Stogov
cfde86a0b2
Fixed test
2021-11-10 20:21:07 +03:00
Dmitry Stogov
e4d0b012d5
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Tracing JIT: Fixed register allocation
2021-11-10 20:07:32 +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
c699629916
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Tracing JIT: Fixed incorrect assumption about in-memeory zval type
2021-11-10 16:46: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
10575b7bc1
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
JIT: Fixed memory leak
2021-11-10 12:50:14 +03:00
Dmitry Stogov
45683703f1
JIT: Fixed memory leak
2021-11-10 12:49:20 +03:00
Dmitry Stogov
936c6df022
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Tracing JIT: Fixed incorrect tracing type inference
2021-11-10 11:13:48 +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
eda9d7ac22
Tracing JIT: Fixed missed type store in deoptimization code
2021-11-09 00:55:40 +03:00
Dmitry Stogov
9bd490dc33
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fixed incorrect reference counter inference
2021-11-08 20:54:45 +03:00
Dmitry Stogov
535a0553e8
Fixed incorrect reference counter inference
2021-11-08 20:54:17 +03:00
Dmitry Stogov
9db900926c
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
JIT: Fixed incorrect guard elimination
2021-11-08 20:09:01 +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
03f149799a
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Don't call _zend_hash_index_find() for packed arrays
2021-11-08 13:13:48 +03:00
Dmitry Stogov
e868ded6ef
Don't call _zend_hash_index_find() for packed arrays
2021-11-08 13:13:23 +03:00
Dmitry Stogov
b1b6440d84
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
JIT: Fixed incorrect guard elimination
2021-11-08 12:29:03 +03:00
Dmitry Stogov
7bf63243e1
JIT: Fixed incorrect guard elimination
2021-11-08 12:28:36 +03:00
Dmitry Stogov
5e39ed08e1
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Tracing JIT: Fixed incorrect guard elimination
2021-11-03 23:37:29 +03:00
Dmitry Stogov
34d22acc7e
Tracing JIT: Fixed incorrect guard elimination
2021-11-03 23:37:00 +03:00
Dmitry Stogov
22a171a0b5
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fixed type inference for FETCH_DIM_W without use
2021-11-03 19:45:30 +03:00
Dmitry Stogov
66d93c63ff
Fixed type inference for FETCH_DIM_W without use
2021-11-03 19:44:38 +03:00
Dmitry Stogov
c2079802b5
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Tracing JIT: Fixed reference counting when escape because of IS_UNDEF element (test)
2021-11-01 22:19:28 +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
8c9bfa13a9
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Tracing JIT: Fixed reference counting when escape because of IS_UNDEF element
2021-11-01 22:17:17 +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
d4a7e4d1ff
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fixed incorrect assumption about reference counting
2021-11-01 20:28:33 +03:00
Dmitry Stogov
5c43e0c0ee
Fixed incorrect assumption about reference counting
2021-11-01 20:28:05 +03:00
Dmitry Stogov
8262329924
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
JIT: Fixed numeric string index handling
2021-11-01 18:52:50 +03:00
Dmitry Stogov
f1e6a7d83d
JIT: Fixed numeric string index handling
2021-11-01 18:50:32 +03:00
Dmitry Stogov
be8c9b9476
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
JIT: Fixed register allocation in case of integer overflow
2021-11-01 16:48:44 +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
3d38960979
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fix range inference hang
2021-11-01 12:32:04 +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
Nikita Popov
55aadc647b
Fix self-assign evaluation order for ASSIGN_DIM_OP
...
For $ary[idx] op= $ary we should evaluate the RHS operand first,
otherwise we may create a reference-free recursive array. Use the
same handling we do for the normal $ary[idx] = $ary case.
Fixes oss-fuzz #40287 .
2021-11-01 09:50:22 +01:00
Dmitry Stogov
cb72f0fa64
JIT_G(current_frame)->stacj is always true.
2021-10-25 23:26:03 +03:00
Dmitry Stogov
3d576db280
JIT: Avoid dead type store
2021-10-25 20:56:23 +03:00
Dmitry Stogov
60203d5e30
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Tracing JIT: Fixed possible endless loop when escape from ZEND_CALL_TOP frame
2021-10-25 12:12:44 +03: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
d78693f9ed
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Tracing JIT: Fixed incorrect assumption about in-memeory zval type
2021-10-22 14:44:57 +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
b5a6e518f8
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Tracing JIT: Fixed incorrect assumtion about temporary variable types clobbered by *_ROPE instructions
Revert "Fix bug GH-1 (mysqli_sql_exception->sqlstate is inaccessible)"
Fix bug GH-1 (mysqli_sql_exception->sqlstate is inaccessible)
2021-10-21 21:40:24 +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
11dd5e6e08
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Use right frame
2021-10-20 23:51:04 +03:00