1
0
mirror of https://github.com/php/php-src.git synced 2026-04-12 10:33:11 +02:00
Commit Graph

5368 Commits

Author SHA1 Message Date
Dmitry Stogov
ca93e48b77 Uniform placing of init_fcall guards.
This fixes trcing JIT with opcache.jit=51
2022-09-27 11:30:36 +03:00
Dmitry Stogov
94b8c2da9f Fixed type inference
Fixes oss-fuzz #51640
2022-09-26 12:19:12 +03:00
Dmitry Stogov
95d9e5157f Check "ssa_op" before dereference (it may be NULL for opcache.jit=51) 2022-09-23 13:14:07 +03:00
David Carlier
fd55b50833 Merge branch 'PHP-8.1' into PHP-8.2 2022-09-22 11:24:37 +01:00
wxue1
52f4ed16e0 Indirect call reduction for Jit code
Changing indirect call to direct call for Jit code
benefits the branch prediction, which gets 1% performance
gain in our workload.
Similarly, we change indirect jump to direct jump.

Signed-off-by: Su, Tao <tao.su@intel.com>
Signed-off-by: Wang, Xue <xue1.wang@intel.com>
2022-09-22 11:22:27 +01:00
Dmitry Stogov
bda449afe8 Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Intern string values of internal classes to prevent their future interning during inheritance.
2022-09-20 20:46:44 +03:00
Dmitry Stogov
3a46f9fd1d Intern string values of internal classes to prevent their future interning during inheritance. 2022-09-20 20:43:29 +03:00
Dmitry Stogov
5a868022e7 Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Reorder conditions to avoid valgrind "Conditional jump or move depends on uninitialised value" warning.
2022-09-19 17:19:28 +03:00
Dmitry Stogov
20d1d234ca Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  Reorder conditions to avoid valgrind "Conditional jump or move depends on uninitialised value" warning.
2022-09-19 17:19:19 +03:00
Dmitry Stogov
e488f7b0eb Reorder conditions to avoid valgrind "Conditional jump or move depends on uninitialised value" warning. 2022-09-19 17:17:53 +03:00
Dmitry Stogov
7496a400aa Fix SSA construction and type inference
Fixes oss-fuzz #51476
2022-09-19 15:45:34 +03:00
Ilija Tovilo
3f1e9235e1 Fix test with POSIX_RLIMIT_FSIZE and gcov 2022-09-16 17:15:17 +02:00
Arnaud Le Blanc
ac54bfb17c Fix test in "DEBUG_NTS_OPCACHE Without interned strings" build 2022-09-16 16:51:27 +02:00
Ilija Tovilo
6622c54c53 Fix class link observer with file_cache_only=1
Previously, notify would only get called on classes with CE_CACHE.
However, during compilation class names are non-permanent which won't
get a CE_CACHE and thus wouldn't not get notified.

Closes GH-9550
2022-09-16 14:15:05 +02:00
Ilija Tovilo
e9a0d21a06 Mark gh9259_003.phpt as xfail with ASAN
The tests reports memory leaks.
2022-09-11 12:37:06 +02:00
Arnaud Le Blanc
3c852cf43f Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Check return value of zend_jit_trace_get_exit_addr() (#9097)
2022-09-09 10:51:10 +02:00
Arnaud Le Blanc
466e4dc2a2 Check return value of zend_jit_trace_get_exit_addr() (#9097) 2022-09-09 10:50:03 +02:00
Máté Kocsis
87862578cb Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Fix inexistent skipif.inc
2022-09-05 12:38:09 +02:00
Máté Kocsis
59180b50b3 Fix inexistent skipif.inc 2022-09-05 12:37:53 +02:00
Dmitry Stogov
c151e9b75b Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Fix type inference
2022-09-05 13:01:04 +03:00
Dmitry Stogov
c852e0fff9 Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  Fix type inference
2022-09-05 12:56:34 +03:00
Dmitry Stogov
81cb005ef7 Fix type inference
Fixes oss-fuzz #50792
2022-09-05 12:55:50 +03:00
Arnaud Le Blanc
ea1287b015 Log the cause of error when opcache cannot write to file cache (#9258) 2022-09-03 11:23:43 +02:00
Arnaud Le Blanc
fb242f41ba Fix high opcache.interned_strings_buffer causing shm corruption (#9260) 2022-09-03 11:23:10 +02:00
Dmitry Stogov
a55441615c Merge branch 'PHP-8.1'
* PHP-8.1:
  typo
2022-08-29 17:13:23 +03:00
Dmitry Stogov
4845d7026a Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  typo
2022-08-29 17:13:16 +03:00
Dmitry Stogov
263a07e5b0 typo 2022-08-29 17:12:57 +03:00
Dmitry Stogov
218da70bcf Merge branch 'PHP-8.1'
* PHP-8.1:
  Fix memory leak
2022-08-29 14:54:49 +03:00
Dmitry Stogov
172ac0a48d Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  Fix memory leak
2022-08-29 14:54:40 +03:00
Dmitry Stogov
4135e6011c Fix memory leak
Fixes oss-fuzz #50616
2022-08-29 14:53:48 +03:00
Dmitry Stogov
4b884bedc8 JIT: Fix missing type store
Fixes oss-fuzz #50653
2022-08-29 14:36:16 +03:00
Dmitry Stogov
2f9bc6e37a Merge branch 'PHP-8.1'
* PHP-8.1:
  Fix ext/opcache/tests/jit/inc_obj_004.phpt failure introduced by fd74ee7e90
2022-08-29 12:36:06 +03:00
Dmitry Stogov
a516e2992d Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  Fix ext/opcache/tests/jit/inc_obj_004.phpt failure introduced by fd74ee7e90
2022-08-29 12:35:46 +03:00
Dmitry Stogov
ce42dcf483 Fix ext/opcache/tests/jit/inc_obj_004.phpt failure introduced by fd74ee7e90
This should fix GH-9445
2022-08-29 12:30:14 +03:00
Ilija Tovilo
3264f2367d Fix strict-prototypes warning 2022-08-26 13:57:39 +02:00
Dmitry Stogov
7f74a30018 Reduce observer overhead when restoring script from opcache (#9413)
* Reduce observer overhead when restoring script from opcache

* typo

* Split loops to keep notifications in case of redeclaration errors
2022-08-25 19:49:16 +03:00
David CARLIER
e787d9a0dc GH-9370: Fix opcache jit protection bits.
Allow mprotect to occur, pthread_jit_write_np are just to allow mprotect
 flags to be used.

Closes #9371.
2022-08-24 16:11:35 +01:00
Dmitry Stogov
205ad0af29 Fix coding style 2022-08-24 08:44:49 +03:00
wxue1
9f926d6b2d Stop JIT hot spot counting (#9343)
When max_root_trace is reached, JIT in tracing mode will not
compile any new code for root trace and side trace, but
counting hot code is still going on. This patch stops counting
as soon as possible by replacing counter handler with
original handler, which increases 1.5% performance.

Signed-off-by: Wang, Xue <xue1.wang@intel.com>

Signed-off-by: Wang, Xue <xue1.wang@intel.com>
2022-08-24 08:37:49 +03:00
Bob Weinand
396b2aab85 Wrap observer notify functions into inlined enabled checks
Signed-off-by: Bob Weinand <bobwei9@hotmail.com>
2022-08-23 15:22:22 +02:00
Bob Weinand
bf427b732a Add an API to observe functions and classes being linked
To observe when the functions and classes start being officially available to the user

Signed-off-by: Bob Weinand <bobwei9@hotmail.com>
2022-08-23 15:22:22 +02:00
Dmitry Stogov
567213c32a Drop range inference for IS_NULL/IS_FALSE/IS_TRUE.
These values not always converted to IS_LONG (e.g. by -- and ++) and
this leads to incorrect range inferene and later to incorrect JIT code
generation.
2022-08-23 11:22:31 +03:00
Dmitry Stogov
e10d2c2bf9 Merge branch 'PHP-8.1'
* PHP-8.1:
  Fix type inference
2022-08-22 21:12:49 +03:00
Dmitry Stogov
95befc786a Fix type inference
Fixes oss-fuzz #50272
2022-08-22 21:11:39 +03:00
Dmitry Stogov
d8c6549974 Merge branch 'PHP-8.1'
* PHP-8.1:
  JIT: Make code generation to be consistent with register allocation
2022-08-22 20:00:44 +03:00
Dmitry Stogov
2a33280ceb Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  JIT: Make code generation to be consistent with register allocation
2022-08-22 19:55:10 +03:00
Dmitry Stogov
fd74ee7e90 JIT: Make code generation to be consistent with register allocation
Fixes ext/opcache/tests/jit/add_014.phpt with opcache.jit=1205
2022-08-22 19:53:33 +03:00
Christoph M. Becker
9313cd899e Don't enforce 64 hit counter on Windows
There is no particular need to have a 64bit hit counter on Windows.

Closes GH-9367.
2022-08-22 17:49:30 +02:00
Dmitry Stogov
a5d84ba0d8 Merge branch 'PHP-8.1'
* PHP-8.1:
  Tracing JIT: Fix incorrect guard elimination
2022-08-22 15:42:28 +03:00
Dmitry Stogov
5762fc52c6 Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  Tracing JIT: Fix incorrect guard elimination
2022-08-22 15:39:47 +03:00