]> granicus.if.org Git - php/commitdiff
Optimizer support for ZEND_IN_ARRAY
authorDmitry Stogov <dmitry@zend.com>
Wed, 24 May 2017 20:37:35 +0000 (23:37 +0300)
committerDmitry Stogov <dmitry@zend.com>
Wed, 24 May 2017 20:37:35 +0000 (23:37 +0300)
ext/opcache/Optimizer/block_pass.c
ext/opcache/Optimizer/zend_inference.c

index 3bd5281ca1988c06edeecd0aa8cd923e2b5d9eb6..1d50184e651681fad81d6523cd834db83176e9cb 100644 (file)
@@ -532,6 +532,7 @@ static void zend_optimize_block(zend_basic_block *block, zend_op_array *op_array
                                                        case ZEND_INSTANCEOF:
                                                        case ZEND_TYPE_CHECK:
                                                        case ZEND_DEFINED:
+                                                       case ZEND_IN_ARRAY:
                                                                if (opline->opcode == ZEND_BOOL_NOT) {
                                                                        break;
                                                                }
index b3ec0c7a2ac55375085cee71bde688331d4288f8..5c064be607ced1a43929230881d4ee137b4e04de 100644 (file)
@@ -2185,6 +2185,7 @@ static void zend_update_type_info(const zend_op_array *op_array,
                case ZEND_ISSET_ISEMPTY_PROP_OBJ:
                case ZEND_ISSET_ISEMPTY_STATIC_PROP:
                case ZEND_ASSERT_CHECK:
+               case ZEND_IN_ARRAY:
                        UPDATE_SSA_TYPE(MAY_BE_FALSE|MAY_BE_TRUE, ssa_ops[i].result_def);
                        break;
                case ZEND_CAST: