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

3267 Commits

Author SHA1 Message Date
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
George Peter Banyard a1fee87c9a Drop useless zend_accel_script_persistable() function 2020-07-17 17:00:42 +02: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
Nikita Popov 27800441b5 Reduce scope of preload compiler_options
Only set preloading compiler_options while executing the preload
file, not when performing linking afterwards. Otherwise options
like IGNORE_INTERNAL_CLASSES will hide classes from inheritance
verification.
2020-07-14 16:10:04 +02:00
Nikita Popov b702ad14c9 Fix preloading of union typed property inherited from internal class
Tricky edge case: We inherit a property from an internal class,
in which case no property duplication takes place. We should not
try to persist the property info in that case. This didn't really
matter previously, but now that the property has some non-interned
owned data (the type), we need to make sure we don't try to free
that.
2020-07-14 15:24:58 +02:00
Nikita Popov 7e6b2e2e23 Check for name vs ce in a few more places
The type lists may contain CEs, we should not assume they only
contain names.
2020-07-14 14:47:47 +02: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 06162194d6 Fix preloading property type resolution
This was causing many failures under --preload...
2020-07-14 12:59:04 +02: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
Christoph M. Becker 1a00d015be Remove out-dated comment
ZTS support has been added around ~7.2.
2020-07-13 19:14:59 +02:00
Christoph M. Becker 11a628d96c Fix typos 2020-07-13 19:13:45 +02:00
Dmitry Stogov 48963378c1 Improved reference-counting inference 2020-07-13 13:08:32 +03: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
Ilija Tovilo 1c967df5a0 Fix free of uninitialized memory in MATCH_ERROR
As suggested by Tyson Andre:
https://github.com/php/php-src/pull/5371#issuecomment-657081464

Also fix line number of unhandled match error

Closes GH-5841.
2020-07-12 13:33:36 +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 0d9bebac00 Fixed mysqli_fetch_row() function info 2020-07-09 17:24:06 +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