1
0
mirror of https://github.com/php/php-src.git synced 2026-04-27 18:23:26 +02:00
Commit Graph

691 Commits

Author SHA1 Message Date
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
Dmitry Stogov da8e6ec4a5 Fixed incorrect instruction cleanup 2015-10-28 23:10:33 +03:00
Dmitry Stogov 3b44e40277 fixed incorrect bitmask 2015-10-28 21:26:52 +03:00
Dmitry Stogov eb7be5379d Speed up fetching of class entries for self:: parent:: and static::
This is generalized solution for Bob's idea of speed up self::method() calls without ZEND_FETCH_CLASS.

At first, it adds few new opcodes to separate class related behaviour:
	FETCH_STATIC_PROP_R
	FETCH_STATIC_PROP_W
	FETCH_STATIC_PROP_RW
	FETCH_STATIC_PROP_FUNC_ARG
	FETCH_STATIC_PROP_UNSET
	FETCH_STATIC_PROP_IS
	UNSET_STATIC_PROP
	ISSET_ISEMPTY_STATIC_PROP
	FETCH_CLASS_CONSTANT

At seconds, it enables IS_UNUSED operand to fetch (self, parent or static without separate FETCH_CLASS) for new opcodes and the following ones:
	INIT_STATIC_METHOD_CALL
	NEW
	END_INSTANCEOF

Finaly, opcache optimizer had to be fixed to support new opcodes.
2015-10-28 21:26:52 +03:00
Xinchen Hui 3ef96c2cc6 Fixed bug #70656 (require() statement broken after opcache_reset() or a few hours of use) 2015-10-26 17:09:42 -07:00
Xinchen Hui d4df6641c8 Fixed bug #70724 (Undefined Symbols from opcache.so on Mac OS X 10.10) 2015-10-17 01:52:32 -07:00
Anatol Belski ffb5d0aca3 Implemented file_cache_fallback mechanism
which is essential as an attempt to fix the "failed to reattach"
error on Windows. If file_cache is enabled, Opcache will
automaticaly switch to file_cache_only mode in the case a process
failed to map the shared segment at the required address. The
important small part of the SHM will still be mapped, which
allows information exchange between normal processes using SHM
and those using the fallback mechanism.

This is based on Dmitry's, Matt's and mine ideas. So many thanks for
support!
2015-10-09 23:47:59 +02:00
Anatol Belski a549a3ac17 improve error message 2015-10-04 16:36:53 +02:00
Anatol Belski c97198e181 fix incrementing on 32-bit 2015-10-04 12:19:16 +02:00
Anatol Belski 4cb6342426 remove useless checks
Other platforms than listed in the checks are not supported since
PHP 5.5. We also won't need these checks for a while, so can simplify.
2015-10-03 10:57:32 +02:00
Anatol Belski 96fe3be7f2 Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  fix win10 support
2015-10-03 10:46:10 +02:00
Anatol Belski 83bef0ef83 fix win10 support
dwMajorVersion == 10 there, and generally this check is obsolete
as we don't support dwMajorVersion < 6 since 5.5
2015-10-03 10:44:43 +02:00
Dmitry Stogov a05fc48055 Extended zend_extension API to allow storing additional data associated with op_arrays in opcache SHM. (op_array->reserved[]) 2015-09-25 11:50:38 +03:00
Anatol Belski 67aff16d94 fix ident 2015-09-25 08:30:44 +02:00
Anatol Belski 0fd7acd11d don't keep locked mutex after errors 2015-09-24 16:34:44 +02:00
Anatol Belski df832c966c avoid dangling pointers 2015-09-24 16:33:58 +02:00
Anatol Belski 3ef3d80f25 move accel_shared_globals assignment into locked block
this might fix crashes under high concurrency
2015-09-24 16:33:57 +02:00
Dmitry Stogov 2d55e8c186 Fix (revert) loop exit condition 2015-09-24 11:19:26 +03:00
Dmitry Stogov 262160e0e9 Attmpt to fix "Unable to reattach to base address" problem. (Matt Ficken) 2015-09-24 10:48:34 +03:00
Dmitry Stogov 233c42ad59 Enabled placing PHP code segment into huge pages 2015-09-15 02:04:09 +03:00
Dmitry Stogov 818e5ea5f7 Enable file based cache compilation by default 2015-09-15 01:58:32 +03:00
Dmitry Stogov c104d329e1 Use shorter php.ini directive name "opcache.huge_code_pages" and disable it by default. 2015-09-15 01:54:04 +03:00
Dmitry Stogov f2480582fb Removed useless include 2015-09-15 01:46:53 +03:00