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