summaryrefslogtreecommitdiff
path: root/Zend/zend_type_info.h
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2020-08-25 18:28:23 +0300
committerDmitry Stogov <dmitry@zend.com>2020-08-25 18:28:23 +0300
commit2369f48092a15a42731a4c1d1d8a1c770517a780 (patch)
tree8cf0c388c92bb81c10e8ebb900c7305fb4c75617 /Zend/zend_type_info.h
parent647fb38d587ec048a723b36bbf196fe38d341ff8 (diff)
downloadphp-git-2369f48092a15a42731a4c1d1d8a1c770517a780.tar.gz
Infer information about packed/hash arrays and use it for JIT
Diffstat (limited to 'Zend/zend_type_info.h')
-rw-r--r--Zend/zend_type_info.h15
1 files changed, 11 insertions, 4 deletions
diff --git a/Zend/zend_type_info.h b/Zend/zend_type_info.h
index 9dc90d142b..a0fc698ebe 100644
--- a/Zend/zend_type_info.h
+++ b/Zend/zend_type_info.h
@@ -56,11 +56,18 @@
#define MAY_BE_ARRAY_OF_ANY (MAY_BE_ANY << MAY_BE_ARRAY_SHIFT)
#define MAY_BE_ARRAY_OF_REF (MAY_BE_REF << MAY_BE_ARRAY_SHIFT)
-#define MAY_BE_ARRAY_KEY_LONG (1<<21)
-#define MAY_BE_ARRAY_KEY_STRING (1<<22)
+#define MAY_BE_ARRAY_PACKED (1<<21)
+#define MAY_BE_ARRAY_HASH (1<<22) /* hash with numeric keys */
+
+#define MAY_BE_ARRAY_KEY_LONG (MAY_BE_ARRAY_PACKED | MAY_BE_ARRAY_HASH)
+#define MAY_BE_ARRAY_KEY_STRING (1<<23)
#define MAY_BE_ARRAY_KEY_ANY (MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_KEY_STRING)
-#define MAY_BE_CLASS (1<<23)
-#define MAY_BE_INDIRECT (1<<24)
+#define MAY_BE_CLASS (1<<24)
+#define MAY_BE_INDIRECT (1<<25)
+
+
+#define MAY_BE_ANY_ARRAY \
+ (MAY_BE_ARRAY|MAY_BE_ARRAY_KEY_ANY|MAY_BE_ARRAY_OF_ANY|MAY_BE_ARRAY_OF_REF)
#endif /* ZEND_TYPE_INFO_H */