mirror of
https://github.com/php/php-src.git
synced 2024-09-23 10:57:26 +00:00
Remove result def during jmp_set optimization
This commit is contained in:
parent
33c2b47de3
commit
66fda0cdb1
@ -836,6 +836,7 @@ optimize_jmpnz:
|
||||
MAKE_NOP(opline);
|
||||
removed_ops++;
|
||||
take_successor_1(ssa, block_num, block);
|
||||
zend_ssa_remove_result_def(ssa, ssa_op);
|
||||
goto optimize_nop;
|
||||
}
|
||||
}
|
||||
|
30
ext/opcache/tests/opt/jmp_001.phpt
Normal file
30
ext/opcache/tests/opt/jmp_001.phpt
Normal file
@ -0,0 +1,30 @@
|
||||
--TEST--
|
||||
JMP 001: JMP_SET with constant arg
|
||||
--INI--
|
||||
opcache.enable=1
|
||||
opcache.enable_cli=1
|
||||
opcache.optimization_level=-1
|
||||
opcache.opt_debug_level=0x20000
|
||||
--SKIPIF--
|
||||
<?php require_once('skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
function test() {
|
||||
$var = null;
|
||||
$var = $var ?: test2();
|
||||
return $var;
|
||||
}
|
||||
?>
|
||||
--EXPECTF--
|
||||
$_main: ; (lines=1, args=0, vars=0, tmps=0)
|
||||
; (after optimizer)
|
||||
; %s:1-8
|
||||
L0 (8): RETURN int(1)
|
||||
|
||||
test: ; (lines=4, args=0, vars=1, tmps=1)
|
||||
; (after optimizer)
|
||||
; %s:2-6
|
||||
L0 (4): INIT_FCALL_BY_NAME 0 string("test2")
|
||||
L1 (4): V1 = DO_FCALL_BY_NAME
|
||||
L2 (4): CV0($var) = QM_ASSIGN V1
|
||||
L3 (5): RETURN CV0($var)
|
Loading…
Reference in New Issue
Block a user