Dmitry Stogov
d282345e11
Merge branch 'PHP-8.1' into PHP-8.2
...
* PHP-8.1:
Reset JIT for dynamic functions on opcache restrart
2022-10-17 11:27:12 +03:00
Dmitry Stogov
61e563ca40
Reset JIT for dynamic functions on opcache restrart
2022-10-17 11:26:30 +03:00
Dmitry Stogov
5e10aa4e5f
Merge branch 'PHP-8.1' into PHP-8.2
...
* PHP-8.1:
Discard disasm symbols on opcache restart
2022-10-17 11:24:08 +03:00
Dmitry Stogov
3e076ddf06
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Discard disasm symbols on opcache restart
2022-10-17 11:24:00 +03:00
Dmitry Stogov
cefb228e15
Discard disasm symbols on opcache restart
2022-10-17 11:22:59 +03:00
Dmitry Stogov
46fcf33c7b
Merge branch 'PHP-8.1' into PHP-8.2
...
* PHP-8.1:
Fix crashes after opcache restart
2022-10-11 14:23:59 +03:00
Dmitry Stogov
c5364b851a
Fix crashes after opcache restart
2022-10-11 14:23:12 +03:00
Dmitry Stogov
5cfec7ee40
Merge branch 'PHP-8.1' into PHP-8.2
...
* PHP-8.1:
Fix typo
2022-10-05 21:39:46 +03:00
Dmitry Stogov
e81b6bf018
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fix typo
2022-10-05 21:39:37 +03:00
Dmitry Stogov
072dc3c857
Fix typo
2022-10-05 21:39:16 +03:00
Dmitry Stogov
4164d2d567
Merge branch 'PHP-8.1' into PHP-8.2
...
* PHP-8.1:
Fix register allocation (missing store)
2022-10-03 17:09:07 +03:00
Dmitry Stogov
5877b84056
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fix register allocation (missing store)
2022-10-03 17:09:01 +03:00
Dmitry Stogov
ed652a514f
Fix register allocation (missing store)
...
This fixes oss-fuzz #52022
2022-10-03 17:08:11 +03:00
Dmitry Stogov
ec5882e1c3
Fix GH-9626: JIT type assertion failure in Symfony community build
2022-10-03 14:58:37 +03:00
Dmitry Stogov
3cce4964d1
Merge branch 'PHP-8.1' into PHP-8.2
...
* PHP-8.1:
Fix abstract trace consisency for FE_FETCH instruction
2022-10-03 14:51:32 +03:00
Dmitry Stogov
da28a6b497
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fix abstract trace consisency for FE_FETCH instruction
2022-10-03 14:51:21 +03:00
Dmitry Stogov
5ca4113386
Fix abstract trace consisency for FE_FETCH instruction
2022-10-03 14:48:03 +03:00
Dmitry Stogov
efcffc9d5f
Merge branch 'PHP-8.1' into PHP-8.2
...
* PHP-8.1:
Force exit to VM
2022-09-29 15:28:23 +03:00
Dmitry Stogov
aa179bf3dd
Force exit to VM
2022-09-29 15:27:38 +03:00
Ilija Tovilo
980c2edbe2
Merge branch 'PHP-8.1' into PHP-8.2
...
* PHP-8.1:
Fix invalid label before }
2022-09-27 23:28:07 +02:00
Ilija Tovilo
0aa5adb143
Fix invalid label before }
...
Will be fixed in C23 :)
Closes GH-9624
2022-09-27 23:27:17 +02:00
Dmitry Stogov
8dc689ecfd
Merge branch 'PHP-8.1' into PHP-8.2
...
* PHP-8.1:
Wrap JIT compiler with zend_try to recover in case of memory overflow
2022-09-27 22:29:01 +03:00
Dmitry Stogov
2568db287d
Wrap JIT compiler with zend_try to recover in case of memory overflow
2022-09-27 22:28:16 +03:00
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
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
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
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
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
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
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
Dmitry Stogov
c9c51eb1f1
Tracing JIT: Fix incorrect guard elimination
...
Fixes oss-fuzz #49917
2022-08-22 15:38:41 +03:00
David Carlier
5a9411d086
Merge branch 'PHP-8.1'
2022-08-19 16:41:06 +01:00
David Carlier
9360cd6add
Merge branch 'PHP-8.0' into PHP-8.1
2022-08-19 16:40:54 +01:00
David Carlier
52e312afb8
opcache jit fix message format for OpenBSD.
...
like macOs it requires `ll`.
Closes #9380 .
2022-08-19 16:40:29 +01:00
Bob Weinand
dc5475c191
Save previous observer on the VM stack
...
This avoids a possible significant performance penalty, when some leaf function was observed, deep in the stack.
As a side effect, we are not iterating over prev_execute_data anymore and thus, non-observed fake frames, possibly on stack, cannot have any impact on the observer anymore (especially within zend_observer_fcall_end_all).
Saving the previous observer happens now directly on the VM stack. If there is any observer, function frames are allocated an extra zval (the last temporary), which will, on observed frames, contain the previous observed frame address.
2022-08-04 17:16:27 +02:00
Dmitry Stogov
c207efab63
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Tracing: Prevent recording types of variables used to pass zend_class_entry
2022-08-01 17:04:08 +03:00
Dmitry Stogov
7ff71a0a55
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Tracing: Prevent recording types of variables used to pass zend_class_entry
2022-08-01 17:03:56 +03:00
Dmitry Stogov
2758ff2a77
Tracing: Prevent recording types of variables used to pass zend_class_entry
2022-08-01 17:02:53 +03:00