Dmitry Stogov
7f67513ca3
Lazy function copying from op_cache SHM into process memory
2018-06-25 19:53:58 +03:00
Nikita Popov
73f07738b9
Fix off-by-one error
2018-06-25 15:26:10 +02:00
Nikita Popov
2543e61aed
Fixed bug #76509
...
In PHP static properties are shared between inheriting classes,
unless they are explicitly overwritten. However, because this
functionality was implemented using reference, it was possible
to break the implementation by reassigning the static property
reference.
This is fixed by switching the implementation from using references
to using INDIRECTs, which cannot be affected by userland code.
2018-06-25 15:04:09 +02:00
Nikita Popov
102bcb5c05
Update array_element_type inference for previous change
...
LIST_R and DIM_IS return value can't be MAY_BE_REF anymore.
2018-06-25 14:27:02 +02:00
Nikita Popov
490a49d0bb
Use COPY_DEREF for DIM_IS and LIST_R as well
...
Also add an upgrading note for the behavior change, not that we
expect anyone to be affected...
2018-06-25 14:23:06 +02:00
Dmitry Stogov
7793bc8ee6
Improved type inference. Result of opcodes using ZVAL_COPY_DEREF can't be MAY_BE_REF.
2018-06-25 13:07:44 +03:00
Nikita Popov
61d00a6cf3
Use COPY_DEREF instead of COPY_UNREF
...
This fixes the behavior when the storage location of the fetch is
modified before the operand is dereferenced by the using VM opcode.
Furthermore it elimiates references as a possible return value from
*_R opcodes, which will give us more opportunities for inferences,
in particular in regard to typed properties.
2018-06-25 11:23:59 +02:00
Dmitry Stogov
84d7d4e1cc
Fixed bug #76466 (Loop variable confusion)
2018-06-18 11:21:23 +03:00
Peter Kokot
be49d61b19
Remove old SVN keywords substitutions
...
When the PHP source code was versioned in Subversion, there was
possible to substitute certain keywords such as $Id$ with revision
number, last change time and author name. Such approach is not used
in Git so this patch removes these outdated artifacts from source
code files.
2018-06-16 13:04:30 +02:00
Xinchen Hui
35872c0960
Remove assertion
2018-06-15 17:21:59 +08:00
Xinchen Hui
efcaa37190
Merge branch 'PHP-7.2'
...
* PHP-7.2:
Fixed bug #76477 (Opcache causes empty return value)
2018-06-15 16:31:58 +08:00
Xinchen Hui
f31ba7cb53
Fixed bug #76477 (Opcache causes empty return value)
2018-06-15 16:31:31 +08:00
Xinchen Hui
609385bbf8
Fixed bug #76446 (zend_variables.c:73: zend_string_destroy: Assertion `!(zval_gc_flags((str)->gc)).
2018-06-13 15:06:51 +08:00
Xinchen Hui
1cc9933130
Fixed bug #76463 (var has array key type but not value type)
2018-06-12 20:55:06 +08:00
Nikita Popov
e4e334effb
Remove dead code for ADD_STRING/ADD_CHAR optimization
...
These opcodes don't exist anymore. The modern equivalent would be
the ROPE_* opcodes. However the code would have to be different
anyway.
2018-06-11 20:17:36 +02:00
Nikita Popov
60323906f9
Optimizer: Don't propagate constants into MAKE_REF
...
This occurs in Zend/tests/assign_ref_error_var_handling.phpt,
added in 95a0709935 .
2018-06-10 00:10:32 +02:00
Dmitry Stogov
9e0f131d2b
Fixed ISSET/ISEMPTY bit meaning to simplify run-time checks
2018-05-31 19:02:51 +03:00
Anatol Belski
ca2e9df56c
Fix AVX part
2018-05-31 14:15:28 +02:00
Dmitry Stogov
45d62d9f9b
Use SSE/AVX instructions
2018-05-30 20:59:29 +03:00
Dmitry Stogov
44be0fa67b
Fixed HashTable load factor
2018-05-29 10:16:02 +03:00
Dmitry Stogov
5eb1f92f31
Use zend_string_release_ex() instread of zend_string_release() in places, where we sure about string persistence.
2018-05-28 16:27:12 +03:00
Anatol Belski
4fb8304143
Merge branch 'PHP-7.2'
...
* PHP-7.2:
Fix Opcache test fails regarding to AppVeyor image update
2018-05-18 18:39:07 +02:00
Anatol Belski
f7b431fb30
Merge branch 'PHP-7.1' into PHP-7.2
...
* PHP-7.1:
Fix Opcache test fails regarding to AppVeyor image update
2018-05-18 18:37:53 +02:00
Anatol Belski
6043a2d6f7
Fix Opcache test fails regarding to AppVeyor image update
2018-05-18 18:36:39 +02:00
Dmitry Stogov
858d545ce6
micro optimization
2018-05-08 00:22:04 +03:00
Dmitry Stogov
34ed8e53fe
Changed worst HashTable load factor from 1.0 to 0.5
2018-05-04 02:41:35 +03:00
Dmitry Stogov
1a63fa6ec9
Implemented Request #76178 (Class constants are slow: they should be inlined at runtime)
...
Run-time cache is used to eliminate recalculation of constant expression in RECV_INIT opcode (only non reference countable values are cached).
2018-05-03 14:40:18 +03:00
Dmitry Stogov
5a31e14beb
Merge branch 'PHP-7.2'
...
* PHP-7.2:
Fixed bug #76205 (PHP-FPM sporadic crash when running Infinitewp)
2018-05-03 12:12:07 +03:00
Dmitry Stogov
3fe2e2a372
Merge branch 'PHP-7.1' into PHP-7.2
...
* PHP-7.1:
Fixed bug #76205 (PHP-FPM sporadic crash when running Infinitewp)
2018-05-03 12:11:07 +03:00
Dmitry Stogov
5b3e1ded35
Fixed bug #76205 (PHP-FPM sporadic crash when running Infinitewp)
2018-05-03 12:10:33 +03:00
Dmitry Stogov
c88be6aee1
Bit check micro-optimization
2018-04-28 14:13:12 +03:00
Dmitry Stogov
df4d0a73d2
Revert "Fixed bug #76205 (PHP-FPM sporadic crash when running Infinitewp)."
...
This reverts commit c6ce03e45e .
2018-04-28 13:28:00 +03:00
Dmitry Stogov
f8c1ce18e9
Revert "Merge branch 'PHP-7.1' into PHP-7.2"
...
This reverts commit c547c1b980 , reversing
changes made to 4c083e7a66 .
2018-04-28 13:27:36 +03:00
Dmitry Stogov
1b305ecdcc
Revert "Merge branch 'PHP-7.2'"
...
This reverts commit f75b8a44cc , reversing
changes made to aeb734910a .
2018-04-28 13:26:32 +03:00
Dmitry Stogov
83f98f7340
Don't store values of PHP_SAPI and PHP_BINARY in file cache, because it may be used by different SAPI.
2018-04-28 01:20:49 +03:00
Dmitry Stogov
f75b8a44cc
Merge branch 'PHP-7.2'
...
* PHP-7.2:
Fixed bug #76205 (PHP-FPM sporadic crash when running Infinitewp).
2018-04-28 00:28:01 +03:00
Dmitry Stogov
c547c1b980
Merge branch 'PHP-7.1' into PHP-7.2
...
* PHP-7.1:
Fixed bug #76205 (PHP-FPM sporadic crash when running Infinitewp).
2018-04-28 00:24:56 +03:00
Dmitry Stogov
c6ce03e45e
Fixed bug #76205 (PHP-FPM sporadic crash when running Infinitewp).
2018-04-28 00:19:53 +03:00
Nikita Popov
aeb734910a
Merge branch 'PHP-7.2'
2018-04-27 22:24:36 +02:00
Nikita Popov
4c083e7a66
Merge branch 'PHP-7.1' into PHP-7.2
2018-04-27 22:23:55 +02:00
Nikita Popov
6738d19fb8
Fix bug #76281
...
Make sure we keep the smart-branch inhibiting NOP even if there
are multiple NOPs in sequence.
2018-04-27 22:21:59 +02:00
Nikita Popov
1c887eaf0d
Merge branch 'PHP-7.2'
2018-04-27 17:02:40 +02:00
Nikita Popov
2c602be7c8
Merge branch 'PHP-7.1' into PHP-7.2
2018-04-27 17:02:01 +02:00
Nikita Popov
279ba58edb
Fixed bug #76275
...
* Adjust IS_SERIALIZED() check to account for potential empty
allocations at the end of the memory region.
* Deallocate empty allocation if all try/catch elements have been
removed in the block pass (similar to what we do if all live
ranges have been eliminated).
2018-04-27 17:01:35 +02:00
Dmitry Stogov
4df89a31b0
Eliminate useless checks
2018-04-04 02:12:26 +03:00
Dmitry Stogov
cb464a53c8
Use "fastcall" calling convention
2018-04-04 01:12:59 +03:00
Rasmus Lerdorf
4b4cd6907f
Better explanation for the opcache.max_wasted_percentage ini setting
...
since it was pretty confusing before
2018-03-30 13:28:45 -07:00
Rasmus Lerdorf
aaae3637e0
Better explanation for the opcache.max_wasted_percentage ini setting
...
since it was pretty confusing before
2018-03-30 13:24:17 -07:00
Nikita Popov
9a3bb1201f
Merge branch 'PHP-7.2'
2018-03-24 13:16:31 +01:00
Nikita Popov
3306577797
Followup fix for bug #75729
...
The case of overloaded substr() with 3 arguments was not handled.
2018-03-24 13:15:59 +01:00