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

3306 Commits

Author SHA1 Message Date
Dmitry Stogov bc4201f6b7 Cleanup abstract test usage 2020-07-23 21:38:34 +03:00
Dmitry Stogov b3e51b7675 Allow keeping result of FETCH_DIM_R in CPU register 2020-07-23 17:08:28 +03:00
Dmitry Stogov 96a1b409df Don't record "fake" closures 2020-07-23 15:18:28 +03:00
Dmitry Stogov 14400b50d3 We track only arguments of user functions on abstract stack 2020-07-23 13:39:49 +03:00
Dmitry Stogov 7de23662df Fixed 32-bit build 2020-07-23 12:26:34 +03:00
Dmitry Stogov f6164b8407 Revert "Fixed DynASM failure"
This reverts commit 62ca6b567c.
2020-07-23 12:16:58 +03:00
Dmitry Stogov 62ca6b567c Fixed DynASM failure 2020-07-23 12:13:33 +03:00
Dmitry Stogov b0c3ca0e52 Avoid register reloading 2020-07-23 12:08:07 +03:00
Nikita Popov 545928e4b8 Fix some clang warnings 2020-07-23 10:35:40 +02:00
Nikita Popov b6b6e76937 Try to fix 32-bit NTS build 2020-07-23 09:58:17 +02:00
Dmitry Stogov bc1d7b6040 Reserve WIN64 shadow space 2020-07-22 17:49:51 +03:00
Dmitry Stogov c9434a4af2 Separate and fix deoptimization code generator 2020-07-22 15:04:17 +03:00
Dmitry Stogov 2940839d28 Prevent incorrect trasing JIT TSSA usage for range() result type inference 2020-07-22 13:01:11 +03:00
Nikita Popov f90c735957 Drop no-op dasm_growpc() call
This doesn't do anything, as maxpc=0 is passed. However, ubsan
complains about the memset of a null pointer, so avoid it.
2020-07-22 11:11:36 +02:00
Nikita Popov aaedbde8b4 Mark zend_jit_patch memory accesses as unaligned
This prevents ubsan from complaining.
2020-07-22 11:02:24 +02:00
Nikita Popov eb04cb5f20 Move checks after zpp in opcache_is_script_cached() 2020-07-22 10:52:50 +02:00
Dmitry Stogov b5e2b64adc Fix deoptimization info and corresponding memory leaks 2020-07-21 22:58:24 +03:00
Dmitry Stogov b44169e9dd Fixed bug #79864 (JIT segfault in Symfony OptionsResolver) 2020-07-21 20:54:33 +03:00
Dmitry Stogov 0e1e991a89 Switch to tracing JIT by default 2020-07-21 16:15:11 +03:00
Nikita Popov f7f557926e Fix arg/func info
* mysqli_get_server_info() cannot return null. The underlying API
   is infallible.
 * mysqli_select_db() func info is redundant.
 * mb_detect_order() can only return array|true, not array|false.

Also make the func_info.phpt test that is supposed to catch these
kinds of issues actually work.
2020-07-21 15:00:33 +02:00
Dmitry Stogov 7686118212 Fix type recording and side exit information for FE_FETCH_* instructions 2020-07-21 15:39:13 +03:00
Dmitry Stogov be0d912674 Avoid recording of uninitialized variable 2020-07-21 14:11:19 +03:00
Nikita Popov ae2b214be2 Check for redundant func info 2020-07-21 13:01:12 +02:00
Nikita Popov 3a9036ac54 Stricter verification of func info against arg info
Make sure they're actually the same up to cases where func info
allows more accurate expressions. There are some awkward edge cases
around true/false/null limitations in union types.
2020-07-21 11:47:52 +02:00
Dmitry Stogov 447a098ebb Switch to tracing JIT by default 2020-07-21 12:22:36 +03:00
Dmitry Stogov bb9e3dd6cc Use different temporary register 2020-07-21 12:21:47 +03:00
Nikita Popov e4c1366b63 Remove some redundant func info
This is fully covered by arginfo.

The array_merge_recursive() RC information was also wrong,
it should be the same as array_merge().
2020-07-21 11:10:07 +02:00
Dmitry Stogov e527478c3d Fixed support for 64-bit constants 2020-07-21 11:49:15 +03:00
Nikita Popov 33ddc3bb96 Fix mb_ereg_search* arg and func info 2020-07-21 10:40:08 +02:00
Nikita Popov be9c5daf28 Remove null from highlight_* return types
Also fix show_source() discrepancy in func_info.
2020-07-21 10:40:08 +02:00
Nikita Popov 9d37a57411 Remove bool return type from assert_options
Not seeing any way this function can return bool.
2020-07-21 10:18:33 +02:00
Nikita Popov fda78e5965 Fix iptcembed func info
This function can return true with $spool >= 2.
2020-07-21 10:18:33 +02:00
Dmitry Stogov 91d4d2443f Fixed pg_select() function info 2020-07-21 09:58:36 +03:00
Dmitry Stogov 7cfb141f9d Fixed tracing JIT exception handling 2020-07-21 01:49:01 +03:00
Dmitry Stogov 774bc760af Fixed VM interrupt handling 2020-07-20 23:14:23 +03:00
Dmitry Stogov 4b13985f25 Keep CPU regesters used by deoptimizer 2020-07-20 21:04:14 +03:00
Dmitry Stogov 2b7035e824 Fixed tracing JIT for VM without global register variables 2020-07-20 20:59:31 +03:00
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
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