diff options
author | Dmitry Stogov <dmitry@zend.com> | 2017-09-06 11:43:42 +0300 |
---|---|---|
committer | Dmitry Stogov <dmitry@zend.com> | 2017-09-06 11:43:42 +0300 |
commit | 36ddda17f9950a518c15f065c5267243fd6ee2cb (patch) | |
tree | 4631d776d40fbaab569bd5c6394577bed03f5839 | |
parent | dfe030097dd119c59ebba69c3ec692c2b6bbc13c (diff) | |
download | php-git-36ddda17f9950a518c15f065c5267243fd6ee2cb.tar.gz |
Comments
-rw-r--r-- | ext/opcache/Optimizer/dce.c | 3 | ||||
-rw-r--r-- | ext/opcache/Optimizer/sccp.c | 7 |
2 files changed, 10 insertions, 0 deletions
diff --git a/ext/opcache/Optimizer/dce.c b/ext/opcache/Optimizer/dce.c index feaee92455..b70ab560f0 100644 --- a/ext/opcache/Optimizer/dce.c +++ b/ext/opcache/Optimizer/dce.c @@ -13,6 +13,7 @@ | license@php.net so we can mail you a copy immediately. | +----------------------------------------------------------------------+ | Authors: Nikita Popov <nikic@php.net> | + | Dmitry Stogov <dmitry@zend.com> | +----------------------------------------------------------------------+ */ @@ -42,6 +43,8 @@ * zend_may_throw(). * * We often cannot DCE assignments and unsets while guaranteeing that dtors run in the same * order. There is an optimization option to allow reordering of dtor effects. + * * The algorithm is able to eliminate dead modifications of non-escaping arrays + * and objects as well as dead arrays and objects allocations. */ typedef struct { diff --git a/ext/opcache/Optimizer/sccp.c b/ext/opcache/Optimizer/sccp.c index 9c12fe9a00..abacc1ba81 100644 --- a/ext/opcache/Optimizer/sccp.c +++ b/ext/opcache/Optimizer/sccp.c @@ -13,6 +13,7 @@ | license@php.net so we can mail you a copy immediately. | +----------------------------------------------------------------------+ | Authors: Nikita Popov <nikic@php.net> | + | Dmitry Stogov <dmitry@zend.com> | +----------------------------------------------------------------------+ */ @@ -65,6 +66,12 @@ * b) Otherwise, if we branch on TOP none of the successors are feasible. * c) Otherwise (we branch on a constant), the feasible successors are marked based on the constant * (usually only one successor will be feasible). + * + * The original SCCP algorithm is extended with ability to propagate constant array + * elements and object properties. The extension is based on a variation of Array + * SSA form and its application to Spare Constant Propagation, described at + * "Array SSA Form" by Vivek Sarkar, Kathleen Knobe and Stephen Fink in chapter + * 16 of the SSA book. */ #if 0 |