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
Nikita Popov
edf0c6a6ae
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fixed bug #80194
2020-10-07 15:03:56 +02:00
Nikita Popov
683c988493
Fixed bug #80194
...
We should strip NOPs from unreachable_free blocks as well, to make
sure that the free really is the first op.
2020-10-07 15:03:12 +02:00
Dmitry Stogov
3024d9c56d
Optimize out MAY_BE_LONG +/- 0 and MAY_BE_DOUBLE +/- 0.0
2020-10-07 15:23:17 +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
Nikita Popov
6ea870f5fb
Fix bug #80184
2020-10-05 15:24:51 +02: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
Máté Kocsis
fe64d73979
Review parameter names in ext/opcache
...
Closes GH-6237
2020-09-30 10:10:27 +02: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
8d9da8df28
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fixed unintended disabling of Optimizer for preloaded scripts introduced by 4a2646cf45
2020-09-29 12:13:17 +03:00
Dmitry Stogov
3928b6b435
Fixed unintended disabling of Optimizer for preloaded scripts introduced by 4a2646cf45
2020-09-29 12:11:01 +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
Nikita Popov
de77344de2
Promote pack/unpack format errors
...
Errors related to invalid format strings (unlike data mismatch
errors) should throw ValueError.
Closes GH-6185.
2020-09-22 15:12:05 +02:00
Nikita Popov
12d087c346
Use C zpp for get_class_vars()
2020-09-22 13:05:05 +02:00
Nikita Popov
fdd9018bdf
Support uuencoding empty string
...
Cross checking implementations from other languages, empty strings
are always allowed. PHP's output is peculiar due to it's insistence
to encode a trailing \0, but otherwise sensible and does round-trip
as expected.
2020-09-22 12:39:39 +02:00
Nikita Popov
e60f927f05
stream_bucket_new() cannot return false
...
php_stream_bucket_new() is infallible.
2020-09-22 12:07:53 +02:00
Nikita Popov
9ef2c5c303
stream_get_transports/wrappers cannot return false
...
These may return an empty array, but not false.
2020-09-22 12:02:39 +02:00
Nikita Popov
aba0ee71b2
Don't return false for empty string in soundex()
...
Return "0000" instead of false to have a consistent return type.
"0000" is already a possible return value if the string doesn't
contain any letters, such as with soundex(" "). We can treat the
case of soundex("") exactly the same.
2020-09-22 11:44:35 +02:00
Nikita Popov
e547ea43c1
http_build_query() cannot fail
...
Assert that ht is not null and make php_url_encode_hash_ex() return
void to clarify that this is an infallible function.
2020-09-22 11:30:02 +02:00
Nikita Popov
ade57e691b
substr_replace() cannot return false
2020-09-22 09:59:35 +02: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