Nikita Popov
029b735a6e
Merge branch 'PHP-7.3' into PHP-7.4
2019-05-29 16:48:28 +02:00
Nikita Popov
61a38bb274
SCCP: Fix leak when determining TYPE_CHECK from type info
...
As TYPE_CHECK is the only opcode where we do something like this,
I'm adding this hack.
2019-05-29 16:47:19 +02:00
Nikita Popov
f19dd674e0
SCCP: Fix handling of ASSIGN_OBJ_REF
...
The generic BOT handling is not away of OP_DATA, so need to handle
this opcode before we get to that.
2019-05-28 16:15:37 +02:00
Nikita Popov
6893f1f98e
SCCP: Don't perform partial object propagation for typed props
2019-05-28 15:46:03 +02:00
Dmitry Stogov
88a2268d6b
Replace "ZEND_CALL_CTOR" hack by additional live-range
2019-04-12 00:49:45 +03:00
Dmitry Stogov
c941f1d8c7
Fixed SCCP support for ZEND_ASSIGN_OBJ_REF
2019-04-03 11:22:59 +03:00
Nikita Popov
dda2074bf7
Merge branch 'PHP-7.3' into PHP-7.4
2019-02-22 13:42:13 +01:00
Nikita Popov
66fda0cdb1
Remove result def during jmp_set optimization
2019-02-22 13:41:47 +01:00
Nikita Popov
ea115a617f
Fix removal of unreachable code in SCCP
...
Due to a wrongly placed check, we were only performing the
unreachable code removal if there were loop vars...
2019-02-22 12:44:36 +01:00
Dmitry Stogov
12edc453e5
Disable preloading for sensetive opcache tests
2019-02-20 11:47:19 +03:00
Dmitry Stogov
2f89baf5c7
Fixed 32/64-bit mismatch
2019-01-14 13:15:52 +03:00
Nikita Popov
e219ec144e
Implement typed properties
...
RFC: https://wiki.php.net/rfc/typed_properties_v2
This is a squash of PR #3734 , which is a squash of PR #3313 .
Co-authored-by: Bob Weinand <bobwei9@hotmail.com >
Co-authored-by: Joe Watkins <krakjoe@php.net >
Co-authored-by: Dmitry Stogov <dmitry@zend.com >
2019-01-11 15:49:06 +01:00
Peter Kokot
782352c54a
Trim trailing whitespace in *.phpt
2018-10-14 19:45:12 +02:00
Gabriel Caruso
9c144e0d82
Trim trailing whitespace in tests
2018-10-14 12:07:20 -03:00
Dmitry Stogov
8c22d3e729
Make FETCH_R/IS, FETCH_DIM_R/IS, FETCH_OBJ_R/IS, FETCH_STATIC_PROP_R/IS return TMP_VAR, instead of VAR.
2018-06-25 23:43:23 +03:00
Gabriel Caruso
ded3d984c6
Use EXPECT instead of EXPECTF when possible
...
EXPECTF logic in run-tests.php is considerable, so let's avoid it.
2018-02-20 21:53:48 +01:00
Nikita Popov
705dc3f049
Fix DCE test
...
Without the type hint the previous optimization no longer applied,
as the result could be an (overloaded) object, which might have
caused dtor effect reordering.
2018-02-18 15:37:10 +01:00
Xinchen Hui
63a96ebf6a
Fixed bug while dealing with ADD_ARRAY_ELEMENT against an existing const array
2018-01-07 14:17:47 +08:00
Xinchen Hui
729a6688af
Optimized FETCH_CLASS before INSTANCEOF out if possible
2018-01-05 12:58:28 +08:00
Xinchen Hui
c0913af570
Fixed test
2018-01-05 12:54:20 +08:00
Xinchen Hui
1db6c19365
Fixed wrongly const replacing on partial array
2018-01-05 12:29:39 +08:00
Rasmus Lerdorf
9fe6b29356
Add line numbers to Opcache's zend_dump_op() debug output
2017-10-06 11:03:07 -03:00
Dmitry Stogov
80abd81344
Fixed escape analysis for ASSIGN_DIM/ASSIGN_OBJ opcodes and improved DCE
2017-09-14 11:03:47 +03:00
Christoph M. Becker
ee92aed06f
[ci skip] Merge branch 'pull-request/2752'
...
* pull-request/2752:
Fixed typo
2017-09-14 02:03:23 +02:00
Dmitry Stogov
0a86f159f4
Added test. Invalid usage doesn't affect escape_satte of arrays/objects and shouldn't prevent SCCP on "proper" paths.
2017-09-14 00:09:28 +03:00
Markus Staab
ea4e3efa14
Fixed typo
2017-09-13 18:35:37 +02:00
Dmitry Stogov
93af905071
Improved reference dependencies analysis
2017-09-13 18:18:51 +03:00
Dmitry Stogov
9f45aaaac2
Fixed test
2017-09-12 21:41:29 +03:00
Xinchen Hui
07ed545abf
Fixed memleak in SCCP
2017-09-12 21:35:30 +08:00
Dmitry Stogov
86dd321c0c
Fixed yet another object aliasing problem
2017-09-11 23:19:03 +03:00
Dmitry Stogov
63b93b4a74
Fixed copy semantics in escape analysis
2017-09-11 20:59:40 +03:00
Dmitry Stogov
d5c527c9db
Fixed SCCP failure, because of aliased objects.
...
For now, mark aliased objects as "escaping".
A more clever solution would requitre Heap Array SSA + Definitely Same and Definitely Different sets construction.
2017-09-11 16:23:17 +03:00
Dmitry Stogov
76b2968a73
Improved JMP optimization
2017-09-11 14:40:15 +03:00
Dmitry Stogov
431ea10fb2
Remove unused temporary variables
2017-09-05 14:46:03 +03:00
Dmitry Stogov
39459114ff
Replace used constant instructions by QM_ASSIGN
2017-09-05 11:43:33 +03:00
Xinchen Hui
4afe5a5cb2
Fixed SCCP rewinding on partial_array|object phi
2017-09-02 21:28:33 +08:00
Xinchen Hui
7c9556db99
Fixed SCCP on PHI(partial_object#1, partial_object#2)
2017-09-02 18:40:26 +08:00
Xinchen Hui
8a7ba133c3
Fixed SCCP on PHI(contant_array, partial_array)
2017-09-02 18:16:40 +08:00
Dmitry Stogov
59c5d81bab
Added skipif.inc
2017-09-01 13:32:26 +03:00
Dmitry Stogov
becb4d6d59
Remove dead allocations of non-escaping objects
2017-09-01 10:32:20 +03:00
Dmitry Stogov
6cc9e805cd
Remove dead construction of non-escaping arrays and objects
2017-08-31 17:17:04 +03:00
Dmitry Stogov
1eb6fd8bc4
Extend SCCP to support properties of non-escaping objects
2017-08-31 13:17:46 +03:00
Dmitry Stogov
d1d523ef50
Support for implicit array/object allocations
2017-08-30 17:41:45 +03:00
Dmitry Stogov
a0c76de006
Fixed tests
2017-08-30 15:54:55 +03:00
Dmitry Stogov
ce3dbb53a7
Extend SCCP pass with support for elements of non-escaping arrays
2017-08-30 15:31:23 +03:00
Dmitry Stogov
08447ebc0f
Fixed tests titels
2017-08-29 12:31:38 +03:00
Dmitry Stogov
f1fd08c8f1
Added few Optimizer tests
2017-08-29 12:11:34 +03:00