Xinchen Hui
badce8c49a
Merge branch 'PHP-7.0'
2015-12-01 10:35:48 +08:00
Xinchen Hui
ed4b887cf6
Fixed bug #70991 (zend_file_cache.c:710: error: array type has incomplete element type)
2015-12-01 10:35:32 +08:00
Xinchen Hui
cb5af748b1
Merge branch 'PHP-7.0'
2015-11-27 19:12:37 -08:00
Xinchen Hui
5af61aa1cc
Space
2015-11-27 19:12:26 -08:00
Xinchen Hui
f9a56e00f6
Merge branch 'PHP-7.0'
2015-11-27 07:31:19 -08:00
Xinchen Hui
e9a8d7ff1d
Fixed bug #70977 , #70973 (Segmentation fault with opcache.huge_code_pages=1)
2015-11-27 07:30:37 -08:00
Dmitry Stogov
2e6cf2710a
Fixed compilation warning
2015-11-26 11:27:24 +03:00
Xinchen Hui
07a05836de
Merge branch 'PHP-7.0'
2015-11-25 20:20:51 +08:00
Xinchen Hui
9376e8213c
ZEND_SPACESHIP supports
2015-11-25 20:20:05 +08:00
Xinchen Hui
1e9fcb49ac
conflicts variable name
2015-11-20 19:03:18 -08:00
Dmitry Stogov
4d49736155
cleanup
2015-11-21 01:19:45 +03:00
Dmitry Stogov
02fad0414b
Fixed wrong BB.flags initialization
2015-11-20 23:32:27 +03:00
Dmitry Stogov
b3393baa5d
Refactored CFG based optimization using new CFG representation.
...
Squashed commit of the following:
commit 907533390678f58eac738040ef62a40788048bef
Author: Dmitry Stogov <dmitry@zend.com >
Date: Fri Nov 20 21:25:28 2015 +0300
cleanup
commit 82f7e6f5bb434f12e9fdf45f597be351527f383c
Author: Dmitry Stogov <dmitry@zend.com >
Date: Fri Nov 20 21:22:01 2015 +0300
Update build system
commit 8fd83d843fde3f486692de4e2c6b7d64d4192704
Author: Dmitry Stogov <dmitry@zend.com >
Date: Fri Nov 20 20:50:32 2015 +0300
Reachable blocks can't be empty
commit 5822a36269833930a35cb3547222357118b11310
Author: Dmitry Stogov <dmitry@zend.com >
Date: Fri Nov 20 19:11:02 2015 +0300
added missing constraints
commit 2d0c00b243479924de0260ae8d80d624c36994a3
Author: Dmitry Stogov <dmitry@zend.com >
Date: Fri Nov 20 19:03:12 2015 +0300
optimization
commit 29d1e5eb210c51b052cac4d6c232aaa2c724dbbb
Author: Dmitry Stogov <dmitry@zend.com >
Date: Fri Nov 20 18:34:11 2015 +0300
Added missing optimization patterns
commit 38dd3b3f2459f5193c742633213f41d78326ea28
Author: Dmitry Stogov <dmitry@zend.com >
Date: Fri Nov 20 17:47:06 2015 +0300
zend_optimize_block() refactoring
commit 3dc97bd1f6d433dff0617338382347b6d0c08f84
Author: Dmitry Stogov <dmitry@zend.com >
Date: Fri Nov 20 14:30:32 2015 +0300
We don't use CFG back-references anymore
commit 2242c9e0aa741d287146ad43179650796f199f2d
Author: Dmitry Stogov <dmitry@zend.com >
Date: Fri Nov 20 14:16:03 2015 +0300
Consistent naming
commit 64f2856716069390ed7703ac88905cebf5e04023
Author: Dmitry Stogov <dmitry@zend.com >
Date: Fri Nov 20 13:29:32 2015 +0300
Optimization and separate building of direct CFG from predecessrs calculation
commit 9389be4869b13ec45df5dbd443015d2ac539a347
Author: Dmitry Stogov <dmitry@zend.com >
Date: Fri Nov 20 10:44:19 2015 +0300
Use CFG without back references (incomplete, but works)
commit 3d3ecd4b883959cf7b86c33622183295f913924e
Author: Dmitry Stogov <dmitry@zend.com >
Date: Fri Nov 20 00:50:09 2015 +0300
Fixed iteration in reverse order
commit 52f7fde0c3dfa4b4591519828ebdb238c2377936
Author: Dmitry Stogov <dmitry@zend.com >
Date: Thu Nov 19 18:35:09 2015 +0300
Separate debugging code into zend_dump.c
commit 4193a039ea96bae41baf97c6e458f419e8dbf9c5
Author: Dmitry Stogov <dmitry@zend.com >
Date: Thu Nov 19 17:22:04 2015 +0300
Remove unused code
commit 4228fdc57d8d120e1dad4e4d44045fa1a6f06fe0
Author: Dmitry Stogov <dmitry@zend.com >
Date: Thu Nov 19 17:21:20 2015 +0300
Remove dead live-ranges only on assembling basic blocks
commit 9a4a7966edf19b92678876f85565700694205598
Author: Dmitry Stogov <dmitry@zend.com >
Date: Thu Nov 19 15:26:29 2015 +0300
New CFG representation (incomplete)
2015-11-20 22:06:36 +03:00
Dmitry Stogov
d6308afce9
Proper optmisation of "goto" into the middle of "try" block.
2015-11-19 11:19:06 +03:00
Dmitry Stogov
df63ec564e
minor fixes
2015-11-18 23:03:20 +03:00
Dmitry Stogov
104a597113
Eliminate unreachable live ranges
2015-11-18 18:04:02 +03:00
Dmitry Stogov
66b953e022
Eliminate unreachable catch blocks
2015-11-18 15:34:28 +03:00
Dmitry Stogov
af47326b38
Extended Debug info with live-ranges and excepton-table.
2015-11-18 13:14:57 +03:00
Dmitry Stogov
a6cc322b4d
Added internal debug log for block pass.
2015-11-18 02:47:39 +03:00
Dmitry Stogov
030fab6233
Two step optimization for JMPZNZ L,L; L: JMPZ L+1; L: JMPNZ L+1.
2015-11-18 02:45:58 +03:00
Dmitry Stogov
854e8ebb4f
Move JMPZNZ L,L; L: JMPZ L+1; L: JMPNZ L+1 optimization patterns from zend_jmp_optimization() into zend_optimize_block() because the value of Tsource in zend_jmp_optimization() is inconsistent.
...
Fixed compilation warnings.
2015-11-17 21:07:01 +03:00
Dmitry Stogov
6cb3d90f0f
Skip first basic block (we skiped it before)
2015-11-17 19:02:39 +03:00
Dmitry Stogov
7de190898d
cleanup
2015-11-17 11:24:16 +03:00
Dmitry Stogov
8112e34210
cleanup
2015-11-17 09:59:49 +03:00
Dmitry Stogov
843c165735
Don't undo/redo "pass two" for jump targets in opcache optimizer.
2015-11-17 07:15:35 +03:00
Nikita Popov
e02aea5590
Remove no longer applicable optimization
...
PHP 7 generates CVs inside silenced blocks.
2015-11-14 11:23:31 +01:00
Dmitry Stogov
3a5fa926bf
Squashed commit of the following:
...
commit afe963e6cc289696e60c6c679796ba2197c52b3b
Author: Dmitry Stogov <dmitry@zend.com >
Date: Fri Nov 13 15:32:29 2015 +0300
Added news entry
commit a126b891c97848dd7ef8f1abf716328c46e0f19c
Author: Dmitry Stogov <dmitry@zend.com >
Date: Fri Nov 13 15:29:21 2015 +0300
VERIFY_RETURN_TYPE doesn't have to cleanup operand on exception, bacause now, live temporary variables are released by exception unwinder.
commit 0db475e98786e6bcaa8401ee3e0b33743b9a2f2b
Author: Dmitry Stogov <dmitry@zend.com >
Date: Thu Nov 12 22:55:39 2015 +0300
Fixed copy/paste
commit 0ac73fe7174bec9de9a610319a98b259bea67f7f
Author: Dmitry Stogov <dmitry@zend.com >
Date: Wed Nov 11 16:11:50 2015 +0300
Fixed bug #62210 (Exceptions can leak temporary variables)
2015-11-13 15:35:07 +03:00
Dmitry Stogov
63c4414940
Initialize ctx->optimization_level
2015-11-12 02:46:41 +03:00
Dmitry Stogov
09aa68b294
Break dependency between opcache and optimizer. Remove copatibility macros.
2015-11-12 02:02:24 +03:00
Dmitry Stogov
948b7f5421
Changed ZEND_FREE.op2.num and ZEND_FE_FREE.op2.num back to use live_range_offset (try_catch_offset does't work)
2015-11-11 11:12:44 +03:00
Dmitry Stogov
baf97b1fcc
We don't nees zend_op_array->brk_cont_array at run-time anymore.
...
Move zend_op_array->brk_cont_array into CG(context).brk_cont_array.
Use more compact zend_op_array->live_range instead of zend_op_array->brk_cont_array.
Semantic is kept unchanged.
2015-11-10 21:48:03 +03:00
Dmitry Stogov
86a96f2cf1
Changed meaning of "op2" for ZEND_FREE, ZEND_FE_FREE, ZEND_FAST_CALL, ZEND_FAST_RET.
...
Previously it was an instruction number.
Now it's an index in op_array->try_cacth_array[].
2015-11-10 19:13:54 +03:00
Nikita Popov
83b1679b6f
Merge branch 'PHP-7.0'
...
Conflicts:
ext/opcache/Optimizer/zend_optimizer.c
2015-11-07 17:50:39 +01:00
Nikita Popov
bc3512c1d6
Fix various update_opN_const issues
2015-11-07 17:45:26 +01:00
Nikita Popov
9da456655c
Refactor update_op2_const
...
Combines both switches into one, to avoid having to maintain the same
opcode list twice. This also makes most of the bugs fixed by the next
commit pretty obvious.
No functional change here.
2015-11-07 17:31:09 +01:00
Reeze Xia
568c81809a
Merge branch 'PHP-7.0'
...
* PHP-7.0:
C99 complain fix
Update NEWS
Fixed bug #70876 Segmentation fault when regenerating session id with strict mode
2015-11-07 22:17:10 +08:00
Reeze Xia
c524f43e4f
C99 complain fix
2015-11-07 22:15:19 +08:00
Nikita Popov
603c172269
Merge branch 'PHP-7.0'
...
Conflicts:
ext/opcache/Optimizer/zend_optimizer.c
2015-11-07 12:09:20 +01:00
Nikita Popov
99d818f1e9
Don't propagate into ops that error on non-string
...
To properly support this make update_opN_const fallible -- they
are not always called through replace_with_const.
2015-11-07 12:04:51 +01:00
Nikita Popov
00b37e718d
Strip leading backslash in update_opN_const
2015-11-07 12:04:51 +01:00
Nikita Popov
632bee4abb
Fix update_opX_const lowercasing
...
It was lowering in-place.
2015-11-07 12:04:51 +01:00
Xinchen Hui
5385478844
Merge branch 'PHP-7.0'
2015-11-04 19:01:31 +08:00
Xinchen Hui
fe0af271c6
Fixed bug #70843 (Segmentation fault on MacOSX with opcache.file_cache_only=1)
2015-11-04 18:59:30 +08:00
Xinchen Hui
1af0118ff8
Merge branch 'PHP-7.0'
2015-10-26 17:29:22 -07:00
Xinchen Hui
008d8b6789
Fixed bug #70656 (require() statement broken after opcache_reset() or a few hours of use)
2015-10-26 17:28:19 -07:00
Xinchen Hui
31553f07f2
Revert "Fixed bug #70656 (require() statement broken after opcache_reset() or a few hours of use)"
...
This reverts commit 3ef96c2cc6 .
2015-10-26 17:26:30 -07:00
Xinchen Hui
0771b46099
Merge branch 'PHP-7.0'
2015-10-26 17:11:16 -07:00
Dmitry Stogov
3e89c883bb
Changed ZEND_CLONE->extended_value meaning to relative offset (previously it was absolute opline number)
2015-10-30 14:53:53 +03:00
Dmitry Stogov
4d702c21d0
Merge branch 'PHP-7.0'
...
* PHP-7.0:
Don't remap .text segment if huge pages are not available.
2015-10-29 08:45:22 +03:00
Julien Pauli
eb59dd7d81
Don't remap .text segment if huge pages are not available.
2015-10-29 08:44:19 +03:00