#
094d409b |
| 22-Nov-2014 |
Guilherme Blanco |
Removed ZEND_ACC_FINAL_CLASS which is unnecessary. This also fixed some currently defined classes as final which were just not being considered as such before.
|
#
14e29f51 |
| 12-Dec-2014 |
Dmitry Stogov |
Reduced size of zend_op on 64-bit systems. the main idea - the smaller the zend_op structure, the lees memory traffic is required to load VM instructions during execution. The patch reduces
Reduced size of zend_op on 64-bit systems. the main idea - the smaller the zend_op structure, the lees memory traffic is required to load VM instructions during execution. The patch reduces the size of each opcode from 48 to 32 bytes (saves 16 bytes for each opcode, and applications use thousands of opoceds). This reduced the number of CPU cache misses by 12% and improved performance of real-life apps by 1-2%. The patch affects how constants and jump targets are represented in VM during execution. Previously they were implemented as absolute 64-bit pointers. Now they are relative 32-bit offsets. In run-time constant now should be accessed as: RT_CONSTANT(op_array, opine->op1) instead of opline->op1.zv EX_CONSTANT(opline->op1) instead of opline->op1.zv Jump targets: OP_JMP_ADDR(opline, opline->op2) instead of opline->op2.jmp_addr The patch doesn't change zend_op representation for 32-bit systems. They still use absolute addresses. The compile-time representation is also kept the same.
show more ...
|
#
5dd427ea |
| 03-Dec-2014 |
Dmitry Stogov |
Use zend_string* for op_array->arg_info[]->name and op_array->arg_info[]->class_name. For internal functions we still use char*.
|
#
dcfe5877 |
| 28-Nov-2014 |
Dmitry Stogov |
Rename EX_VAR_2() into ZEND_CALL_VAR() and EX_VAR_NUM_2() into ZEND_CALL_VAR_NUM().
|
#
1da14c9f |
| 28-Nov-2014 |
Dmitry Stogov |
Pack EX(frame_info) into EX(This).u1.v.reserved. Rename "frame"kind" into "call_kind" and VM_FRAME_... into ZEND_CALL_...
|
#
11384ba7 |
| 28-Nov-2014 |
Dmitry Stogov |
Pack EX(num_args) into EX(This).u2.num_args
|
#
9a36cb1a |
| 28-Nov-2014 |
Dmitry Stogov |
Get rid of EX(scope). In most cases we use EG(scope) anyway. EX(scope) was used to switch EG(scope) back after call, but it's possibleto use EX(func)->common.scope instead.
|
#
216ef321 |
| 27-Nov-2014 |
Dmitry Stogov |
Changed "finally" handling. Removed EX(fast_ret) and EX(delayed_exception). Allocate and use additional IS_TMP_VAR slot on VM stack instead.
|
#
303d73ec |
| 26-Nov-2014 |
Dmitry Stogov |
Reimplemented silence operator (@) handling on exceptions. Now each silence region is stored in op_array->brk_cont_array. On exception ZEND_HANDLE_EXCEPTION handler traverse this array and restore or
Reimplemented silence operator (@) handling on exceptions. Now each silence region is stored in op_array->brk_cont_array. On exception ZEND_HANDLE_EXCEPTION handler traverse this array and restore original EG(error_reporting) if exception occured inside a "silence" region.
show more ...
|
#
75041379 |
| 06-Nov-2014 |
Dmitry Stogov |
Improved object property access.
|
#
8dedd863 |
| 22-Oct-2014 |
Dmitry Stogov |
Get rid of ZEND_FETCH_MAKE_REF
|
#
95278779 |
| 16-Oct-2014 |
Dmitry Stogov |
Removed deprecated fields
|
#
75b5dc63 |
| 07-Oct-2014 |
Dmitry Stogov |
Reorder fields for better alignment on both 32-bit and 64-bit systems
|
#
67be34ec |
| 07-Oct-2014 |
Dmitry Stogov |
Remove useless parts of EX(old_error_reporting)
|
#
33e137d4 |
| 07-Oct-2014 |
Dmitry Stogov |
Merged EX(frame_kind) and EX(flags) into single word
|
#
7c7b9184 |
| 05-Oct-2014 |
Dmitry Stogov |
Fixed list() behavior inconsistency (string handling is disabled for all cases, ArrayAccess objects handling is enabled for all cases, ZEND_FETCH_DIM_TMP_VAR opcode is renamed into ZEND_FETCH_LIST, Z
Fixed list() behavior inconsistency (string handling is disabled for all cases, ArrayAccess objects handling is enabled for all cases, ZEND_FETCH_DIM_TMP_VAR opcode is renamed into ZEND_FETCH_LIST, ZEND_FETCH_ADD_LOCK flag is removed).
show more ...
|
#
bd9a2346 |
| 03-Oct-2014 |
Dmitry Stogov |
Replaced EG(This) and EX(object) with EX(This). Internal functions now recieves zend_execute_data as the first argument.
|
#
9f7564b1 |
| 01-Oct-2014 |
Dmitry Stogov |
Removed zend_execute_data->prev_nested_call. Reuse prev_execute_data instead.
|
#
7cef08c5 |
| 23-Sep-2014 |
Dmitry Stogov |
Allocate copies of internal functions inherited in user classes at CG(arena), instead of permanent heap (malloc).
|
#
98891ee1 |
| 20-Sep-2014 |
Nikita Popov |
Simplify foreach flags * FE_RESET_VARIABLE and FE_RESET_REFERENCE were always set together. * In some places the code checked FE_FETCH_BYREF instead of FE_RESET_REFERENCE
Simplify foreach flags * FE_RESET_VARIABLE and FE_RESET_REFERENCE were always set together. * In some places the code checked FE_FETCH_BYREF instead of FE_RESET_REFERENCE and relied on them having the same value. * Now the FE_RESET_* flags are dropped and everything uses FE_FETCH_BYREF
show more ...
|
#
c343ca4e |
| 18-Sep-2014 |
Nikita Popov |
Split inheritance into separate file This moves handling of inheritance and interface implementation from zend_compile.c into a separate zend_inheritance.c file, as this is not reall
Split inheritance into separate file This moves handling of inheritance and interface implementation from zend_compile.c into a separate zend_inheritance.c file, as this is not really related to compilation.
show more ...
|
#
5185baab |
| 18-Sep-2014 |
Dmitry Stogov |
Changed "inline" into "zend_always_inline"
|
#
079409bb |
| 15-Sep-2014 |
Nikita Popov |
Switch (un)mangle property name to size_t and zend_string Also use the _ex variants where possible.
|
#
f1bf5313 |
| 15-Sep-2014 |
Dmitry Stogov |
Replaced macro with better optimized inline function
|
Revision tags: php-5.5.17RC1, php-5.4.33RC1 |
|
#
d5b0606a |
| 01-Sep-2014 |
Stanislav Malyshev |
Reintroduce fix from pull #770 in a PHP 7 way
|