]> granicus.if.org Git - php/commit
Improve previous fix
authorNikita Popov <nikic@php.net>
Sat, 21 May 2016 22:05:06 +0000 (00:05 +0200)
committerNikita Popov <nikic@php.net>
Sat, 21 May 2016 22:05:06 +0000 (00:05 +0200)
commit0d62dfdf81fb7710c20a46a75ad6166e25e50a12
tree89e71806c85826bcad74047c4392791097c3e165
parentfa9566627be5ea2a15a29643e6c652a22adba5e2
Improve previous fix

Do not mark loop var free blocks as reachable after all -- as we
can't construct SSA for unreachable blocks, this would cause
issues down the line.

Instead add an extra UNREACHABLE_FREE flag and retain only the
FREE instruction during NOP removal. (If we retain all
instructions in the BB we might leave a jump instruction that goes
into the nowhere.)
ext/opcache/Optimizer/dfa_pass.c
ext/opcache/Optimizer/zend_cfg.c
ext/opcache/Optimizer/zend_cfg.h
ext/opcache/Optimizer/zend_dump.c