com php-src: Micro optimization for the most frequency case: Zend/zend_vm_def.h Zend/zend_vm_execute.h
| From: | Dmitry Stogov | Date: | Fri, 03 Oct 2014 08:18:15 +0000 |
| Subject: | com php-src: Micro optimization for the most frequency case: Zend/zend_vm_def.h Zend/zend_vm_execute.h | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-82060@lists.php.net to get a copy of this message | ||
Commit: 5c63a4f72bd618ff8260892347765d8b4375df98
Author: Dmitry Stogov <dmitry@zend.com> Fri, 3 Oct 2014 12:18:15 +0400
Parents: 1fab968a90a1b9a7ced31ffc449a8cef867b733c
Branches: master
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=5c63a4f72bd618ff8260892347765d8b4375df98
Log:
Micro optimization for the most frequency case
Changed paths:
M Zend/zend_vm_def.h
M Zend/zend_vm_execute.h
Diff:
diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h
index 489e272..966cf91 100644
--- a/Zend/zend_vm_def.h
+++ b/Zend/zend_vm_def.h
@@ -2658,11 +2658,12 @@ ZEND_VM_HANDLER(60, ZEND_DO_FCALL, ANY, ANY)
zend_vm_stack_free_call_frame(call TSRMLS_CC);
} else {
call->prev_execute_data = execute_data;
- i_init_func_execute_data(call, &fbc->op_array, return_value, EXPECTED(zend_execute_ex ==
execute_ex) ? VM_FRAME_NESTED_FUNCTION : VM_FRAME_TOP_FUNCTION TSRMLS_CC);
+ i_init_func_execute_data(call, &fbc->op_array, return_value, VM_FRAME_NESTED_FUNCTION
TSRMLS_CC);
if (EXPECTED(zend_execute_ex == execute_ex)) {
ZEND_VM_ENTER();
} else {
+ call->frame_kind = VM_FRAME_TOP_FUNCTION;
zend_execute_ex(call TSRMLS_CC);
}
}
@@ -4130,10 +4131,11 @@ ZEND_VM_HANDLER(73, ZEND_INCLUDE_OR_EVAL, CONST|TMP|VAR|CV, ANY)
}
call->prev_execute_data = execute_data;
- i_init_code_execute_data(call, new_op_array, return_value, EXPECTED(zend_execute_ex ==
execute_ex) ? VM_FRAME_NESTED_CODE : VM_FRAME_TOP_CODE TSRMLS_CC);
+ i_init_code_execute_data(call, new_op_array, return_value, VM_FRAME_NESTED_CODE TSRMLS_CC);
if (EXPECTED(zend_execute_ex == execute_ex)) {
ZEND_VM_ENTER();
} else {
+ call->frame_kind = VM_FRAME_TOP_CODE;
zend_execute_ex(call TSRMLS_CC);
}
diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h
index f1fde50..eeb6d5c 100644
--- a/Zend/zend_vm_execute.h
+++ b/Zend/zend_vm_execute.h
@@ -619,11 +619,12 @@ static int ZEND_FASTCALL ZEND_DO_FCALL_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
zend_vm_stack_free_call_frame(call TSRMLS_CC);
} else {
call->prev_execute_data = execute_data;
- i_init_func_execute_data(call, &fbc->op_array, return_value, EXPECTED(zend_execute_ex ==
execute_ex) ? VM_FRAME_NESTED_FUNCTION : VM_FRAME_TOP_FUNCTION TSRMLS_CC);
+ i_init_func_execute_data(call, &fbc->op_array, return_value, VM_FRAME_NESTED_FUNCTION
TSRMLS_CC);
if (EXPECTED(zend_execute_ex == execute_ex)) {
ZEND_VM_ENTER();
} else {
+ call->frame_kind = VM_FRAME_TOP_FUNCTION;
zend_execute_ex(call TSRMLS_CC);
}
}
@@ -3001,10 +3002,11 @@ static int ZEND_FASTCALL
ZEND_INCLUDE_OR_EVAL_SPEC_CONST_HANDLER(ZEND_OPCODE_HA
}
call->prev_execute_data = execute_data;
- i_init_code_execute_data(call, new_op_array, return_value, EXPECTED(zend_execute_ex ==
execute_ex) ? VM_FRAME_NESTED_CODE : VM_FRAME_TOP_CODE TSRMLS_CC);
+ i_init_code_execute_data(call, new_op_array, return_value, VM_FRAME_NESTED_CODE TSRMLS_CC);
if (EXPECTED(zend_execute_ex == execute_ex)) {
ZEND_VM_ENTER();
} else {
+ call->frame_kind = VM_FRAME_TOP_CODE;
zend_execute_ex(call TSRMLS_CC);
}
@@ -9739,10 +9741,11 @@ static int ZEND_FASTCALL
ZEND_INCLUDE_OR_EVAL_SPEC_TMP_HANDLER(ZEND_OPCODE_HAND
}
call->prev_execute_data = execute_data;
- i_init_code_execute_data(call, new_op_array, return_value, EXPECTED(zend_execute_ex ==
execute_ex) ? VM_FRAME_NESTED_CODE : VM_FRAME_TOP_CODE TSRMLS_CC);
+ i_init_code_execute_data(call, new_op_array, return_value, VM_FRAME_NESTED_CODE TSRMLS_CC);
if (EXPECTED(zend_execute_ex == execute_ex)) {
ZEND_VM_ENTER();
} else {
+ call->frame_kind = VM_FRAME_TOP_CODE;
zend_execute_ex(call TSRMLS_CC);
}
@@ -16327,10 +16330,11 @@ static int ZEND_FASTCALL
ZEND_INCLUDE_OR_EVAL_SPEC_VAR_HANDLER(ZEND_OPCODE_HAND
}
call->prev_execute_data = execute_data;
- i_init_code_execute_data(call, new_op_array, return_value, EXPECTED(zend_execute_ex ==
execute_ex) ? VM_FRAME_NESTED_CODE : VM_FRAME_TOP_CODE TSRMLS_CC);
+ i_init_code_execute_data(call, new_op_array, return_value, VM_FRAME_NESTED_CODE TSRMLS_CC);
if (EXPECTED(zend_execute_ex == execute_ex)) {
ZEND_VM_ENTER();
} else {
+ call->frame_kind = VM_FRAME_TOP_CODE;
zend_execute_ex(call TSRMLS_CC);
}
@@ -33608,10 +33612,11 @@ static int ZEND_FASTCALL
ZEND_INCLUDE_OR_EVAL_SPEC_CV_HANDLER(ZEND_OPCODE_HANDL
}
call->prev_execute_data = execute_data;
- i_init_code_execute_data(call, new_op_array, return_value, EXPECTED(zend_execute_ex ==
execute_ex) ? VM_FRAME_NESTED_CODE : VM_FRAME_TOP_CODE TSRMLS_CC);
+ i_init_code_execute_data(call, new_op_array, return_value, VM_FRAME_NESTED_CODE TSRMLS_CC);
if (EXPECTED(zend_execute_ex == execute_ex)) {
ZEND_VM_ENTER();
} else {
+ call->frame_kind = VM_FRAME_TOP_CODE;
zend_execute_ex(call TSRMLS_CC);
}