1
0
mirror of https://github.com/php/php-src.git synced 2026-04-14 03:22:58 +02:00
Commit Graph

445 Commits

Author SHA1 Message Date
Dmitry Stogov
d67adc39a0 Fixed incorrect deoptimization info 2020-07-20 13:49:46 +03:00
Dmitry Stogov
9f0213fff3 Remove old code (BP_VAR_RW warning) 2020-07-20 11:57:19 +03:00
Nikita Popov
59536d5baa Revert "Switch to tracing JIT by default"
This reverts commit 10b09578a8.

This seems to cause many test failures:

Test === operator : different types [tests/lang/operators/operator_identical_basic.phpt]
Test <=> operator : different types [tests/lang/operators/operator_spaceship_basic.phpt]
comparing different variables for equality [Zend/tests/compare_001_64bit.phpt]
comparing different variables for identity [Zend/tests/compare_002_64bit.phpt]
Rebinding of ::getClosure()s [Zend/tests/closure_061.phpt]
comparing different variables (greater than) [Zend/tests/compare_003_64bit.phpt]
comparing different variables (less than) [Zend/tests/compare_004_64bit.phpt]
comparing different variables (greater or equal than) [Zend/tests/compare_005_64bit.phpt]
comparing different variables (smaller or equal than) [Zend/tests/compare_006_64bit.phpt]
Invalid numeric string E_WARNINGs and E_NOTICEs, combined assignment operations [Zend/tests/numeric_string_errors_assign.phpt]
Bug #51819 (Case discrepancy in timezone names cause Uncaught exception and fatal error) [ext/date/tests/bug51819.phpt]
Test all filters returned by filter_list() [ext/filter/tests/033.phpt]
filter_var() and FILTER_VALIDATE_MAC [ext/filter/tests/055.phpt]
Test strrpos() function : usage variations - unexpected inputs for 'needle' argument [ext/standard/tests/strings/strrpos_variation10.phpt]
Test strtr() function : usage variations - empty string & null for 'str' argument [ext/standard/tests/strings/strtr_variation4.phpt]
Test strtr() function : usage variations - unexpected inputs for 'from' argument [ext/standard/tests/strings/strtr_variation6.phpt]
Test strstr() function [ext/standard/tests/strings/strstr.phpt]
2020-07-20 09:45:09 +02:00
Dmitry Stogov
10b09578a8 Switch to tracing JIT by default 2020-07-20 09:17:04 +03:00
Dmitry Stogov
83478d4fe0 Side exit on overflow 2020-07-17 13:03:35 +03:00
Dmitry Stogov
6b2c4be48a JMP optimization 2020-07-17 11:07:22 +03:00
Dmitry Stogov
e0af92c16e Eliminate useless exception checks 2020-07-17 10:13:23 +03:00
Dmitry Stogov
a167e0426d Eliminate some reference-counting 2020-07-17 00:40:10 +03:00
Dmitry Stogov
925909dc46 cleanup 2020-07-16 20:07:51 +03:00
Dmitry Stogov
03a98d9420 cleanup 2020-07-16 17:09:14 +03:00
Dmitry Stogov
d50919a03b Check type guard on result of FETCH_OBJ_R/IS instructions 2020-07-16 15:14:11 +03:00
Dmitry Stogov
ebb94af754 Fixed tracing JIT for ASSIGN to typed reference 2020-07-16 00:19:00 +03:00
Dmitry Stogov
f74e9a4dd3 Check type guard on result of FETCH_DIM_R/IS instructions 2020-07-15 17:28:46 +03:00
Dmitry Stogov
7c16d11e3c Tracing JIT for SWITCH instructions 2020-07-14 15:15:08 +03:00
Dmitry Stogov
ddba2a705e Better support for 64-bit .aword constants 2020-07-14 15:14:21 +03:00
Nikita Popov
8c89f23c45 Use different scratch register
r1 clashes with FCARG1a on Windows, so use a different scratch
register. FCARG2a should be free here. Hopefully fixes the
AppVeyor build.
2020-07-14 10:52:50 +02:00
Dmitry Stogov
d4fdf79add JIT for array merging 2020-07-13 12:04:08 +03:00
Nikita Popov
1c5f0b8a16 Check for undef var in verify return jit 2020-07-13 10:05:39 +02:00
Máté Kocsis
d30cd7d7e7 Review the usage of apostrophes in error messages
Closes GH-5590
2020-07-10 21:05:28 +02:00
Dmitry Stogov
b7dd8679df Fixed tracing JIT miss-compilation 2020-07-10 14:13:53 +03:00
Dmitry Stogov
8d15a2bc8e Restore registers 2020-07-10 12:51:19 +03:00
Ilija Tovilo
9fa1d13301 Implement match expression
RFC: https://wiki.php.net/rfc/match_expression_v2

Closes GH-5371.
2020-07-09 23:52:17 +02:00
Dmitry Stogov
c60d0dc2f4 Make tracing JIT to support operator overloading independently from opcache.optimization_level ini directive. 2020-07-09 19:39:12 +03:00
Dmitry Stogov
31258e4550 Fixed register allocation for tests/lang/operators/preinc_basiclong_64bit.phpt 2020-07-09 18:54:36 +03:00
Dmitry Stogov
9d14bdb377 Bad function detection 2020-07-09 17:24:35 +03:00
Dmitry Stogov
5fec1558b5 Prevent trace recorder reenterancing 2020-07-09 16:33:11 +03:00
Dmitry Stogov
b4ae5a20b6 Move assert() to right place 2020-07-09 15:56:24 +03:00
Dmitry Stogov
6d8d08f13b Fixed tracing JIT support for extract() 2020-07-09 15:36:25 +03:00
Dmitry Stogov
5872bfc481 Use RIP-relative addressing 2020-07-09 12:40:56 +03:00
Dmitry Stogov
67828abca7 Align jumptables 2020-07-09 11:31:53 +03:00
Dmitry Stogov
15c6b673a2 Fix jumtable index calculation 2020-07-09 11:28:48 +03:00
Nikita Popov
ad6605317c Support JIT jumptables on x64 2020-07-09 11:22:53 +03:00
Dmitry Stogov
a75cf0c7e1 JIT support for opcache restart 2020-07-08 18:14:11 +03:00
Dmitry Stogov
ad52e4cad9 Fixed tracing JIT support for $http_response_header 2020-07-08 16:33:46 +03:00
Dmitry Stogov
9e8a8e6ab9 Use information about recorded classes for speculative FETCH_OBJ optimization 2020-07-08 14:09:28 +03:00
Dmitry Stogov
fa5355ba08 Change zend_get_known_property_offset() into zend_get_known_property_info() and cleanup 2020-07-08 12:02:37 +03:00
Dmitry Stogov
ab5f8f4baf More accurate reference-counter inference (with support for ext/intl/tests/bug72241.phpt) 2020-07-07 19:11:27 +03:00
Nikita Popov
15c265b789 Revert "More accurate reference-counter inference"
This reverts commit b35255ad21.

Temporarily revert this, because it causes a memory leak on the
ext/intl/tests/bug72241.phpt test case, because temporary arrays
are not handled correctly.
2020-07-07 16:53:00 +02:00
Nikita Popov
e45f7053cf Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #79793
2020-07-07 16:33:06 +02:00
Nikita Popov
6259eff352 Handle dim_w undefined variable notice in JIT as well 2020-07-07 15:30:43 +02:00
Nikita Popov
0e6ec974fb Check for undef variable exception in SEND_VAR JIT
Add a return value to zend_jit_undefined_op_helper(), so we can
check for exception based on the return value, instead of fetching
EG(exception).
2020-07-07 15:22:46 +02:00
Nikita Popov
cdc4ea2a5c JIT support for undefined index/offset handling 2020-07-07 15:13:03 +02:00
Dmitry Stogov
b35255ad21 More accurate reference-counter inference 2020-07-06 15:53:28 +03:00
Dmitry Stogov
2ecc597259 Removed already implemented TODO comment 2020-07-03 13:40:11 +03:00
Dmitry Stogov
ca159561db Fixed IS_UNDEF handling 2020-07-03 10:52:03 +03:00
Dmitry Stogov
eee9a05015 Fixed IS_INDIRECT handling 2020-07-03 00:14:09 +03:00
Dmitry Stogov
fe1052b177 Better instruction selection 2020-07-02 23:41:15 +03:00
Dmitry Stogov
f1536ebbb2 JMP optimization 2020-07-02 17:42:15 +03:00
Dmitry Stogov
fe9b5ce322 Load constant value only if necessary 2020-07-02 14:43:17 +03:00
Dmitry Stogov
2068f019e3 Eliminate useless exception checks 2020-07-02 12:42:09 +03:00