]> granicus.if.org Git - php/commitdiff
Remove unused opcode handlers
authorDmitry Stogov <dmitry@zend.com>
Thu, 18 May 2017 10:18:08 +0000 (13:18 +0300)
committerDmitry Stogov <dmitry@zend.com>
Thu, 18 May 2017 10:18:08 +0000 (13:18 +0300)
Zend/zend_compile.c
Zend/zend_vm_def.h
Zend/zend_vm_execute.h

index 82da49a702833d0a83e360c43e62520c9e8fd40c..22c6ca114cfa1f9a14fe86ad84c1536612a6c971 100644 (file)
@@ -7298,6 +7298,9 @@ void zend_compile_array(znode *result, zend_ast *ast) /* {{{ */
                return;
        }
 
+       /* Empty arrays are handled at compile-time */
+       ZEND_ASSERT(list->children > 0);
+
        for (i = 0; i < list->children; ++i) {
                zend_ast *elem_ast = list->child[i];
                zend_ast *value_ast, *key_ast;
@@ -7341,11 +7344,6 @@ void zend_compile_array(znode *result, zend_ast *ast) /* {{{ */
                }
        }
 
-       /* Handle empty array */
-       if (!list->children) {
-               zend_emit_op_tmp(result, ZEND_INIT_ARRAY, NULL, NULL);
-       }
-
        /* Add a flag to INIT_ARRAY if we know this array cannot be packed */
        if (!packed) {
                ZEND_ASSERT(opnum_init != (uint32_t)-1);
index 79c81a6c9eea55c43c9510298ad2a0dee956fe2e..2ee71084e9dd02b0584272594bcc9dedce78ef02 100644 (file)
@@ -5119,7 +5119,7 @@ ZEND_VM_C_LABEL(num_index):
        ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
-ZEND_VM_HANDLER(71, ZEND_INIT_ARRAY, CONST|TMP|VAR|UNUSED|CV, CONST|TMPVAR|UNUSED|NEXT|CV, ARRAY_INIT|REF)
+ZEND_VM_HANDLER(71, ZEND_INIT_ARRAY, CONST|TMP|VAR|CV, CONST|TMPVAR|UNUSED|NEXT|CV, ARRAY_INIT|REF)
 {
        zval *array;
        uint32_t size;
@@ -5141,13 +5141,7 @@ ZEND_VM_HANDLER(71, ZEND_INIT_ARRAY, CONST|TMP|VAR|UNUSED|CV, CONST|TMPVAR|UNUSE
                }
        }
 
-       if (OP1_TYPE == IS_UNUSED) {
-               ZEND_VM_NEXT_OPCODE();
-#if !defined(ZEND_VM_SPEC) || (OP1_TYPE != IS_UNUSED)
-       } else {
-               ZEND_VM_DISPATCH_TO_HANDLER(ZEND_ADD_ARRAY_ELEMENT);
-#endif
-       }
+       ZEND_VM_DISPATCH_TO_HANDLER(ZEND_ADD_ARRAY_ELEMENT);
 }
 
 ZEND_VM_HANDLER(21, ZEND_CAST, CONST|TMP|VAR|CV, ANY, TYPE)
index 64bc6536b768507326e0ee276e5b9762fbdbcd4b..c7c28e78f79ff2f85712773cfc5d77a7dc704ab5 100644 (file)
@@ -5866,13 +5866,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_CONST_CONST_HA
                }
        }
 
-       if (IS_CONST == IS_UNUSED) {
-               ZEND_VM_NEXT_OPCODE();
-#if 0 || (IS_CONST != IS_UNUSED)
-       } else {
-               ZEND_VM_TAIL_CALL(ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
-#endif
-       }
+       ZEND_VM_TAIL_CALL(ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_STATIC_PROP_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -7617,13 +7611,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_CONST_UNUSED_H
                }
        }
 
-       if (IS_CONST == IS_UNUSED) {
-               ZEND_VM_NEXT_OPCODE();
-#if 0 || (IS_CONST != IS_UNUSED)
-       } else {
-               ZEND_VM_TAIL_CALL(ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
-#endif
-       }
+       ZEND_VM_TAIL_CALL(ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_CONST_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -9695,13 +9683,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_CONST_CV_HANDL
                }
        }
 
-       if (IS_CONST == IS_UNUSED) {
-               ZEND_VM_NEXT_OPCODE();
-#if 0 || (IS_CONST != IS_UNUSED)
-       } else {
-               ZEND_VM_TAIL_CALL(ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
-#endif
-       }
+       ZEND_VM_TAIL_CALL(ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -11635,13 +11617,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_CONST_TMPVAR_H
                }
        }
 
-       if (IS_CONST == IS_UNUSED) {
-               ZEND_VM_NEXT_OPCODE();
-#if 0 || (IS_CONST != IS_UNUSED)
-       } else {
-               ZEND_VM_TAIL_CALL(ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
-#endif
-       }
+       ZEND_VM_TAIL_CALL(ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -13652,13 +13628,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_TMP_CONST_HAND
                }
        }
 
-       if (IS_TMP_VAR == IS_UNUSED) {
-               ZEND_VM_NEXT_OPCODE();
-#if 0 || (IS_TMP_VAR != IS_UNUSED)
-       } else {
-               ZEND_VM_TAIL_CALL(ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
-#endif
-       }
+       ZEND_VM_TAIL_CALL(ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -14347,13 +14317,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_TMP_UNUSED_HAN
                }
        }
 
-       if (IS_TMP_VAR == IS_UNUSED) {
-               ZEND_VM_NEXT_OPCODE();
-#if 0 || (IS_TMP_VAR != IS_UNUSED)
-       } else {
-               ZEND_VM_TAIL_CALL(ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
-#endif
-       }
+       ZEND_VM_TAIL_CALL(ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_TMP_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -14883,13 +14847,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_TMP_CV_HANDLER
                }
        }
 
-       if (IS_TMP_VAR == IS_UNUSED) {
-               ZEND_VM_NEXT_OPCODE();
-#if 0 || (IS_TMP_VAR != IS_UNUSED)
-       } else {
-               ZEND_VM_TAIL_CALL(ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
-#endif
-       }
+       ZEND_VM_TAIL_CALL(ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -15415,13 +15373,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_TMP_TMPVAR_HAN
                }
        }
 
-       if (IS_TMP_VAR == IS_UNUSED) {
-               ZEND_VM_NEXT_OPCODE();
-#if 0 || (IS_TMP_VAR != IS_UNUSED)
-       } else {
-               ZEND_VM_TAIL_CALL(ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
-#endif
-       }
+       ZEND_VM_TAIL_CALL(ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_PRE_INC_SPEC_VAR_RETVAL_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -19635,13 +19587,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_VAR_CONST_HAND
                }
        }
 
-       if (IS_VAR == IS_UNUSED) {
-               ZEND_VM_NEXT_OPCODE();
-#if 0 || (IS_VAR != IS_UNUSED)
-       } else {
-               ZEND_VM_TAIL_CALL(ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
-#endif
-       }
+       ZEND_VM_TAIL_CALL(ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -21363,13 +21309,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_VAR_UNUSED_HAN
                }
        }
 
-       if (IS_VAR == IS_UNUSED) {
-               ZEND_VM_NEXT_OPCODE();
-#if 0 || (IS_VAR != IS_UNUSED)
-       } else {
-               ZEND_VM_TAIL_CALL(ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
-#endif
-       }
+       ZEND_VM_TAIL_CALL(ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEPARATE_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -23837,13 +23777,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_VAR_CV_HANDLER
                }
        }
 
-       if (IS_VAR == IS_UNUSED) {
-               ZEND_VM_NEXT_OPCODE();
-#if 0 || (IS_VAR != IS_UNUSED)
-       } else {
-               ZEND_VM_TAIL_CALL(ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
-#endif
-       }
+       ZEND_VM_TAIL_CALL(ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -26253,13 +26187,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_VAR_TMPVAR_HAN
                }
        }
 
-       if (IS_VAR == IS_UNUSED) {
-               ZEND_VM_NEXT_OPCODE();
-#if 0 || (IS_VAR != IS_UNUSED)
-       } else {
-               ZEND_VM_TAIL_CALL(ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
-#endif
-       }
+       ZEND_VM_TAIL_CALL(ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -28213,37 +28141,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_CLASS_CONSTANT_SPEC_UNUS
        ZEND_VM_NEXT_OPCODE();
 }
 
-static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
-{
-       zval *array;
-       uint32_t size;
-       USE_OPLINE
-
-       array = EX_VAR(opline->result.var);
-       if (IS_UNUSED != IS_UNUSED) {
-               size = opline->extended_value >> ZEND_ARRAY_SIZE_SHIFT;
-       } else {
-               size = 0;
-       }
-       ZVAL_NEW_ARR(array);
-       zend_hash_init(Z_ARRVAL_P(array), size, NULL, ZVAL_PTR_DTOR, 0);
-
-       if (IS_UNUSED != IS_UNUSED) {
-               /* Explicitly initialize array as not-packed if flag is set */
-               if (opline->extended_value & ZEND_ARRAY_NOT_PACKED) {
-                       zend_hash_real_init(Z_ARRVAL_P(array), 0);
-               }
-       }
-
-       if (IS_UNUSED == IS_UNUSED) {
-               ZEND_VM_NEXT_OPCODE();
-#if 0 || (IS_UNUSED != IS_UNUSED)
-       } else {
-               ZEND_VM_TAIL_CALL(ZEND_ADD_ARRAY_ELEMENT_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
-#endif
-       }
-}
-
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
 {
        USE_OPLINE
@@ -28942,37 +28839,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_VERIFY_RETURN_TYPE_SPEC_UNUSED
        ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
 }
 
-static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_UNUSED_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
-{
-       zval *array;
-       uint32_t size;
-       USE_OPLINE
-
-       array = EX_VAR(opline->result.var);
-       if (IS_UNUSED != IS_UNUSED) {
-               size = opline->extended_value >> ZEND_ARRAY_SIZE_SHIFT;
-       } else {
-               size = 0;
-       }
-       ZVAL_NEW_ARR(array);
-       zend_hash_init(Z_ARRVAL_P(array), size, NULL, ZVAL_PTR_DTOR, 0);
-
-       if (IS_UNUSED != IS_UNUSED) {
-               /* Explicitly initialize array as not-packed if flag is set */
-               if (opline->extended_value & ZEND_ARRAY_NOT_PACKED) {
-                       zend_hash_real_init(Z_ARRVAL_P(array), 0);
-               }
-       }
-
-       if (IS_UNUSED == IS_UNUSED) {
-               ZEND_VM_NEXT_OPCODE();
-#if 0 || (IS_UNUSED != IS_UNUSED)
-       } else {
-               ZEND_VM_TAIL_CALL(ZEND_ADD_ARRAY_ELEMENT_SPEC_UNUSED_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
-#endif
-       }
-}
-
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_UNUSED_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
 {
        USE_OPLINE
@@ -30648,37 +30514,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_U
        ZEND_VM_NEXT_OPCODE();
 }
 
-static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
-{
-       zval *array;
-       uint32_t size;
-       USE_OPLINE
-
-       array = EX_VAR(opline->result.var);
-       if (IS_UNUSED != IS_UNUSED) {
-               size = opline->extended_value >> ZEND_ARRAY_SIZE_SHIFT;
-       } else {
-               size = 0;
-       }
-       ZVAL_NEW_ARR(array);
-       zend_hash_init(Z_ARRVAL_P(array), size, NULL, ZVAL_PTR_DTOR, 0);
-
-       if (IS_UNUSED != IS_UNUSED) {
-               /* Explicitly initialize array as not-packed if flag is set */
-               if (opline->extended_value & ZEND_ARRAY_NOT_PACKED) {
-                       zend_hash_real_init(Z_ARRVAL_P(array), 0);
-               }
-       }
-
-       if (IS_UNUSED == IS_UNUSED) {
-               ZEND_VM_NEXT_OPCODE();
-#if 0 || (IS_UNUSED != IS_UNUSED)
-       } else {
-               ZEND_VM_TAIL_CALL(ZEND_ADD_ARRAY_ELEMENT_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
-#endif
-       }
-}
-
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
 {
        USE_OPLINE
@@ -32415,37 +32250,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_U
        ZEND_VM_NEXT_OPCODE();
 }
 
-static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_UNUSED_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
-{
-       zval *array;
-       uint32_t size;
-       USE_OPLINE
-
-       array = EX_VAR(opline->result.var);
-       if (IS_UNUSED != IS_UNUSED) {
-               size = opline->extended_value >> ZEND_ARRAY_SIZE_SHIFT;
-       } else {
-               size = 0;
-       }
-       ZVAL_NEW_ARR(array);
-       zend_hash_init(Z_ARRVAL_P(array), size, NULL, ZVAL_PTR_DTOR, 0);
-
-       if (IS_UNUSED != IS_UNUSED) {
-               /* Explicitly initialize array as not-packed if flag is set */
-               if (opline->extended_value & ZEND_ARRAY_NOT_PACKED) {
-                       zend_hash_real_init(Z_ARRVAL_P(array), 0);
-               }
-       }
-
-       if (IS_UNUSED == IS_UNUSED) {
-               ZEND_VM_NEXT_OPCODE();
-#if 0 || (IS_UNUSED != IS_UNUSED)
-       } else {
-               ZEND_VM_TAIL_CALL(ZEND_ADD_ARRAY_ELEMENT_SPEC_UNUSED_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
-#endif
-       }
-}
-
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_UNUSED_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
 {
        USE_OPLINE
@@ -37556,13 +37360,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_CV_CONST_HANDL
                }
        }
 
-       if (IS_CV == IS_UNUSED) {
-               ZEND_VM_NEXT_OPCODE();
-#if 0 || (IS_CV != IS_UNUSED)
-       } else {
-               ZEND_VM_TAIL_CALL(ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
-#endif
-       }
+       ZEND_VM_TAIL_CALL(ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_STATIC_PROP_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -40231,13 +40029,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_CV_UNUSED_HAND
                }
        }
 
-       if (IS_CV == IS_UNUSED) {
-               ZEND_VM_NEXT_OPCODE();
-#if 0 || (IS_CV != IS_UNUSED)
-       } else {
-               ZEND_VM_TAIL_CALL(ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
-#endif
-       }
+       ZEND_VM_TAIL_CALL(ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -43910,13 +43702,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_CV_CV_HANDLER(
                }
        }
 
-       if (IS_CV == IS_UNUSED) {
-               ZEND_VM_NEXT_OPCODE();
-#if 0 || (IS_CV != IS_UNUSED)
-       } else {
-               ZEND_VM_TAIL_CALL(ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
-#endif
-       }
+       ZEND_VM_TAIL_CALL(ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -47464,13 +47250,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_CV_TMPVAR_HAND
                }
        }
 
-       if (IS_CV == IS_UNUSED) {
-               ZEND_VM_NEXT_OPCODE();
-#if 0 || (IS_CV != IS_UNUSED)
-       } else {
-               ZEND_VM_TAIL_CALL(ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
-#endif
-       }
+       ZEND_VM_TAIL_CALL(ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
 }
 
 static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -56010,11 +55790,11 @@ ZEND_API void execute_ex(zend_execute_data *ex)
                        (void*)&&ZEND_INIT_ARRAY_SPEC_VAR_TMPVAR_LABEL,
                        (void*)&&ZEND_INIT_ARRAY_SPEC_VAR_UNUSED_LABEL,
                        (void*)&&ZEND_INIT_ARRAY_SPEC_VAR_CV_LABEL,
-                       (void*)&&ZEND_INIT_ARRAY_SPEC_UNUSED_CONST_LABEL,
-                       (void*)&&ZEND_INIT_ARRAY_SPEC_UNUSED_TMPVAR_LABEL,
-                       (void*)&&ZEND_INIT_ARRAY_SPEC_UNUSED_TMPVAR_LABEL,
-                       (void*)&&ZEND_INIT_ARRAY_SPEC_UNUSED_UNUSED_LABEL,
-                       (void*)&&ZEND_INIT_ARRAY_SPEC_UNUSED_CV_LABEL,
+                       (void*)&&ZEND_NULL_LABEL,
+                       (void*)&&ZEND_NULL_LABEL,
+                       (void*)&&ZEND_NULL_LABEL,
+                       (void*)&&ZEND_NULL_LABEL,
+                       (void*)&&ZEND_NULL_LABEL,
                        (void*)&&ZEND_INIT_ARRAY_SPEC_CV_CONST_LABEL,
                        (void*)&&ZEND_INIT_ARRAY_SPEC_CV_TMPVAR_LABEL,
                        (void*)&&ZEND_INIT_ARRAY_SPEC_CV_TMPVAR_LABEL,
@@ -60881,9 +60661,6 @@ ZEND_API void execute_ex(zend_execute_data *ex)
                        HYBRID_CASE(ZEND_FETCH_CLASS_CONSTANT_SPEC_UNUSED_CONST):
                                ZEND_FETCH_CLASS_CONSTANT_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
                                HYBRID_BREAK();
-                       HYBRID_CASE(ZEND_INIT_ARRAY_SPEC_UNUSED_CONST):
-                               ZEND_INIT_ARRAY_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
-                               HYBRID_BREAK();
                        HYBRID_CASE(ZEND_UNSET_OBJ_SPEC_UNUSED_CONST):
                                ZEND_UNSET_OBJ_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
                                HYBRID_BREAK();
@@ -60905,9 +60682,6 @@ ZEND_API void execute_ex(zend_execute_data *ex)
                        HYBRID_CASE(ZEND_VERIFY_RETURN_TYPE_SPEC_UNUSED_UNUSED):
                                ZEND_VERIFY_RETURN_TYPE_SPEC_UNUSED_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
                                HYBRID_BREAK();
-                       HYBRID_CASE(ZEND_INIT_ARRAY_SPEC_UNUSED_UNUSED):
-                               ZEND_INIT_ARRAY_SPEC_UNUSED_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
-                               HYBRID_BREAK();
                        HYBRID_CASE(ZEND_YIELD_SPEC_UNUSED_UNUSED):
                                ZEND_YIELD_SPEC_UNUSED_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
                                HYBRID_BREAK();
@@ -61004,9 +60778,6 @@ ZEND_API void execute_ex(zend_execute_data *ex)
                        HYBRID_CASE(ZEND_INIT_STATIC_METHOD_CALL_SPEC_UNUSED_CV):
                                ZEND_INIT_STATIC_METHOD_CALL_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
                                HYBRID_BREAK();
-                       HYBRID_CASE(ZEND_INIT_ARRAY_SPEC_UNUSED_CV):
-                               ZEND_INIT_ARRAY_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
-                               HYBRID_BREAK();
                        HYBRID_CASE(ZEND_UNSET_OBJ_SPEC_UNUSED_CV):
                                ZEND_UNSET_OBJ_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
                                HYBRID_BREAK();
@@ -61103,9 +60874,6 @@ ZEND_API void execute_ex(zend_execute_data *ex)
                        HYBRID_CASE(ZEND_INIT_STATIC_METHOD_CALL_SPEC_UNUSED_TMPVAR):
                                ZEND_INIT_STATIC_METHOD_CALL_SPEC_UNUSED_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
                                HYBRID_BREAK();
-                       HYBRID_CASE(ZEND_INIT_ARRAY_SPEC_UNUSED_TMPVAR):
-                               ZEND_INIT_ARRAY_SPEC_UNUSED_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
-                               HYBRID_BREAK();
                        HYBRID_CASE(ZEND_UNSET_OBJ_SPEC_UNUSED_TMPVAR):
                                ZEND_UNSET_OBJ_SPEC_UNUSED_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
                                HYBRID_BREAK();
@@ -64662,11 +64430,11 @@ void zend_init_opcodes_handlers(void)
                ZEND_INIT_ARRAY_SPEC_VAR_TMPVAR_HANDLER,
                ZEND_INIT_ARRAY_SPEC_VAR_UNUSED_HANDLER,
                ZEND_INIT_ARRAY_SPEC_VAR_CV_HANDLER,
-               ZEND_INIT_ARRAY_SPEC_UNUSED_CONST_HANDLER,
-               ZEND_INIT_ARRAY_SPEC_UNUSED_TMPVAR_HANDLER,
-               ZEND_INIT_ARRAY_SPEC_UNUSED_TMPVAR_HANDLER,
-               ZEND_INIT_ARRAY_SPEC_UNUSED_UNUSED_HANDLER,
-               ZEND_INIT_ARRAY_SPEC_UNUSED_CV_HANDLER,
+               ZEND_NULL_HANDLER,
+               ZEND_NULL_HANDLER,
+               ZEND_NULL_HANDLER,
+               ZEND_NULL_HANDLER,
+               ZEND_NULL_HANDLER,
                ZEND_INIT_ARRAY_SPEC_CV_CONST_HANDLER,
                ZEND_INIT_ARRAY_SPEC_CV_TMPVAR_HANDLER,
                ZEND_INIT_ARRAY_SPEC_CV_TMPVAR_HANDLER,