From e2b49d6c45f0c5ed69268d32da2f4972265db663 Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Mon, 26 Aug 2019 16:10:29 +0200 Subject: Don't use needs_live_range hook for "special" live ranges In particular we were disgarding SILENCE live ranges in opcache, because we decided that a MAY_BE_LONG type does not need a live range. --- Zend/zend_opcode.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'Zend/zend_opcode.c') diff --git a/Zend/zend_opcode.c b/Zend/zend_opcode.c index ff6bcfd9c4..fe81585daf 100644 --- a/Zend/zend_opcode.c +++ b/Zend/zend_opcode.c @@ -655,6 +655,12 @@ static void emit_live_range( default: start++; kind = ZEND_LIVE_TMPVAR; + + /* Check hook to determine whether a live range is necessary, + * e.g. based on type info. */ + if (needs_live_range && !needs_live_range(op_array, orig_def_opline)) { + return; + } break; } case ZEND_COPY_TMP: @@ -694,11 +700,6 @@ static void emit_live_range( } } - /* Check hook to determine whether a live range is necessary, e.g. based on type info. */ - if (needs_live_range && !needs_live_range(op_array, orig_def_opline)) { - return; - } - emit_live_range_raw(op_array, var_num, kind, start, end); } -- cgit v1.2.1