Re: com php-src: Fix live_range updates on ZEND(_FE)_FREE opcodes in block_pass: ext/opcache/Optimizer/block_pass.c
| From: | Dmitry Stogov | Date: | Tue, 15 Dec 2015 08:35:17 +0000 |
| Subject: | Re: com php-src: Fix live_range updates on ZEND(_FE)_FREE opcodes in block_pass: ext/opcache/Optimizer/block_pass.c | ||
| References: | 1 | Groups: | php.cvs |
| Request: | Send a blank email to php-cvs+get-90280@lists.php.net to get a copy of this message | ||
How does this fix something and what exactly (phpt)?
On Tue, Dec 15, 2015 at 1:40 AM, Bob Weinand <bwoebi@php.net> wrote:
> Commit: 6694ecdb9df37415b9fd32046eb5d3157f67c263
> Author: Bob Weinand <bobwei9@hotmail.com> Mon, 14 Dec 2015
> 23:40:28 +0100
> Parents: 56f1106162cdca2cdebfd9321545cc448da32d21
> Branches: master
>
> Link:
>
> http://git.php.net/?p=php-src.git;a=commitdiff;h=6694ecdb9df37415b9fd32046eb5d3157f67c263
>
> Log:
> Fix live_range updates on ZEND(_FE)_FREE opcodes in block_pass
>
> Changed paths:
> M ext/opcache/Optimizer/block_pass.c
>
>
> Diff:
> diff --git a/ext/opcache/Optimizer/block_pass.c
> b/ext/opcache/Optimizer/block_pass.c
> index b240254..47d5166 100644
> --- a/ext/opcache/Optimizer/block_pass.c
> +++ b/ext/opcache/Optimizer/block_pass.c
> @@ -955,8 +955,8 @@ static void assemble_code_blocks(zend_cfg *cfg,
> zend_op_array *op_array)
> op_array->last_live_range = j;
> while (opline != end) {
> if ((opline->opcode == ZEND_FREE ||
> opline->opcode == ZEND_FE_FREE) &&
> - opline->extended_value ==
> ZEND_FREE_ON_RETURN &&
> - opline->op2.num < (uint32_t)j) {
> + opline->extended_value ==
> ZEND_FREE_ON_RETURN) {
> + ZEND_ASSERT(opline->op2.num <
> (uint32_t) i);
> opline->op2.num =
> map[opline->op2.num];
> }
> opline++;
> @@ -982,7 +982,7 @@ static void assemble_code_blocks(zend_cfg *cfg,
> zend_op_array *op_array)
> *opline_num = -1;
> }
>
> - /* rebild map (judt for printing) */
> + /* rebild map (just for printing) */
> memset(cfg->map, -1, sizeof(int) * op_array->last);
> for (n = 0; n < cfg->blocks_count; n++) {
> if (cfg->blocks[n].flags & ZEND_BB_REACHABLE) {
>
>
> --
> PHP CVS Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>