Nikita Popov
a12fe30590
Merge branch 'PHP-7.3' into PHP-7.4
2019-08-29 12:34:07 +02:00
Nikita Popov
34edd4aa2a
Merge branch 'PHP-7.2' into PHP-7.3
2019-08-29 12:33:04 +02:00
Nikita Popov
ed749edd47
Fix use-after-free of immediately invoked closure with extra args
2019-08-29 12:32:03 +02:00
Dmitry Stogov
d1fd4607d0
Inline zend_zval_ptr() in executor explicitely (only on hot paths)
2019-08-06 16:28:42 +03:00
Nikita Popov
afd96392a3
Revert "Use RW fetch for argument unpacking"
...
This reverts commit 6913ec3282
.
This reverts commit a9e332e027
.
Causes https://bugs.php.net/bug.php?id=78356 , which I don't have
a good solution for.
2019-08-01 10:06:53 +02:00
Nikita Popov
6913ec3282
Use RW fetch for argument unpacking
...
Argument unpacking may need to create references inside the array
that is being unpacked. However, it currently can only do this
if a plain variable is unpacked, not for any nested accesses,
because the value is fetched for read. Resolve this by fetching
the operands for RW.
2019-07-30 10:07:08 +02:00
Dmitry Stogov
853b426ecf
Avoid over-specialization
2019-07-24 19:51:56 +03:00
Dmitry Stogov
d7e8abb4aa
Reordering
2019-07-24 18:49:46 +03:00
Dmitry Stogov
22e7ee3bb3
Delay dereference
2019-07-24 18:36:50 +03:00
Dmitry Stogov
6191df7553
Avoid reloading
2019-07-24 17:30:38 +03:00
Nikita Popov
1eb706179f
Avoid references in TMP var
...
Make sure we deref the OBJ_IS result, because we store it in a TMP
var, which is not allowed to contain references and will cause
assertion failures in the unspecialized VM.
This also partially reverts fd463a9a60
,
which merged the TMP and VAR specializations of COALESCE to work
around this bug.
An alternative would be to change the result type of OBJ_IS back
to VAR.
2019-07-24 10:07:26 +02:00
Nikita Popov
9e4603f772
Try to fix macos build
...
By avoiding unused variable opline warnings. Also clean up the
replacement of ZEND_VM_SPEC -- we were sometimes treating it as
an always-defined constant with a value (what it actually is) and
sometimes as a conditionally defined constant (which it isn't, but
which still worked thanks to the specializer). Switch to only
treating it as a constant with a value.
2019-07-24 09:44:55 +02:00
Dmitry Stogov
eaa9048973
Fixed unspecialized executor
2019-07-24 01:43:01 +03:00
Dmitry Stogov
445d51347d
Use run-time cache to avoid repeatable hash lookups in ZEND_DECLARE_CLASS_DELAYED
2019-07-19 11:46:03 +03:00
Dmitry Stogov
d5943f5a11
Use run-time cache to avoid repeatable hash lookups when creating anonymous functions and classes
2019-07-19 10:43:49 +03:00
Dmitry Stogov
b065fbde19
ZEND_DECLARE_ANON_CLASS doesn't need to skip anything now. It's immediatelly followed by ZEND_NEW.
2019-07-19 10:09:26 +03:00
Dmitry Stogov
7cf651c39e
Merge common code
2019-07-18 16:46:25 +03:00
Dmitry Stogov
918f09f72a
Added specialization for comparison instructions and QM_ASSIGN
2019-07-17 09:12:01 +03:00
Dmitry Stogov
ee5828205e
Separate "cold" and common unspecialized code
2019-07-17 00:52:26 +03:00
Dmitry Stogov
349a388b90
Slit INC/DEC opcodes into hot/cold parts and remove specialized versioins for LONG_OR_DOUBLE.
2019-07-16 17:39:25 +03:00
Dmitry Stogov
c1b9088903
Replace deprecated conditions by ZEND_ASSERT.
2019-07-16 13:50:25 +03:00
Dmitry Stogov
1d4c38421a
Delay IS_UNDEF checks
2019-07-16 11:16:45 +03:00
Dmitry Stogov
2e26b063b6
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Fixed incorrect specialization (missed IS_INDIRECT handling)
2019-07-16 01:54:22 +03:00
Dmitry Stogov
c570980175
Merge branch 'PHP-7.2' into PHP-7.3
...
* PHP-7.2:
Fixed incorrect specialization (missed IS_INDIRECT handling)
2019-07-16 01:52:11 +03:00
Dmitry Stogov
9ccf3fb996
Fixed incorrect specialization (missed IS_INDIRECT handling)
2019-07-16 01:50:10 +03:00
Dmitry Stogov
0793af0673
Use common code for double math
2019-07-12 11:40:56 +03:00
Dmitry Stogov
ef1a1a0698
Separate "cold" parts of comparison instructions
2019-07-11 20:44:39 +03:00
Dmitry Stogov
be94c0c3c6
Separate "cold" parts of binary op instructions
2019-07-11 18:23:08 +03:00
Dmitry Stogov
e1f418dd18
Remove duplicated code for (PRE|POST)_DEC_(OBJ|STATIC_PROP) opcodes
2019-07-09 10:46:04 +03:00
Dmitry Stogov
1305d9c0d2
Fixed opcode description
2019-07-08 11:20:46 +03:00
Dmitry Stogov
48ca5a1e17
Replace ZEND_ASSIGN_ADD (and others) by ZEND_ASSIGN_OP, ZEND_ASSIGN_DIM_OP, ZEND_ASSGIN_OBJ_OP and ZEND_ASSIGN_STATIC_PROP_OP
2019-07-05 12:03:25 +03:00
Dmitry Stogov
ef05eab432
Improve zend_binary_assign_op helpers.
...
Reorder opcode numbers to make ADD-POW and ASSIGN_ADD-ASSIGN_POW opcodes sequencional.
2019-07-04 17:25:43 +03:00
Dmitry Stogov
925fd0fe6f
Introduce and use ZEND_VM_INLINE_HANDLER() to avoid ZEND_RETURN exception
2019-07-04 15:54:45 +03:00
Dmitry Stogov
56b8b165f8
Optimization of INC/DEC helpers
2019-07-03 10:33:03 +03:00
Nikita Popov
03846afdf7
Fix clang build
2019-07-02 10:16:55 +02:00
Dmitry Stogov
2d4bb4f44a
Use string destructor instead of general zval_ptr_dtor_nogc()
2019-07-02 01:14:33 +03:00
Dmitry Stogov
f58c645dcc
Eliminate exception checks
2019-07-02 01:11:41 +03:00
Dmitry Stogov
f2b6b2eee8
Micro-optimization
2019-07-01 16:57:25 +03:00
Dmitry Stogov
39a0854307
Fixed GOTO VM
2019-07-01 15:50:53 +03:00
Dmitry Stogov
e8f1f70101
Reduce overhead of delayed early binding
2019-06-25 14:20:41 +03:00
Dmitry Stogov
759f4ecd8b
Keep lowercased parent class name as second argument of DECLARE_CLASS to avoid extra work at run-time
2019-06-25 11:30:58 +03:00
Dmitry Stogov
0f29fb5cd8
Fixed bug 78175 (Preloading must store default values of static variables and properties)
2019-06-24 20:32:27 +03:00
Dmitry Stogov
e1e8e670df
Cleanup
2019-06-21 11:43:17 +03:00
Nikita Popov
ed2a242317
Fix signed shift UB
2019-06-19 15:09:00 +02:00
Nikita Popov
cac6b04113
Fixed bug #78154
2019-06-13 10:59:01 +02:00
Joe Watkins
175c7bf6fe
Revert "micro-optimization"
...
This reverts commit 374f769982
.
2019-06-12 20:04:47 +02:00
Nikita Popov
89b2d88659
Register class before fetching parent
...
We want the class declaration to be available while compiling the
parent class.
2019-06-11 13:09:33 +02:00
Dmitry Stogov
374f769982
micro-optimization
2019-06-10 16:43:20 +03:00
Nikita Popov
7780ba9660
Try to fix Windows build
2019-06-06 14:56:42 +02:00
Dmitry Stogov
a95014dc10
Reduce over-specialization for quite seldom instructions
2019-06-06 13:13:09 +03:00