Skip to content

Commit f1e43b7

Browse files
committed
opcache optimizer: optimize some more functions on compile time
- don't optimize basename(), version_compare(string, string, string) - optimize strtolower(string), strtoupper()
1 parent a935c23 commit f1e43b7

File tree

1 file changed

+7
-11
lines changed

1 file changed

+7
-11
lines changed

ext/opcache/Optimizer/sccp.c

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -844,19 +844,16 @@ static inline int ct_eval_func_call(
844844
|| zend_string_equals_literal(name, "urldecode")
845845
|| zend_string_equals_literal(name, "rawurlencode")
846846
|| zend_string_equals_literal(name, "rawurldecode")
847-
|| zend_string_equals_literal(name, "php_uname")
847+
|| zend_string_equals_literal(name, "strtoupper")
848+
|| zend_string_equals_literal(name, "strtolower")
848849
|| zend_string_equals_literal(name, "dirname")
849-
|| zend_string_equals_literal(name, "basename")
850-
|| zend_string_equals_literal(name, "md5")
851-
|| zend_string_equals_literal(name, "crc32")
852-
|| zend_string_equals_literal(name, "sha1")) {
850+
|| zend_string_equals_literal(name, "crc32")) {
853851
if (Z_TYPE_P(args[0]) != IS_STRING) {
854852
return FAILURE;
855853
}
856854
/* pass */
857855
} else if (zend_string_equals_literal(name, "array_keys")
858856
|| zend_string_equals_literal(name, "array_values")
859-
|| zend_string_equals_literal(name, "array_unique")
860857
|| zend_string_equals_literal(name, "array_filter")) {
861858
if (Z_TYPE_P(args[0]) != IS_ARRAY) {
862859
return FAILURE;
@@ -874,7 +871,8 @@ static inline int ct_eval_func_call(
874871
}
875872
} ZEND_HASH_FOREACH_END();
876873
/* pass */
877-
} else if (zend_string_equals_literal(name, "implode")) {
874+
} else if (zend_string_equals_literal(name, "implode")
875+
|| zend_string_equals_literal(name, "array_unique")) {
878876
zval *entry;
879877

880878
if (Z_TYPE_P(args[0]) != IS_ARRAY) {
@@ -975,8 +973,7 @@ static inline int ct_eval_func_call(
975973
|| zend_string_equals_literal(name, "str_contains")
976974
|| zend_string_equals_literal(name, "str_starts_with")
977975
|| zend_string_equals_literal(name, "str_ends_with")
978-
|| zend_string_equals_literal(name, "version_compare")
979-
|| zend_string_equals_literal(name, "basename")) {
976+
|| zend_string_equals_literal(name, "version_compare")) {
980977
if (Z_TYPE_P(args[0]) != IS_STRING
981978
|| Z_TYPE_P(args[1]) != IS_STRING) {
982979
return FAILURE;
@@ -1018,8 +1015,7 @@ static inline int ct_eval_func_call(
10181015
}
10191016
}
10201017
/* pass */
1021-
} else if (zend_string_equals_literal(name, "version_compare")
1022-
|| zend_string_equals_literal(name, "str_replace")) {
1018+
} else if (zend_string_equals_literal(name, "str_replace")) {
10231019
if (Z_TYPE_P(args[0]) != IS_STRING
10241020
|| Z_TYPE_P(args[1]) != IS_STRING
10251021
|| Z_TYPE_P(args[2]) != IS_STRING) {

0 commit comments

Comments
 (0)