Dmitry Stogov
776bef8447
Fixed bug in type inference
2017-11-27 10:16:16 +03:00
Xinchen Hui
9d02227243
Improved fix
2017-11-27 12:03:37 +08:00
Xinchen Hui
c412b8b384
Fixed bug #75556 (Invalid opcode 138/1/1)
2017-11-25 00:54:15 +08:00
Dmitry Stogov
2a6a1fd22c
typo
2017-11-22 16:30:57 +03:00
Nikita Popov
95e9cc2871
Backport some printf() fixes to 7.2
2017-11-16 21:26:33 +01:00
Dmitry Stogov
b6294bbc6c
Fixed assertion on phpMyAdmin-4.7.5 home page
2017-11-08 12:51:53 +03:00
Joe Watkins
c3ee17065b
Merge branch 'PHP-7.1' into PHP-7.2
...
* PHP-7.1:
fix wrong check of definition_phi->constraint.range.max_ssa_var
2017-11-03 17:49:52 +00:00
MITSUNARI Shigeo
21dbd2ffcd
fix wrong check of definition_phi->constraint.range.max_ssa_var
2017-11-03 17:49:42 +00:00
Xinchen Hui
db4eb54149
Merge branch 'PHP-7.1' into PHP-7.2
...
* PHP-7.1:
Use abbrev
2017-10-30 18:17:41 +08:00
Xinchen Hui
d9de0f8683
Use abbrev
2017-10-30 16:26:59 +08:00
Dmitry Stogov
49256dcf6f
Merge branch 'PHP-7.1' into PHP-7.2
...
* PHP-7.1:
Fixed type inference
2017-10-30 10:44:12 +03:00
Dmitry Stogov
230e505fd8
Fixed type inference
2017-10-30 10:41:27 +03:00
Anatol Belski
5315cea6e2
Merge branch 'PHP-7.1' into PHP-7.2
...
* PHP-7.1:
Backport 7ff13badda
into 7.0+
2017-10-18 16:27:31 +02:00
Anatol Belski
53d8775015
Merge branch 'PHP-7.0' into PHP-7.1
...
* PHP-7.0:
Backport 7ff13badda
into 7.0+
2017-10-18 16:24:23 +02:00
Anatol Belski
d82805f097
Backport 7ff13badda
into 7.0+
2017-10-18 16:02:56 +02:00
Xinchen Hui
e53a9aaa4a
Fixed bug (assertion fails with extended info generated)
2017-10-17 19:47:29 +08:00
Xinchen Hui
8e147f12b9
Fixed bug (Phi sources removel)
2017-10-16 15:01:06 +08:00
Xinchen Hui
abbdbc21b0
Fixed bug #75357 (segfault loading WordPress wp-admin)
2017-10-14 23:12:29 +08:00
Xinchen Hui
a52d1088e5
Added skipf
2017-10-13 18:21:41 +08:00
Xinchen Hui
e4f7ff9c0f
Fixed bug #75370 (Webserver hangs on valid PHP text)
2017-10-13 18:18:10 +08:00
Xinchen Hui
e50cc4d3af
Fixed typo
2017-10-13 17:35:02 +08:00
Dmitry Stogov
2929110ce1
Fixed cleanup after optimization passes
2017-10-10 19:25:51 +03:00
Rasmus Lerdorf
ec3ea3081d
Add line numbers to Optimizer debug output
2017-10-06 17:18:58 -03:00
Dmitry Stogov
e9426cf816
Merge branch 'PHP-7.1' into PHP-7.2
...
* PHP-7.1:
Fixed rarely possible use-after-free
2017-10-04 16:39:47 +03:00
Dmitry Stogov
b6e34eaf04
Fixed rarely possible use-after-free
2017-10-04 16:38:55 +03:00
Xinchen Hui
d3aa65231e
Merge branch 'PHP-7.1' into PHP-7.2
...
* PHP-7.1:
Fixed bug #75267 (possible &/&& mixup)
2017-09-29 11:17:07 +08:00
Xinchen Hui
9fd33c1f20
Fixed bug #75267 (possible &/&& mixup)
2017-09-29 11:16:32 +08:00
Dmitry Stogov
978c6c4e31
Merge branch 'PHP-7.1' into PHP-7.2
...
* PHP-7.1:
Fixed bug #75255 (Request hangs and not finish)
2017-09-27 17:17:46 +03:00
Dmitry Stogov
1c68d63f35
Fixed bug #75255 (Request hangs and not finish)
2017-09-27 17:16:24 +03:00
Dmitry Stogov
2a33e357cd
Merge branch 'PHP-7.1' into PHP-7.2
...
* PHP-7.1:
Added missed ~
2017-09-25 12:23:01 +03:00
Dmitry Stogov
550595c085
Added missed ~
2017-09-25 12:22:35 +03:00
Dmitry Stogov
801cdb8945
Merge branch 'PHP-7.1' into PHP-7.2
...
* PHP-7.1:
Fixed type inference
2017-09-25 12:04:13 +03:00
Dmitry Stogov
d526ddec85
Fixed type inference
2017-09-25 12:03:47 +03:00
Xinchen Hui
ed2a5ebaeb
Fixed bug #75230 (Invalid opcode 49/1/8 using opcache)
2017-09-24 18:01:29 +08:00
Dmitry Stogov
28391b9e7f
Using "enum" types as bit-fields is not portable.
2017-09-22 13:35:41 +03:00
Dmitry Stogov
6544ec5460
Fixed NOP removal (empty blocks should be shifted as well)
2017-09-20 01:10:31 +03:00
Dmitry Stogov
084e34098a
Fixed optimization (the bug caused endless-loop on micro_bench.php in master branch)
2017-09-18 14:10:18 +03:00
Dmitry Stogov
251a5599b4
Fixed SSA reconstruction
2017-09-07 17:10:38 +03:00
Dmitry Stogov
384da65a97
Fixed edge-case in SSA use/def chain construction and type inference.
2017-09-04 21:58:24 +03:00
Dmitry Stogov
b5935c339e
Fixed tests
2017-09-04 20:12:17 +03:00
Dmitry Stogov
ea734e2ac2
Fixed incorect constant conditional jump elimination
2017-09-04 19:11:17 +03:00
Dmitry Stogov
eb21300a26
Revert "Fixed incorrect optimizaton (update of jump instructions should be also reflected in CFG update)"
...
This reverts commit db5b8dbcdf
.
2017-09-04 16:50:12 +03:00
Dmitry Stogov
db5b8dbcdf
Fixed incorrect optimizaton (update of jump instructions should be also reflected in CFG update)
2017-09-04 14:07:37 +03:00
Dmitry Stogov
ebb00c1e0f
Fixed typo
2017-09-04 13:01:30 +03:00
Dmitry Stogov
4f1c2c22ca
Prevent duplicate debug output
2017-09-04 12:58:40 +03:00
Anatol Belski
a454e38b7c
Enable PGO for Opcache
2017-08-24 23:36:21 +02:00
Xinchen Hui
ee26c1efbc
Fixed type-infer
2017-08-21 16:35:07 +08:00
Xinchen Hui
2e002eaf70
Fixed for RESOURCE too
2017-08-19 18:55:56 +08:00
Xinchen Hui
4b6345a3ae
Fixed RC1 Hanlding
2017-08-19 18:51:17 +08:00
Xinchen Hui
ea0df07398
Fixed type-info for ZEND_FETCH_DIIM_UNSET
2017-08-19 18:48:10 +08:00
Dmitry Stogov
3866c1699e
More accurate reference counting inference
2017-08-17 20:03:12 +03:00
Xinchen Hui
30fb70dd25
Fixed type-infer on ZEND_FETCH_DIM_FUNC_ARG
2017-08-17 21:57:28 +08:00
Dmitry Stogov
db2807e4d2
Added few more jump threading optimisation patterns
2017-08-16 09:17:32 +03:00
Dmitry Stogov
df5104bfc9
Fixed removing dead live ranges
2017-08-14 13:54:52 +03:00
Dmitry Stogov
2fab62271a
Revert "Fixed live_range removing (bug can be triggred by JIT)"
...
This reverts commit aecf996510
.
2017-08-14 12:00:02 +03:00
Xinchen Hui
aecf996510
Fixed live_range removing (bug can be triggred by JIT)
2017-08-11 21:56:30 +08:00
Xinchen Hui
4375a6c5cd
Fixed type infer for FUNC_GET_ARGS
2017-08-11 00:33:55 +08:00
Xinchen Hui
0e61cddeb1
Merge branch 'PHP-7.1' into PHP-7.2
...
* PHP-7.1:
Fixed bug #74980 (Narrowing occurred during type inference)
2017-07-26 12:06:55 +08:00
Xinchen Hui
3df47c12f7
Fixed bug #74980 (Narrowing occurred during type inference)
2017-07-26 12:06:33 +08:00
Nikita Popov
4672411ef5
Fix incorrect propagation of ZEND_BOOL in pass 1
...
BOOL (next to QM_ASSIGN) is one of the opcodes that can assign to
a temporary that is assigned in multiple branches. Pass 1 does
not check for this, so we should not try to handle it at that
point. Block pass and sccp will be able to treat this correctly.
2017-07-22 17:23:50 +02:00
Nikita Popov
96665fbfe0
Fix block removal if there are duplicate successors
2017-07-22 14:53:23 +02:00
Nikita Popov
3fa76ac54f
Merge branch 'PHP-7.1' into PHP-7.2
2017-07-21 23:22:56 +02:00
Nikita Popov
69ec51eb02
Fix DFG construction for VERIFY_RETURN
...
`use` only contains uses prior to definition. This was not
honoured for VERIFY_RETURN with a temporary operand.
The test case only breaks on PHP 7.2.
2017-07-21 23:20:56 +02:00
Dmitry Stogov
0b2c456312
fixed comments
2017-07-20 23:29:22 +03:00
Dmitry Stogov
1b9d0c8af3
Fixed wrong edges_count re-calculation.
2017-07-20 23:28:05 +03:00
Dmitry Stogov
3185f8628f
Convert CONCAT into FAST_CONCAT for non-object operands
2017-07-19 15:41:46 +03:00
Dmitry Stogov
8447b86eef
Remove dead live ranges and FREE instructions
2017-07-19 13:07:33 +03:00
Dmitry Stogov
5274cefb4d
Remove live ranges
2017-07-19 13:06:25 +03:00
Nikita Popov
ecb67e59d7
Don't reuse compare_function operands
...
If the same zval is used for the result and one operand, then the
function thinks it is responsible for freeing the value in case of
a type conversion.
2017-07-19 01:04:36 +02:00
Dmitry Stogov
0903f6bffb
Remove dead JMP/JMPZ/JMPNZ/JMPZNZ (DCE pass can't remove them)
2017-07-18 20:43:06 +03:00
Dmitry Stogov
582882ae18
Constant evaluation of few more constant functions
2017-07-18 20:42:40 +03:00
Dmitry Stogov
c41d2535b1
Disabled compile-time constant DOUBLE to STRING evaluation (its result depends on run-time 'precision' setting)
2017-07-18 20:41:01 +03:00
Dmitry Stogov
eb6c7471cb
Constant evaluation of in_array() (support for more cases).
2017-07-17 17:27:21 +03:00
Dmitry Stogov
1180d8c801
Separate ISSET_ISEMPTY_CV/UNSET_CV from ISSET_ISEMPTY_VAR/UNSET_VAR
2017-07-17 14:11:50 +03:00
Dmitry Stogov
d9d3b2c206
Fixed CFG/SSA construction (avoid multiple identical predecessors)
2017-07-17 13:35:47 +03:00
Dmitry Stogov
b31e77dbea
Allocate additional slot for third argument
2017-07-17 09:11:14 +03:00
Dmitry Stogov
2a286ad599
Added goblal optimisation passes based on data flow analyses using SSA form:
...
SCCP - Sparse Conditional Constant Propagation, DCE - Dead Code Elimination
and removing of unused local variablesi.
Squashed commit of the following:
commit bf5ac05fc0
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 14 14:26:40 2017 +0300
Added news entry
commit 4cfa6984b1
Merge: 1cdaaac
1f261d7
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 14 13:30:50 2017 +0300
Merge branch 'sccp' into dce
* sccp:
Bump OCI8 version for recent patch
WS
Fix test title
Ensure that the stream position is kept between reads
Turn off EXIF_DEBUG so Travis don't complain at me
Don't add a new line to undefined tags in EXIF_DEBUG mode
Fix compile error with EXIF_DEBUG
update NEWS
disable --with-pcre-valgrind on travis
fix default args for --with-pcre-valgrind
Enable valgrind support for PCRE by default in debug builds
add oniguruma.patch to ease future upgrades
SIZEOF_SIZE_T doesn't exist on AIX and POWER8 (ppc64le), keep using SIZEOF_LONG
commit 1f261d77cb
Merge: a32a3fb
b280ba8
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 14 13:30:39 2017 +0300
Merge branch 'master' into sccp
* master:
Bump OCI8 version for recent patch
WS
Fix test title
Ensure that the stream position is kept between reads
Turn off EXIF_DEBUG so Travis don't complain at me
Don't add a new line to undefined tags in EXIF_DEBUG mode
Fix compile error with EXIF_DEBUG
update NEWS
disable --with-pcre-valgrind on travis
fix default args for --with-pcre-valgrind
Enable valgrind support for PCRE by default in debug builds
add oniguruma.patch to ease future upgrades
SIZEOF_SIZE_T doesn't exist on AIX and POWER8 (ppc64le), keep using SIZEOF_LONG
commit 1cdaaac601
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 14 13:27:12 2017 +0300
Use generic evalution mechanism for constant functions
commit 75bd92a609
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 14 12:39:05 2017 +0300
Fixed use-def chain unlinking for "$a = 1; $a += $a;"
commit 7d7746814d
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 14 12:38:29 2017 +0300
Enable duplicate predecessors verification
commit 6b1667f206
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 14 11:55:20 2017 +0300
Removed duplicate definitions
commit 1415b53014
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 14 11:51:29 2017 +0300
Enable evaluation of constant functions with 3 arguments
commit ab367deef9
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 14 11:45:13 2017 +0300
Removed deprecated check
commit c51659ea8c
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 14 11:40:42 2017 +0300
Reduce limit
commit b1be5a04d7
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 14 11:38:23 2017 +0300
Disable constant array_flip() evaluation
commit 7a5b0596a1
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 14 11:33:20 2017 +0300
Fixed comments
commit 377e48b342
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 14 11:28:50 2017 +0300
Cast of string to long/double can not produce exception
commit 228dd01af3
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 14 11:24:50 2017 +0300
Added missed return
commit 0972a21636
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 14 11:22:36 2017 +0300
objects may be nested in array operands
commit bd346bfa5c
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 14 11:19:20 2017 +0300
~$resource is unsupported.
commit c77e45610c
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 14 11:15:39 2017 +0300
ws
commit 0b64d71109
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 14 11:14:40 2017 +0300
Call to zend_ssa_unlink_use_chain() shouldn't be dropped
commit cb7059fcf6
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 14 11:11:58 2017 +0300
Safer check for function name. The previous check is incorrect in ZTS build.
commit 7280aba1e1
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 14 11:02:10 2017 +0300
Missing warning
commit 54bc7b576c
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 14 10:56:42 2017 +0300
Proper check for successors count
commit ea8c004a15
Merge: 624f76d
a32a3fb
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Jul 13 15:56:26 2017 +0300
Merge branch 'sccp' into dce
* sccp:
fix fold
Fixed bug #74866 extension_dir = "./ext" now use current directory for base
add next vc15 toolset to the list
Revert "Enable whole program optimization for builds without PGO, too"
extend comment
cleanup discontinued target
commit a32a3fb67c
Merge: 2722dbf
5fb2abd
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Jul 13 15:56:14 2017 +0300
Merge branch 'master' into sccp
* master:
fix fold
Fixed bug #74866 extension_dir = "./ext" now use current directory for base
add next vc15 toolset to the list
Revert "Enable whole program optimization for builds without PGO, too"
extend comment
cleanup discontinued target
commit 624f76df48
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Jul 13 12:30:27 2017 +0300
Set RETURN_VALUE_UNUSED instead of additional FREE opcode, if possible.
Keep alive dead instructions that have to free two temporary variables.
commit 94c9b26695
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Jul 13 11:51:14 2017 +0300
More accurate "vararg" handling in DCE
commit 665ed8491c
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Jul 13 09:31:45 2017 +0300
Improved DCE performance, by avoiding redundand checks and repeatable iterations.
commit 3f42ce18ba
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jul 12 23:03:11 2017 +0300
Added few more instructions without side effects and exceptions
commit b17178f991
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jul 12 20:39:02 2017 +0300
Temprary enable SSA validation in DEBUG build
commit e238a8dc79
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jul 12 20:37:53 2017 +0300
Inegrate SSA validation developed by Nikita
commit a247cee80b
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jul 12 20:31:27 2017 +0300
Perform DCE pass before other DFA optimisations, to properly reconstruct "no value" use-def chains.
commit a651564f29
Merge: 06f6eb0
2722dbf
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jul 12 18:55:05 2017 +0300
Merge branch 'sccp' into dce
* sccp:
Resources should be closed during object destructioin, not during freeing.
Guard against AppVeyor losing deps issue
increase poll timeout as false positives mitigation
Value of EG(user_exception_handler) should't relive request boundary
sodium ext: remove function names before exception messages
sodium ext: update the crypto_kx_*() API to the libsodium one
Revert "fix macro redifinitions"
commit 2722dbfdf5
Merge: 6595ea3
09d3b73
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jul 12 18:54:48 2017 +0300
Merge branch 'master' into sccp
* master:
Resources should be closed during object destructioin, not during freeing.
Guard against AppVeyor losing deps issue
increase poll timeout as false positives mitigation
Value of EG(user_exception_handler) should't relive request boundary
sodium ext: remove function names before exception messages
sodium ext: update the crypto_kx_*() API to the libsodium one
Revert "fix macro redifinitions"
commit 06f6eb0e68
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jul 12 14:52:28 2017 +0300
Use zend_ssa_is_no_val_use() instead of zend_has_improper_op1_use()
commit 4b64dbb30d
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jul 12 13:07:14 2017 +0300
Check if instruction may throw exception only for instructions without known side effects.
Always disable removing ASSIGN and UNSET_VAR that may throw.
commit c5aa1f47cd
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jul 12 11:21:07 2017 +0300
Use existing bit
commit c2af153bae
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jul 12 11:10:48 2017 +0300
Updated Windows build
commit de5e8fc129
Merge: 8c0de53
6595ea3
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jul 12 11:10:12 2017 +0300
Merge branch 'sccp' into dce
* sccp: (29 commits)
Use existing bit
Updated Windows build
Fixed compilation error
Remove debug code
We need to check for the length here too, or we crash and no one likes that! :(
* Implemented #65187 (exif_read_data/thumbnail: add support for stream resource) * ext/exif now uses FAST_ZPP
Remove extraneous configure flag
Revert "remove excessive checks and fix warnings"
parametrize zip names
Upgrade bundled PCRE to 8.41
Updated NEWS file with LDAP changes
Fixed removing all controls by passing an empty array to ldap_set_option
Filled in NEWS file with ext/ldap last modifications
change order, allow to build as shared extension
restore file deleted by mistake in a merge commit
Fix segfault in php_stream_context_get_option call
remove excessive checks and fix warnings
fix macro redifinitions
fix symbol availability and ws
Remove this for now, as not found
...
commit 6595ea3420
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jul 12 10:27:02 2017 +0300
Use existing bit
commit f0bfd36cb8
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jul 12 10:21:22 2017 +0300
Updated Windows build
commit a9bd7c89f2
Merge: d1eb5ed
2b7d3fb
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jul 12 09:51:32 2017 +0300
Merge branch 'master' into sccp
* master: (27 commits)
Fixed compilation error
Remove debug code
We need to check for the length here too, or we crash and no one likes that! :(
* Implemented #65187 (exif_read_data/thumbnail: add support for stream resource) * ext/exif now uses FAST_ZPP
Remove extraneous configure flag
Revert "remove excessive checks and fix warnings"
parametrize zip names
Upgrade bundled PCRE to 8.41
Updated NEWS file with LDAP changes
Fixed removing all controls by passing an empty array to ldap_set_option
Filled in NEWS file with ext/ldap last modifications
change order, allow to build as shared extension
restore file deleted by mistake in a merge commit
Fix segfault in php_stream_context_get_option call
remove excessive checks and fix warnings
fix macro redifinitions
fix symbol availability and ws
Remove this for now, as not found
fix authors
NEWS for Sodium
...
commit 8c0de53e5f
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Jul 11 21:54:36 2017 +0300
Initial integration of Dead Code Elimination (DCE) and unused variable removing passes, originally developed in https://github.com/nikic/php-src/tree/opt , into DFA optimization pass.
commit d1eb5ede3a
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Jul 11 12:19:11 2017 +0300
Proper SSA reconstruction for "$a = $a;"
commit 4872d139b5
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Jul 11 11:57:33 2017 +0300
Replace conditions, that should be always true, by ZEND_ASSERT()
commit 9915b1f5cd
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Jul 11 11:56:51 2017 +0300
Fixed pass name
commit d26ff1b88d
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Jul 11 11:55:47 2017 +0300
Don't create identical predecessors
commit 0625fbe32b
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Jul 11 09:36:07 2017 +0300
Update unreachable blocks.
commit 9d7d409e6a
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Jul 11 09:28:49 2017 +0300
Keep consistent cfg.map[]
commit 85a86e58b2
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Jul 11 02:36:14 2017 +0300
Remove unusded phi
commit d5e0f2df4c
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Jul 11 02:35:00 2017 +0300
Don't clear phi->spources[] too early.
commit a90ed34295
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon Jul 10 21:29:39 2017 +0300
Make SCCP to remove dead live ranges.
commit 320237f3d8
Merge: 63bbed5
7be2637
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon Jul 10 17:35:21 2017 +0300
Merge branch 'master' into sccp
* master:
Fixed memory leak introduced by 7cb5bdf64a
eliminate casts
remove checks for eol dependencies
improve test
Small fix in ext/ldap, Moved vars definitions to the beginning of the block using them
ZipArchive implements countable, added ZipArchive::count() method
commit 63bbed5e71
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon Jul 10 17:01:15 2017 +0300
Evaluation of few more constant functions
commit 07f45d8a3d
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon Jul 10 16:22:47 2017 +0300
Properly unlinking dead blocks from predecessors/successors and dominators
commit 502002aa6e
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon Jul 10 13:33:14 2017 +0300
Replacel constant JMPZ/NZ/ZNZ by JMP or NOP
commit 3253e61b66
Merge: e7f69f0
161c378
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon Jul 10 12:22:39 2017 +0300
Merge branch 'master' into sccp
* master:
Revert "Fixed bug #74878 "
Upgrading note for #74837
Fixed bug #74837 - NEWS
Implement Countable for DomNodeList and DOMNamedNodeMap (Request #74837 )
Fix #49649 - Handle property visibility changes on unserialization
commit e7f69f07fc
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon Jul 10 12:15:08 2017 +0300
Prevent compile-time evaluation of implode() with arguments causing run-time warnings
commit 0e882f189a
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon Jul 10 11:54:04 2017 +0300
Constant evaluation of ini_get() for some safe cases
commit 9e36a748b2
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon Jul 10 11:13:37 2017 +0300
Constant evaluation of implode()
commit e73046e266
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon Jul 10 10:51:23 2017 +0300
Fixed uninitialized value
commit f5e2e8e68c
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon Jul 10 10:05:37 2017 +0300
Remove (compact) unused constants after SCCP pass
commit f0b7bb86eb
Merge: e69d4f6
cfacf84
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon Jul 10 09:10:00 2017 +0300
Merge branch 'master' into sccp
* master: (37 commits)
#73594 tests only check the extra params if dns_get_record is successful
Fixed bug #74852 (property_exists returns true on unknown DateInterval property)
fix uninitialized var
fix comparison warning
comply with POSIX signature
fix warning
remove some casts
cleanup casts
remove useless cast
eliminate casts
sync vim mode lines in main
[ci skip] update NEWS
[ci skip] update NEWS
[ci skip] update NEWS
Fixed bug #74883 SQLite3::__construct() produces "out of memory" exception with invalid flags
Silent compiler warning
Fix test
Deprecated the read_exif_data() alias
Add myself as exif maintainer
update libs versions
...
commit e69d4f6140
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 7 12:51:41 2017 +0300
Avoid in-place modification of referenced data
commit 58f7c17978
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 7 12:33:24 2017 +0300
Use arena for temporary data.
commit 93d3e7ddc2
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 7 11:54:47 2017 +0300
Made sccp_ctx to be an "extension" of scdf_ctx and remove duplicate data.
commit f810c6f7c4
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 7 11:20:48 2017 +0300
Improved SSCP integration
commit d17ed887f3
Merge: d90805a
29653da
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 7 10:22:37 2017 +0300
Merge branch 'master' into sccp
* master:
Fixed bug #74873 (Minor BC break: PCRE_JIT changes output of preg_match()).
Fixed bug #72324 (imap_mailboxmsginfo() return wrong size)
Fix redefine warnings
Expand sb's name and capitalize my own
Write the URL on a new line, so that it is easier copyable
commit d90805a40b
Merge: 2e5e03b
fc336c7
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Jul 6 23:07:04 2017 +0300
Merge branch 'master' into sccp
* master:
Added missed dump of "main" script code
replace the stack var by a macro
[ci skip] sync NEWS
minor fix for web announce
add missing NEWS entry for #74087 and also fix the formatting
move NEWS entry to the correct place, also bump the version
commit 2e5e03b673
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Jul 6 23:03:41 2017 +0300
Call info should be removed, but at least we should prevent incorrect stack adjustment.
commit 1ee9110b35
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Jul 6 19:34:43 2017 +0300
Remove NOP instructions, introduced bvy SCCP.
This commit discloses unrelated issue caused ext/soap/tests/bug70211.phpt failure.
commit 9a2f50070d
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Jul 6 16:34:02 2017 +0300
Avoid useless iterations for first SSA variablesi, always marked BOT.
commit c57dd7c6ef
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Jul 6 16:33:46 2017 +0300
Use reference-counting
commit 90f822d68e
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Jul 6 14:00:22 2017 +0300
Support for few more opcodes
commit cffee2f7e5
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Jul 6 12:35:13 2017 +0300
Combined constants substitutaion and dead instruction removing in single pass. This eleminates substitution in dead instructions.
commit f890375c16
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Jul 6 10:34:48 2017 +0300
Use reference-counting instead of duplication
commit db0cd64dfa
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Jul 6 03:04:27 2017 +0300
Improved SCDF<->SCCP interface
- "get_feasible_successors" callback is changed into "mark_feasible_successors" and should mark necessary edges through scdf_mark_edge_feasible()
- SCDF takes care about OP_DATA instruction
- SCDF code is re-arranged to avoid repeatable checks
commit e0ad5dd489
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Jul 6 00:55:40 2017 +0300
Changed representation of "feasible_edges", using one bit per edge.
commit afee3138fe
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Jul 6 00:49:56 2017 +0300
Revert "Don't propagate unused values"
This reverts commit 84e5bfd430
.
commit 84e5bfd430
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jul 5 23:39:42 2017 +0300
Don't propagate unused values
commit d4f15b9506
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jul 5 23:39:10 2017 +0300
Don't visit the same Phi twice
commit 2558311b4d
Merge: 722a59d
7bb4ae5
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jul 5 21:51:06 2017 +0300
Merge branch 'master' into sccp
* master:
Fixed final dump "after optimizer"
commit 722a59ddb1
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jul 5 21:09:29 2017 +0300
SCCP doesn't support VERIFY_RETURN_TYPE (ext/opcache/tests/bug73789.phpt failure)
commit 7084fade4d
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jul 5 20:37:21 2017 +0300
Fixed SSA reconstruction
commit 37ec4e0845
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jul 5 19:34:46 2017 +0300
Disable constant propagation for variables that can be modified indirectly
commit 4bb9b6526e
Merge: 6800460
73d5097
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jul 5 19:17:04 2017 +0300
Merge branch 'master' into sccp
* master: (43 commits)
Keep information about SSA variables, that may be modified indirectly.
Added constants for known ldap controls OID and tests for ldap_get/set_option for controls
Added support for controls to ldap_get_option
[ci skip] sync NEWS
NEWS for oniguruma
Patch from the upstream git https://github.com/kkos/oniguruma/issues/60 (CVE-2017-9228)
Patch from the upstream git https://github.com/kkos/oniguruma/issues/59 (CVE-2017-9229) b690371bbf97794b4a1d3f295d4fb9a8b05d402d Modified for onig 5.9.6
Patch from the upstream git https://github.com/kkos/oniguruma/issues/58 (CVE-2017-9227)
Patch from the upstream git https://github.com/kkos/oniguruma/issues/57 (CVE-2017-9224)
Patch from the upstream git https://github.com/kkos/oniguruma/issues/55 (CVE-2017-9226) b4bf968ad52afe14e60a2dc8a95d3555c543353a Modified for onig 5.9.6 f015fbdd95f76438cd86366467bb2b39870dd7c6 Modified for onig 5.9.6
valid_symbol_table removed
Improve fix for #74145
Fix wddx
Fix tests
Fixed bug #74111
Fix bug #74603 - use correct buffer size
Fix bug #74651 - check EVP_SealInit as it can return -1
Update NEWS
Fix bug #74087
Fixed parsing of strange formats with mixed month/day and time strings
...
commit 680046086c
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jul 5 16:14:38 2017 +0300
Support for few more internal functions evaluation
commit 74a29468ef
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jul 5 13:42:55 2017 +0300
Disabled evaluation of strpos() with empty needle.
commit e8908946e5
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jul 5 13:17:30 2017 +0300
Replace calls to in_array() with constant array by IN_ARRAY instruction after SCCP.
commit 4e8fa2c3dd
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jul 5 00:58:12 2017 +0300
Initial integration of Sparse Conditional Constant Propagation (SCCP), originally developed in https://github.com/nikic/php-src/tree/opt , into DFA optimization pass.
2017-07-14 14:33:34 +03:00
Dmitry Stogov
fc336c78e7
Added missed dump of "main" script code
2017-07-06 23:06:11 +03:00
Dmitry Stogov
7bb4ae59c3
Fixed final dump "after optimizer"
2017-07-05 21:48:01 +03:00
Dmitry Stogov
acffb7a080
Keep information about SSA variables, that may be modified indirectly.
2017-07-05 19:15:16 +03:00
Nikita Popov
8e0ddc89fe
Drop duplicate dtors in update_opN
...
Per new convention update_opN should no longer dtor on failure.
2017-07-04 21:23:34 +02:00
Dmitry Stogov
0965a4ef9f
Check for exceptional cases before actual constant evaluation.
2017-07-04 16:09:28 +03:00
Dmitry Stogov
6276268b77
Separate constants propagation code shatred between "first" and "block" passes into helper functions.
2017-07-04 15:10:33 +03:00
Dmitry Stogov
10dbc0b2e7
Compile/optimisation-time constants can't be circular, but in general may be reference-countable. It's better to use zval_ptr_dtor_nogc() to release them.
2017-07-04 10:43:34 +03:00
Dmitry Stogov
b685991b44
Get rid of old compatibility macros
2017-07-04 09:50:57 +03:00
Bob Weinand
2304bc2aa2
Merge branch 'PHP-7.1'
2017-07-01 11:53:00 +02:00
Bob Weinand
af7bfc71fd
Merge branch 'PHP-7.0' into PHP-7.1
2017-07-01 11:52:41 +02:00
Bob Weinand
e3cc15daf2
Fixed bug #74840 (Opcache overwrites argument of GENERATOR_RETURN within finally)
2017-07-01 11:52:03 +02:00
Dmitry Stogov
c23ffaa211
We don't have to use "persistent" heap with PHP-7 HashTable(s).
2017-06-29 09:24:07 +03:00
Tom Van Looy
04fb3f28ff
Remove superfluous semicolons
2017-06-26 00:23:25 +02:00
Nikita Popov
272a9f29f5
Merge branch 'PHP-7.1'
2017-06-23 17:33:36 +02:00
Nikita Popov
5b5a92b8b6
Fixed bug #74623
2017-06-23 17:32:45 +02:00
Nikita Popov
4948da178a
Make inference robust against infinite loop
...
Right now, if narrowing occurs on non-debug builds, inference can
easily go into an infinite loop. Prevent this, and add a pointer
that this should be reported as a bug.
2017-06-23 17:07:44 +02:00
Dmitry Stogov
f25ecdacf8
shutdown_executor() refactoring (reuse opcache fast request shutdown code)
2017-06-22 01:45:28 +03:00
Dmitry Stogov
9b201aec07
Setting CG(unclean_shutdown) in fast shutdown doesn't make a lot of sense (it was set to prevent memory leak messages, but we doesn't check memory leaks in RELEASE build anyway).
2017-06-21 16:09:21 +03:00
Dmitry Stogov
c16f954ff1
Clear alocated memory blocks, only if this is really necessary.
2017-06-21 10:37:54 +03:00
Anatol Belski
3fc1993cfc
Merge branch 'PHP-7.1'
...
* PHP-7.1:
Split requested size as expected by CreateFileMapping.
2017-06-20 15:45:34 +02:00
Anatol Belski
67f063e3ac
Merge branch 'PHP-7.0' into PHP-7.1
...
* PHP-7.0:
Split requested size as expected by CreateFileMapping.
2017-06-20 15:45:05 +02:00
Anatol Belski
6a854e2740
Split requested size as expected by CreateFileMapping.
...
Thus fixing ext\opcache\tests\log_verbosity_bug.phpt fails on 64-bit.
2017-06-20 15:40:25 +02:00
Dmitry Stogov
db4561bfff
Introduced "zif_handler" type (zif = zend internal function).
2017-06-08 16:52:39 +03:00
Dmitry Stogov
68dc754998
Avoid string reallocations in html_entity_decode() and htmlspecialchars_decode()
2017-06-06 16:09:26 +03:00
Dmitry Stogov
81a6ee9aa4
Avoid string reallocations in preg_quote()
2017-06-06 13:56:19 +03:00
Nikita Popov
e2a2e49063
Merge branch 'PHP-7.1'
2017-06-02 23:36:44 +02:00
Nikita Popov
e9ff1fac85
Revert "merge PR #2290 : enable opcache in CLI in 7.1+"
...
This reverts commit 71fe529afc
.
Without the file cache (which is not enabled by default), this has
non-trivial impact on the startup time. It also significantly
increases the baseline memory usage of PHP on CLI.
2017-06-02 23:36:20 +02:00
Dmitry Stogov
a0cc6d426f
New optimization pattern
2017-05-31 09:53:10 +03:00
Dmitry Stogov
da01fa3897
Merge branch 'PHP-7.1'
...
* PHP-7.1:
Fixed wrong condition
ext/ldap/test: Test that ldap_connect() uses defaults from ldap.conf (openldap)
ext/ldap: Allow default host from ldap.conf to work.
2017-05-31 00:41:12 +03:00
Dmitry Stogov
316aaca155
Merge branch 'PHP-7.0' into PHP-7.1
...
* PHP-7.0:
Fixed wrong condition
2017-05-31 00:40:57 +03:00
Dmitry Stogov
77cbf8a657
Fixed wrong condition
2017-05-31 00:40:33 +03:00
Dmitry Stogov
6043f76ad7
Added ZEND_FUNC_NUM_ARGS, ZEND_FUNC_GET_ARGS instructions, to implement corresponding builtin functions.
...
Special optimisation for "array_slice(INT, func_get_args())" pattern.
2017-05-30 13:23:17 +03:00
Xinchen Hui
93a5783095
Merge branch 'PHP-7.1'
...
* PHP-7.1:
Update NEWS
Fixed bug #74663 (Segfault with opcache.memory_protect and validate_timestamp)
2017-05-27 22:43:53 +08:00
Xinchen Hui
19befb1ca2
Merge branch 'PHP-7.0' into PHP-7.1
...
* PHP-7.0:
Fixed bug #74663 (Segfault with opcache.memory_protect and validate_timestamp)
2017-05-27 22:43:23 +08:00
Xinchen Hui
60912e66c8
Fixed bug #74663 (Segfault with opcache.memory_protect and validate_timestamp)
2017-05-27 22:42:27 +08:00
Dmitry Stogov
f00d1c72b4
Added ZEND_GET_CLASS, ZEMD_GET_CALLED_CLASS, ZEND_GET_TYPE instructions, to implement corresponding builtin functions.
2017-05-25 18:41:28 +03:00
Dmitry Stogov
cd953269d3
Added ZEND_COUNT instruction, to implement corresponding builtin.
2017-05-25 12:52:34 +03:00
Dmitry Stogov
89b3c9f647
Optimizer support for ZEND_IN_ARRAY
2017-05-24 23:37:35 +03:00
Dmitry Stogov
372397f518
Updated func info
2017-05-18 19:24:30 +03:00
Xinchen Hui
46b7287cc3
Merge branch 'PHP-7.1'
...
* PHP-7.1:
Added test for bug #74596
2017-05-17 22:43:14 +08:00
Xinchen Hui
d3e3bc611a
Merge branch 'PHP-7.0' into PHP-7.1
...
* PHP-7.0:
Added test for bug #74596
2017-05-17 22:43:03 +08:00
Xinchen Hui
e347b2ded6
Added test for bug #74596
2017-05-17 22:42:18 +08:00
Dmitry Stogov
a151d614ba
Added missing "successors_count" update.
2017-05-17 12:52:36 +03:00
Xinchen Hui
62a0342531
Merge branch 'PHP-7.1'
...
* PHP-7.1:
Fixed bug #74596 (SIGSEGV with opcache.revalidate_path enabled)
2017-05-16 13:22:51 +08:00
Xinchen Hui
e04b91e6e2
Merge branch 'PHP-7.0' into PHP-7.1
...
* PHP-7.0:
Fixed bug #74596 (SIGSEGV with opcache.revalidate_path enabled)
2017-05-16 13:22:43 +08:00
Xinchen Hui
89dd7fb328
Fixed bug #74596 (SIGSEGV with opcache.revalidate_path enabled)
...
Yeah, no test script is provided.. I got some troubles to make a one
2017-05-16 13:22:08 +08:00
Xinchen Hui
8cd870a9e0
Fixed hash val calculating
2017-04-19 17:15:34 +08:00
Xinchen Hui
b78b15e880
Fixed test
2017-04-18 12:50:14 +08:00
Xinchen Hui
187f42149d
Improve fix for #74456
2017-04-18 12:47:53 +08:00
Xinchen Hui
0a27a5ba8c
Merge branch 'PHP-7.1' of git.php.net:/php-src into PHP-7.1
...
* 'PHP-7.1' of git.php.net:/php-src:
Fix loop identification
2017-04-17 20:27:07 +08:00
Xinchen Hui
1837eea66d
Merge branch 'PHP-7.1'
...
* PHP-7.1:
Fixed bug #74456 (Segmentation error while running a script in CLI mode)
2017-04-17 20:26:57 +08:00
Xinchen Hui
d6315c2fbb
Fixed bug #74456 (Segmentation error while running a script in CLI mode)
...
Instead of make update_op1_by_const supports FETCH_LIST(CASE), I think
disable it is more safe for 7.1
2017-04-17 20:24:39 +08:00
Nikita Popov
4cd5e6816b
Drop dead zend_optimizer_lookup_cv() function
2017-04-17 12:20:25 +02:00
Nikita Popov
88c85cbd5c
Merge branch 'PHP-7.1'
2017-04-17 12:19:46 +02:00
Nikita Popov
abf16c18c7
Fix loop identification
...
When assigning loop headers, we should treat already detected
loops as collapsed to their loop header, instead of ignoring them.
This fixes the loop header of BB2 in mandel2 if live-range CFG
splitting is enabled.
2017-04-17 12:17:32 +02:00
Anatol Belski
2a16ba04dc
Merge branch 'PHP-7.1'
...
* PHP-7.1:
improve/fix error handling
2017-04-15 19:37:12 +02:00
Anatol Belski
039ef0143b
Merge branch 'PHP-7.0' into PHP-7.1
...
* PHP-7.0:
improve/fix error handling
2017-04-15 19:35:13 +02:00
Anatol Belski
ca543ff01c
improve/fix error handling
...
GetLastError() should not be called, if the function didn't fail.
2017-04-15 19:32:04 +02:00
Nikita Popov
7cd7305b1b
Merge branch 'PHP-7.1'
2017-04-15 12:36:02 +02:00
Nikita Popov
00c6ce0e00
Merge branch 'PHP-7.0' into PHP-7.1
2017-04-15 12:35:53 +02:00
Nikita Popov
0beccc51f1
Fix compact_literals of INIT_METHOD_CALL with CONST op1
2017-04-15 12:35:09 +02:00
Nikita Popov
7f5d47dfd1
Merge branch 'PHP-7.1'
2017-04-15 01:40:59 +02:00
Nikita Popov
6c2222796b
Improve fix for bug #74442
...
Make the check less conservative to be consistent with the other
cases.
2017-04-15 01:39:33 +02:00
Rasmus Lerdorf
e42948e6e3
Credit goes to Eric Norris for this one
2017-04-14 15:49:05 -07:00
Rasmus Lerdorf
d80df7a8bf
Credit goes to Eric Norris for this one
2017-04-14 15:48:24 -07:00
Nikita Popov
feb828ffb0
Merge branch 'PHP-7.1'
2017-04-14 22:20:48 +02:00
Nikita Popov
2f22dffd1a
Fixed bug #74442
2017-04-14 22:20:32 +02:00
Nikita Popov
81b4bfcb96
Merge branch 'PHP-7.1'
2017-04-14 22:04:07 +02:00
Nikita Popov
3ffe2cd251
Fixed bug #74431
...
If the last instruction in a block is a NOP, then `new_opline`
here won't be a copy of `opline`, it will be a copy of the last
non-NOP opline. Avoid performing a spurious update by explicitly
checking for NOP.
2017-04-14 22:03:06 +02:00
ekinhbayar
5d095f80c9
Test for bug 74431
2017-04-14 21:26:02 +02:00
Nikita Popov
07fe8616e6
Set flags on the right block
2017-04-11 00:04:07 +02:00
Nikita Popov
a4c7c55c0b
Move call/recv splitting into correct branch
2017-04-10 23:51:27 +02:00
Nikita Popov
797ee05a3c
Merge branch 'PHP-7.1'
2017-04-10 22:26:42 +02:00