Dmitry Stogov
d06422670c
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Fix memory leak
2022-03-14 12:59:13 +03:00
Dmitry Stogov
156d3aedc1
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fix memory leak
2022-03-14 12:58:11 +03:00
Dmitry Stogov
486d654b7d
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Fix typr inference
2022-02-28 18:26:37 +03:00
Dmitry Stogov
aced867a95
Fix typr inference
...
Fixes oss-fuzz #45020
2022-02-28 18:25:49 +03:00
Dmitry Stogov
3a069da0fd
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Fix type inference
2022-02-11 13:16:01 +03:00
Dmitry Stogov
0eb96b6e13
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fix type inference
2022-02-11 13:04:12 +03:00
Nikita Popov
4543cd32ae
Remove JMPZNZ opcode
...
While JMPZNZ can avoid execution of a separate JMP opcode in some
cases, it also prevents smart branch optimization, so creating
JMPZNZ may actually have a negative effect. It also adds additional
complexity for optimizations.
Drop JMPZNZ in favor of JMPZ+JMP or JMPNZ+JMP.
Closes GH-7857.
2022-01-10 22:07:10 +01:00
Dmitry Stogov
387c78a41f
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Fix type inference
2022-01-10 21:55:25 +03:00
Dmitry Stogov
9824735aa4
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fix type inference
2022-01-10 21:54:14 +03:00
Dmitry Stogov
bd44c565b1
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Added test
Fix type inference for assign to string offset with invalid index.
2022-01-10 16:06:08 +03:00
Dmitry Stogov
8e5f54ed0c
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fix type inference for assign to string offset with invalid index.
2022-01-10 16:05:01 +03:00
Dmitry Stogov
3319f17650
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Fix reference contig inference
2021-12-28 10:02:48 +03:00
Dmitry Stogov
8862e23098
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fix reference contig inference
2021-12-28 10:00:14 +03:00
Dmitry Stogov
2759e6bc69
Fixed assertion when check "instanceof" on unlinked class
2021-12-27 12:02:13 +03:00
Nikita Popov
206d80e11a
Reuse get_class_entry_from_op1() helper
...
Export and reuse this helper in places that fetch a class entry
from op1.
2021-12-25 22:18:50 +01:00
Nikita Popov
2cf93032ee
Sink op_array scope case into get_class_entry()
...
This handles references to the current class through its name
rather than self (and for cases where is is not linked yet and
thus not covered by the context lookup). Rather than handling this
only for FETCH_CLASS_CONSTANT optimization, integrate this into
the generic get_class_entry() utility.
2021-12-25 21:51:29 +01:00
Dmitry Stogov
6b60dc29de
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Fix type inference for INIT_ARRAY with invalid index
2021-12-20 11:46:45 +03:00
Dmitry Stogov
c8d10a8243
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fix type inference for INIT_ARRAY with invalid index
2021-12-20 11:46:36 +03:00
Dmitry Stogov
bdcef24f4b
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Remove range inference for booleans.
2021-12-10 14:44:21 +03:00
Dmitry Stogov
cfcee97ad6
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Remove range inference for booleans.
2021-12-10 14:33:36 +03:00
Dmitry Stogov
ebb7b173b0
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Fix refcount inferemce ($a += $a returns old array with RCN)
2021-12-06 11:32:02 +03:00
Dmitry Stogov
4ed10f3d47
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fix refcount inferemce ($a += $a returns old array with RCN)
2021-12-06 11:31:51 +03:00
Dmitry Stogov
c2aea6e805
Merge branch 'PHP-8.1'
...
* PHP-8.1:
JIT: Fix incorrect reference counting inference
2021-11-30 13:00:13 +03:00
Dmitry Stogov
3564001502
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
JIT: Fix incorrect reference counting inference
2021-11-30 13:00:04 +03:00
Dmitry Stogov
e1baef1835
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Fixed type inference (it's safe to ignore reference counting narrowing)
2021-11-29 23:40:49 +03:00
Dmitry Stogov
2d3ea98624
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fixed type inference (it's safe to ignore reference counting narrowing)
2021-11-29 23:39:37 +03:00
Dmitry Stogov
8cdead1568
Merge branch 'PHP-8.1'
...
* PHP-8.1:
JIT: Fix exception handling when next array element is already occupied
2021-11-29 21:57:38 +03:00
Dmitry Stogov
23c5a6fd16
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
JIT: Fix exception handling when next array element is already occupied
2021-11-29 21:57:29 +03:00
Dmitry Stogov
ee38e3ac37
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Disable type narrowing optimization when we contruct SSA for JIT
2021-11-29 15:54:53 +03:00
Dmitry Stogov
c6e895aec2
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Disable type narrowing optimization when we contruct SSA for JIT
2021-11-29 15:53:16 +03:00
Nikita Popov
902d64390e
Deprecate implicit dynamic properties
...
Writing to a proprety that hasn't been declared is deprecated,
unless the class uses the #[AllowDynamicProperties] attribute or
defines __get()/__set().
RFC: https://wiki.php.net/rfc/deprecate_dynamic_properties
2021-11-26 14:10:11 +01:00
Dmitry Stogov
7dcf853235
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Fixed incorrect narrowing to double
2021-11-25 15:16:03 +03:00
Dmitry Stogov
b1a1ed380f
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fixed incorrect narrowing to double
2021-11-25 15:15:01 +03:00
Dmitry Stogov
35786e321b
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Fixed incorrect refcountion inference for BW_NOT
2021-11-25 13:53:35 +03:00
Dmitry Stogov
ecc4d1326b
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fixed incorrect refcountion inference for BW_NOT
2021-11-25 13:53:26 +03:00
Dmitry Stogov
b976e75def
Merge branch 'PHP-8.1'
...
* PHP-8.1:
JIT: Fixed reference-counting inference
2021-11-15 10:40:51 +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
b7f19f2674
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Fixed incorrect reference counter inference
2021-11-08 20:55:09 +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
e465218e35
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Fixed type inference for FETCH_DIM_W without use
2021-11-03 19:45:42 +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
bcef615959
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Fixed incorrect assumption about reference counting
2021-11-01 20:29:27 +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
Nikita Popov
b4f2b24430
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Handle FETCH_DIM_R after FETCH_DIM_FUNC_ARG in inference
2021-11-01 14:27:22 +01:00
Nikita Popov
a89546d8b3
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Handle FETCH_DIM_R after FETCH_DIM_FUNC_ARG in inference
2021-11-01 14:27:14 +01:00
Nikita Popov
b41adb16cd
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Fix range inference hang
2021-11-01 12:32:15 +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
b743cd72d0
Fix inference if FETCH_DIM_W user optimized away
...
In this case the user may be a FREE.
Also add the test file that I forgot in
3ce472d1a6
.
2021-10-21 09:58:07 +02:00
Dmitry Stogov
176c319109
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Fixed type inference for COPY_TMP
2021-10-11 16:56:49 +03:00
Dmitry Stogov
1208fe932a
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fixed type inference for COPY_TMP
2021-10-11 16:56:40 +03:00