1
0
mirror of https://github.com/php/php-src.git synced 2026-04-25 08:58:28 +02:00
Commit Graph

642 Commits

Author SHA1 Message Date
Dmitry Stogov 87beb22ff8 Perform trace range propagation 2020-10-13 00:18:17 +03:00
Dmitry Stogov 1c596ff146 Eliminate dead stores 2020-10-12 22:59:30 +03:00
Dmitry Stogov 57bb3a3966 Eliminate dead load 2020-10-09 18:58:03 +03:00
Dmitry Stogov fc14dbb713 Keep the same JIT code for PHP-8.0 and master (workaround against PHP-8.0 ABI freeze) 2020-10-09 16:54:26 +03:00
Dmitry Stogov 080784acfd Eliminate more dead type stores 2020-10-09 16:15:07 +03:00
Nikita Popov 6188b7a1da Revert "Change calling convention of zval_update_constant[_ex]() to fastcall."
This reverts commit 5a447b086b.

Revert this ABI break from PHP-8.0, leaving it only on master.
2020-10-09 15:06:12 +02:00
Dmitry Stogov 6f888b90c5 Eliminate more dead type stores 2020-10-09 14:31:20 +03:00
Dmitry Stogov 2ad96b8cee Eliminate more dead type stores 2020-10-08 23:26:31 +03:00
Dmitry Stogov e5830c4a6b Eliminate dead type stores 2020-10-08 19:15:23 +03:00
Dmitry Stogov 8efcc280be Cleanup (expand and remove simple macros) 2020-10-08 19:15:23 +03:00
Dmitry Stogov 5a447b086b Change calling convention of zval_update_constant[_ex]() to fastcall. 2020-10-08 02:04:38 +03:00
Dmitry Stogov 45441b3c11 Pass arguments to cdecl functions through preallocated stack slots 2020-10-08 00:52:30 +03:00
Dmitry Stogov db7a773b1c Add more hints for register allocator 2020-10-07 20:38:52 +03:00
Dmitry Stogov c80662a927 Eliminate check 2020-10-06 15:50:37 +03:00
Dmitry Stogov 84e0ea6b43 Optimize out double memory load 2020-10-06 13:32:55 +03:00
Dmitry Stogov 31f54586b5 Use range inference to eliminate useless comparisons 2020-10-05 22:33:45 +03:00
Dmitry Stogov 90b80c8278 Fix trace range inference 2020-10-05 22:33:18 +03:00
Dmitry Stogov 109fb3e57d Copy optimization for (BINARY_OP/ACCIGN + SEND_VAL) 2020-10-02 12:06:02 +03:00
Dmitry Stogov b0e77066bd Fixed JIT for BINARY_OP with expected overflow 2020-10-02 11:01:35 +03:00
Dmitry Stogov fbf153a210 Fixed possible incorrect register usage 2020-10-02 10:48:45 +03:00
Dmitry Stogov 29dd1240f3 Clenup BINARY_OP + SEND_VAL optimization 2020-10-01 22:39:58 +03:00
Dmitry Stogov aecb05f5e7 Give preference to ENTER->RECURSIVE_CALL trace over ENTER->RETURN 2020-09-30 12:21:15 +03:00
George Peter Banyard 8d0b871bde Removed duplicate conditions 2020-09-30 08:15:04 +03:00
Dmitry Stogov b44cf93774 Allow tracing JIT cooperate with function JIT. 2020-09-29 16:33:32 +03:00
Dmitry Stogov 739eb435c2 Tracing JIT support for preloaded scripts 2020-09-29 15:07:45 +03:00
Dmitry Stogov dddb40313b Keep track information about used JIT trigger in ZEND_FUNC_INFO(op_array)->func_info.flags 2020-09-29 13:05:24 +03:00
Dmitry Stogov f722512c4a Move invariant type guard out of loop 2020-09-28 23:54:28 +03:00
Dmitry Stogov c3206c28d7 Dump class names 2020-09-28 20:29:46 +03:00
Dmitry Stogov 2a71cb3ce1 Improved trace selection rules 2020-09-28 17:04:34 +03:00
Dmitry Stogov d1ddccdc19 Fixed usage of invalid frame for exit point 2020-09-28 16:18:06 +03:00
Dmitry Stogov 6dd840182e Missed opline guard 2020-09-28 14:47:45 +03:00
Dmitry Stogov 5783e611a2 Improve trace selection (avoid blacklisting of trace that may be linked). 2020-09-23 23:50:44 +03:00
Dmitry Stogov 3c4fb70f2b Replace ZEND_JIT_TRACE_STOP_RETURN_HALT and ZEND_JIT_TRACE_STOP_HALT by separate ZEND_JIT_TRACE_HALT flag. 2020-09-23 15:44:04 +03:00
Nikita Popov 7fedee873f Fix shift ub
And typo in macro name
2020-09-23 10:04:32 +02:00
Dmitry Stogov 3dde6fc4ac Fix extra args leak 2020-09-23 00:21:39 +03:00
Dmitry Stogov 57a3fbb1e1 Fixed INIT_METHOD_CALL + IS_VAR + reference in tracing JIT 2020-09-22 00:47:23 +03:00
Dmitry Stogov 43e58d3221 Fixed incorrect assumption about sizeof(zend_reference) 2020-09-21 23:58:18 +03:00
Dmitry Stogov 4ff2122275 Ficed 32-bit JIT (inconsistent CPU stack state) 2020-09-21 23:43:31 +03:00
Dmitry Stogov 5a085777b7 Fixed incorrect JIT for FETCH_THIS+SEND_REF 2020-09-21 21:53:03 +03:00
Sammy Kaye Powers 12306728c5 Add system ID entropy API
The `zend_system_id` is a (true global) system ID that fingerprints a process state. When extensions add engine hooks during MINIT/startup, entropy is added the system ID for each hook. This allows extensions to identify that changes have been made to the engine since the last PHP process restart.

Closes GH-5871
2020-09-18 14:26:44 -07:00
Dmitry Stogov d5d31ea3b3 Cleanup observer API and add JIT support 2020-09-18 12:55:58 +03:00
Nikita Popov 34bb5ba2ea Remove support for EXT_NOP
This is an annoying edge case that regularly gets broken. As we're
not aware of significant users of this API, and there are other
ways to hook this, remove support for EXT_NOP.
2020-09-18 11:03:08 +02:00
Dmitry Stogov a9cbdafa69 Support for ZEND_COMPILE_EXTENDED_STMT 2020-09-17 23:19:28 +03:00
Dmitry Stogov 0f9aefa64f Fixed incorrect live-range construction 2020-09-17 19:39:44 +03:00
Dmitry Stogov 23429b5818 Fixed incorrect register allocation 2020-09-17 18:36:45 +03:00
Dmitry Stogov e9820bf470 Fixed memory leak in ext/spl/tests/bug77263.phpt 2020-09-17 11:55:50 +03:00
Dmitry Stogov f786c0e097 Optimize code for FETCH_THIS + INIT_METHOD_CALL/ASSIGN_OBJ_OP/etc 2020-09-16 14:22:36 +03:00
Dmitry Stogov e27776343f Fixed incorrect constant string access 2020-09-16 10:49:54 +03:00
Dmitry Stogov 5f1fb1a5a4 JIT for INIT_METHOD_CALL 2020-09-16 10:25:36 +03:00
Dmitry Stogov f5bbb0480e Tracing JIT for INIT_DYNAMIC_CALL (closure only) 2020-09-15 15:57:57 +03:00