1
0
mirror of https://github.com/php/php-src.git synced 2026-04-25 08:58:28 +02:00
Commit Graph

4674 Commits

Author SHA1 Message Date
Dmitry Stogov f65144fb74 Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  Tracing JIT: Fixed abstract stack consistency for [QM_]ASSIGN of CV to itself
2021-11-15 23:26:36 +03: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 dca0112917 Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  Tracing JIT: Fixed failure on non-optimized op_arrays (op_array->T may be above ssa->vars_count)
2021-11-15 14:45:33 +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 fb582f4230 Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  JIT: Fixed reference-counting inference
2021-11-15 10:40:35 +03:00
Dmitry Stogov 292d76d8a4 JIT: Fixed reference-counting inference 2021-11-15 10:39:58 +03:00
Dmitry Stogov 389b2a4463 Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  Fixed test
2021-11-12 22:49:27 +03:00
Dmitry Stogov 64fde17042 Fixed test 2021-11-12 22:48:50 +03:00
Dmitry Stogov dc3bd5562f Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  Fixed incorrect guard elimination
2021-11-12 21:01:44 +03:00
Dmitry Stogov 12d02e6227 Fixed incorrect guard elimination 2021-11-12 21:00:08 +03:00
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