1
0
mirror of https://github.com/php/php-src.git synced 2026-04-22 07:28:09 +02:00
Commit Graph

4598 Commits

Author SHA1 Message Date
Nikita Popov 2a3caef40b Merge branch 'PHP-8.1'
* PHP-8.1:
  Undef result if undef dim warning promoted to exception
2021-09-28 11:36:35 +02:00
Nikita Popov fdcacc7015 Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  Undef result if undef dim warning promoted to exception
2021-09-28 11:36:26 +02:00
Nikita Popov fe1633f010 Undef result if undef dim warning promoted to exception
Fixes oss-fuzz #39278.
2021-09-28 11:35:53 +02:00
Nikita Popov 39d4978add Merge branch 'PHP-8.1'
* PHP-8.1:
  Check exception after QM_ASSIGN of undef var
2021-09-28 10:59:06 +02:00
Nikita Popov 1cfc69d80d Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  Check exception after QM_ASSIGN of undef var
2021-09-28 10:58:59 +02:00
Nikita Popov f381079398 Check exception after QM_ASSIGN of undef var
While most other exceptions aren't possible when QM_ASSIGN is used
instead of ASSIGN, we still have to watch out for an undef var
notice being promoted to an exception.
2021-09-28 10:58:20 +02:00
Nikita Popov 17d6efc729 Fix block marking for two arm math
This would end up taking the successors_count=2 case, even though
we need to treat SWITCH and MATCH differently. This incorrectly
marked a block as FOLLOW, resulting in incorrect block pass
optimization.

Fixes oss-fuzz #39380.
2021-09-28 10:37:54 +02:00
Dmitry Stogov 3d356cfc68 Merge branch 'PHP-8.1'
* PHP-8.1:
  JIT ARM64: Move property load into right place
2021-09-28 09:19:36 +03:00
Dmitry Stogov 51f806783c JIT ARM64: Move property load into right place 2021-09-28 09:19:04 +03:00
Dmitry Stogov 7718dc0835 Merge branch 'PHP-8.1'
* PHP-8.1:
  JIT: Call zend_hash_index_find() instead of _zend_hash_index_find() if we didn't check for packed array before
2021-09-27 23:22:13 +03:00
Dmitry Stogov e046ff4374 Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  JIT: Call zend_hash_index_find() instead of _zend_hash_index_find() if we didn't check for packed array before
2021-09-27 23:19:48 +03:00
Dmitry Stogov 2e02b1f157 JIT: Call zend_hash_index_find() instead of _zend_hash_index_find() if we didn't check for packed array before 2021-09-27 23:16:47 +03:00
Dmitry Stogov ed032040a6 Merge branch 'PHP-8.1'
* PHP-8.1:
  JIT: Split zend_jit_hash_index_lookup_rw() into zend_jit_hash_index_lookup_rw() and zend_jit_hash_index_lookup_rw_no_packed().
2021-09-27 22:14:36 +03:00
Dmitry Stogov be8dfa7751 Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  JIT: Split zend_jit_hash_index_lookup_rw() into zend_jit_hash_index_lookup_rw() and zend_jit_hash_index_lookup_rw_no_packed().
2021-09-27 22:14:27 +03:00
Dmitry Stogov 325865d750 JIT: Split zend_jit_hash_index_lookup_rw() into zend_jit_hash_index_lookup_rw() and zend_jit_hash_index_lookup_rw_no_packed().
The previous version might fail if zend_jit_hash_index_lookup_rw() was called for packed array.
2021-09-27 22:09:51 +03:00
Dmitry Stogov b6800c77f1 Merge branch 'PHP-8.1'
* PHP-8.1:
  JIT: Fixed missed zval type initialization
2021-09-27 20:16:02 +03:00
Dmitry Stogov 97da90e85e Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  JIT: Fixed missed zval type initialization
2021-09-27 20:15:51 +03:00
Dmitry Stogov 9ce388b41b JIT: Fixed missed zval type initialization 2021-09-27 20:05:50 +03:00
Dmitry Stogov 896d047687 Merge branch 'PHP-8.1'
* PHP-8.1:
  JIT: Fixed missing type load
2021-09-27 17:45:06 +03:00
Dmitry Stogov 7981d48aca JIT: Fixed missing type load 2021-09-27 17:44:36 +03:00
Nikita Popov 7d483418e2 Fix relative offsets when copying JMPZNZ
This was doing a plain copy of JMPZNZ, even though it encodes
offsets relative to the opline. As such, the offsets would be
relative to target, while they should be relative to opline.
Fix this by recomputing them.

Fixes oss-fuzz #39295.
2021-09-27 16:18:40 +02:00
Dmitry Stogov 06a07efdaf Merge branch 'PHP-8.1'
* PHP-8.1:
  JIT: Improve property access (Avoid unnecessary property address loading and exception check).
2021-09-27 16:01:15 +03:00
Dmitry Stogov 35ff71f048 JIT: Improve property access (Avoid unnecessary property address loading and exception check). 2021-09-27 15:59:52 +03:00
Dmitry Stogov 13791bbe89 Merge branch 'PHP-8.1'
* PHP-8.1:
  JIT: Wrong register
2021-09-27 13:00:56 +03:00
Dmitry Stogov dbdef5980f JIT: Wrong register 2021-09-27 13:00:40 +03:00
Nikita Popov 823888c472 Start block at loop var free
This ensures that code directly before the loop var free is
separated out (and will generally be eliminated as unreachable).
This fixes some assumptions we have that unreachable loop var free
blocks start with the loop var free.

Fixes oss-fuzz #39395.
2021-09-27 11:56:37 +02:00
Dmitry Stogov 0f988deece Merge branch 'PHP-8.1'
* PHP-8.1:
  JIT: Remove FETCH_THIS+FETCH_OBJ_* optimizations for closures for functon JIT introduced in d1a0b93c64.
2021-09-27 12:55:02 +03:00
Dmitry Stogov 3e706536d9 JIT: Remove FETCH_THIS+FETCH_OBJ_* optimizations for closures for
functon JIT introduced in d1a0b93c64.

They caused failure of Zend/tests/closure_038.phpt with -d opcache.jit=1215
2021-09-27 12:52:34 +03:00
Nikita Popov ddf8910237 Fix DCE of unreachable phi in cycle
We can't remove a trivial phi of the form x = phi(x), because we
don't have a replacement value. We could drop the whole block
though. SCCP would normally do this, but in this particular case
we only determine non-reachability based on type information.

Fixes oss-fuzz #39316.
2021-09-27 11:26:31 +02:00
Nikita Popov 038bc27787 Handle pi nodes in replace_predecessor
If we're removing a predecessor because it already exists during
replacement, we should also drop pi nodes for that predecessor.

Fixes oss-fuzz #39276.
2021-09-27 10:47:47 +02:00
Dmitry Stogov 31b7aef4db Merge branch 'PHP-8.1'
* PHP-8.1:
  JIT: Avoid property type reloading
2021-09-24 19:57:42 +03:00
Dmitry Stogov bec1d2f290 JIT: Avoid property type reloading 2021-09-24 19:57:20 +03:00
Dmitry Stogov 36f31c2c1e Merge branch 'PHP-8.1'
* PHP-8.1:
  JIT: Eliminate useless exception check
2021-09-24 16:52:40 +03:00
Dmitry Stogov ec0f2c6ea1 JIT: Eliminate useless exception check 2021-09-24 16:52:06 +03:00
Dmitry Stogov 51cf97d7eb Merge branch 'PHP-8.1'
* PHP-8.1:
  JIT: Improve $this->property access in closures
2021-09-24 15:56:24 +03:00
Dmitry Stogov d1a0b93c64 JIT: Improve $this->property access in closures 2021-09-24 15:55:29 +03:00
Nikita Popov 1ea58832e2 Merge branch 'PHP-8.1'
* PHP-8.1:
  Fix bug #81472: Support large device major/minor number
2021-09-24 09:58:29 +02:00
Nikita Popov 2b0288b220 Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  Fix bug #81472: Support large device major/minor number
2021-09-24 09:58:22 +02:00
Lin Yang 9ad8fadcbb Fix bug #81472: Support large device major/minor number
Latest linux kernel use large number (12 bits for major device, 20
bits for minor device). Current code only supports previous standard
(5 chars), which means 8 bits for major and 8 bits for minor device.
It will fail if device number is out of that range. So this patch
increases device number read from /proc/self/maps file.

Closes GH-7512.
2021-09-24 09:57:32 +02:00
Dmitry Stogov fd5b3ab3ea Merge branch 'PHP-8.1'
* PHP-8.1:
  Fixed typo
2021-09-24 09:21:14 +03:00
Dmitry Stogov 92d0abd075 Fixed typo 2021-09-24 09:20:57 +03:00
Dmitry Stogov f024119718 Merge branch 'PHP-8.1'
* PHP-8.1:
  Tracing JIT: Fixed possible incorrect megamorphic call from a trait
2021-09-23 23:41:35 +03:00
Dmitry Stogov c7c7620918 Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  Tracing JIT: Fixed possible incorrect megamorphic call from a trait
2021-09-23 23:41:11 +03:00
Dmitry Stogov 3e6919cfb3 Tracing JIT: Fixed possible incorrect megamorphic call from a trait 2021-09-23 23:38:03 +03:00
Dmitry Stogov eb7734c91d Merge branch 'PHP-8.1'
* PHP-8.1:
  JIT: Fixed register clobbering
2021-09-23 15:04:42 +03:00
Dmitry Stogov a0bea10e5b JIT: Fixed register clobbering 2021-09-23 15:04:05 +03:00
Dmitry Stogov adc03652dd Merge branch 'PHP-8.1'
* PHP-8.1:
  Tracing JIT: Remove incorrect assertion
2021-09-23 12:15:16 +03:00
Dmitry Stogov 5eb3e30867 Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  Tracing JIT: Remove incorrect assertion
2021-09-23 12:15:05 +03:00
Dmitry Stogov 430454268f Tracing JIT: Remove incorrect assertion 2021-09-23 12:14:33 +03:00
Dmitry Stogov f6282a60fc Merge branch 'PHP-8.1'
* PHP-8.1:
  Tracing JIT: Fixed possible stack-buffer-overflow.
2021-09-23 10:52:26 +03:00