]> granicus.if.org Git - php/commitdiff
Reordered field to improve data lacality and reduce L1D CPU cache misses in ZEND_INIT...
authorDmitry Stogov <dmitry@zend.com>
Wed, 30 Sep 2015 13:22:56 +0000 (16:22 +0300)
committerDmitry Stogov <dmitry@zend.com>
Wed, 30 Sep 2015 13:22:56 +0000 (16:22 +0300)
Zend/zend_compile.h

index c29f8766e637d57f35ad221bcd1325fc35227912..68cc39ad8419e25559d4d048da2b9868ac5c1734 100644 (file)
@@ -431,17 +431,17 @@ struct _zend_execute_data {
        const zend_op       *opline;           /* executed opline                */
        zend_execute_data   *call;             /* current call                   */
        zval                *return_value;
-       zend_function       *func;             /* executed op_array              */
-       zval                 This;
+       zend_function       *func;             /* executed funcrion              */
+       zval                 This;             /* this + call_info + num_args    */
+       zend_class_entry    *called_scope;
+       zend_execute_data   *prev_execute_data;
+       zend_array          *symbol_table;
 #if ZEND_EX_USE_RUN_TIME_CACHE
-       void               **run_time_cache;
+       void               **run_time_cache;   /* cache op_array->run_time_cache */
 #endif
 #if ZEND_EX_USE_LITERALS
-       zval                *literals;
+       zval                *literals;         /* cache op_array->literals       */
 #endif
-       zend_class_entry    *called_scope;
-       zend_execute_data   *prev_execute_data;
-       zend_array          *symbol_table;
 };
 
 #define ZEND_CALL_FUNCTION           (0 << 0)