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