Commit Graph

748 Commits

Author SHA1 Message Date
Dmitry Stogov
9044f491cc Use do_alloca() instead of alloca() 2015-12-16 04:59:05 +03:00
Dmitry Stogov
e797871319 Fallbuck to simple dump format if CFG wasn't constructed 2015-12-16 04:57:51 +03:00
Dmitry Stogov
c88ffa9a56 Added e-SSA based DFA optimisation framework (incomplete) 2015-12-16 00:49:44 +03:00
Sebastian Bergmann
29a2c64339 Fugbix typo 2015-12-15 09:16:46 +01:00
Bob Weinand
6694ecdb9d Fix live_range updates on ZEND(_FE)_FREE opcodes in block_pass 2015-12-14 23:40:28 +01:00
Rasmus Lerdorf
a63f33b282 Support uwsgi sapi in opcache 2015-12-14 06:11:00 -08:00
Nikita Popov
d5597fa01f Merge branch 'PHP-7.0' 2015-12-14 00:29:57 +01:00
Nikita Popov
7dc5bc5063 Do not swap operands in array addition
As we support constant array operands nowadays, the original check
didn't work anymore.
2015-12-14 00:29:05 +01:00
Dmitry Stogov
1fdb63fbd9 ws fixes 2015-12-11 17:40:23 +03:00
Dmitry Stogov
21ba287c3c dos2unix 2015-12-11 17:29:42 +03:00
Dmitry Stogov
f243aaf985 Added e-SSA based DFA optimisation framework (incomplete) 2015-12-11 17:24:55 +03:00
Dmitry Stogov
061a90f8d1 Describe special meaning of IS_UNUSED oprerand 2015-12-11 02:31:28 +03:00
Dmitry Stogov
dc36810993 Use more compact description encoding schema to free some bits 2015-12-11 01:45:26 +03:00
Dmitry Stogov
cba1a8498c Improve Optimizer debugging facility (print the meaning of extended_value) 2015-12-11 00:47:02 +03:00
Nikita Popov
3d4a2d2002 Merge branch 'PHP-7.0'
Conflicts:
	Zend/zend_vm_def.h
	Zend/zend_vm_execute.h
2015-12-10 18:24:29 +01:00
Nikita Popov
798d168d73 Make update_opN_const implementation symmetric
So the main structure is the same...
2015-12-10 18:18:10 +01:00
Nikita Popov
37f3425263 Fix Foo::${42} and similar
Fixes segfault on direct use, segfault on opcache evaluated use,
leak on temporary use.

Fixes analogeous segfault for ${42} on opcache eval as well.
2015-12-10 18:14:40 +01:00
Dmitry Stogov
3b5c844757 Initialize bitset before processing the seconf BB (we skip the first one) 2015-12-10 11:29:53 +03:00
Dmitry Stogov
fd20e6cee6 Apply local optimizatons to extended bacic block (this allows some optimizarions across few following BBs). 2015-12-10 01:17:35 +03:00
Dmitry Stogov
7fd7734e58 Explain the disabled optimization pattern 2015-12-09 22:22:07 +03:00
Dmitry Stogov
4fd30c9565 Improve debugging of non-local variables 2015-12-09 17:21:57 +03:00
Dmitry Stogov
d2597ad20b Improved optimizer dubugging facility 2015-12-09 14:52:00 +03:00
Dmitry Stogov
78fb8118ec Merge branch 'PHP-7.0'
* PHP-7.0:
  More verbose error messages
2015-12-09 13:35:31 +03:00
Dmitry Stogov
4b16082e94 More verbose error messages 2015-12-09 13:34:45 +03:00
Dmitry Stogov
d6f3d4b50c Fixed formating 2015-12-09 13:27:31 +03:00
Dmitry Stogov
44c5fbbc07 Fixed other issues with empty block handling 2015-12-09 10:58:42 +03:00
Xinchen Hui
245a8c3cdf end is unsigned, this was broken if start == end == 0 2015-12-09 12:18:25 +08:00
Dmitry Stogov
404e003cf1 Delete empty live-ranges 2015-12-09 05:16:30 +03:00
Dmitry Stogov
2cc2396f84 Fixed compilation with enabled internal debuging 2015-12-08 18:12:02 +03:00
Bob Weinand
a11805a4d9 PHP_MD5_CTX is now always used due to fix for #71204 2015-12-08 15:23:14 +01:00
Bob Weinand
d7928aae0a PHP_MD5_CTX is now always used due to fix for #71204 2015-12-08 15:22:25 +01:00
Dmitry Stogov
a75c195000 Implemented the RFC Support Class Constant Visibility.
Squashed commit of the following:

commit f11ca0e7a5
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Tue Dec 8 12:38:42 2015 +0300

    Fixed test expectation

commit 211f873f54
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Tue Dec 8 12:28:38 2015 +0300

    Embed zend_class_constant.flags into zend_class_constants.value.u2.access_flags

commit 51deab84b2
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Mon Dec 7 11:18:55 2015 +0300

    Fixed issues found by Nikita

commit 544dbd5b47
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Sat Dec 5 02:41:05 2015 +0300

    Refactored immplementation of https://wiki.php.net/rfc/class_const_visibility
    @reeze created an RFC here and I emailed internals here and didn't get any responses positive/negative.
2015-12-08 12:40:42 +03:00
Anatol Belski
4aec8bcfa9 Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS
  Fixed bug #71024 Unable to use PHP 7.0 x64 side-by-side with PHP 5.6 x32 on the same server
2015-12-07 22:55:24 +01:00
Anatol Belski
7c981192eb Fixed bug #71024 Unable to use PHP 7.0 x64 side-by-side with PHP 5.6 x32 on the same server 2015-12-07 22:53:35 +01:00
Dmitry Stogov
3d8fdd5d6e Fixed potential memory leaks 2015-12-07 18:25:25 +03:00
Xinchen Hui
badce8c49a Merge branch 'PHP-7.0' 2015-12-01 10:35:48 +08:00
Xinchen Hui
ed4b887cf6 Fixed bug #70991 (zend_file_cache.c:710: error: array type has incomplete element type) 2015-12-01 10:35:32 +08:00
Xinchen Hui
cb5af748b1 Merge branch 'PHP-7.0' 2015-11-27 19:12:37 -08:00
Xinchen Hui
5af61aa1cc Space 2015-11-27 19:12:26 -08:00
Xinchen Hui
f9a56e00f6 Merge branch 'PHP-7.0' 2015-11-27 07:31:19 -08:00
Xinchen Hui
e9a8d7ff1d Fixed bug #70977, #70973 (Segmentation fault with opcache.huge_code_pages=1) 2015-11-27 07:30:37 -08:00
Dmitry Stogov
2e6cf2710a Fixed compilation warning 2015-11-26 11:27:24 +03:00
Xinchen Hui
07a05836de Merge branch 'PHP-7.0' 2015-11-25 20:20:51 +08:00
Xinchen Hui
9376e8213c ZEND_SPACESHIP supports 2015-11-25 20:20:05 +08:00
Xinchen Hui
1e9fcb49ac conflicts variable name 2015-11-20 19:03:18 -08:00
Dmitry Stogov
4d49736155 cleanup 2015-11-21 01:19:45 +03:00
Dmitry Stogov
02fad0414b Fixed wrong BB.flags initialization 2015-11-20 23:32:27 +03:00
Dmitry Stogov
b3393baa5d Refactored CFG based optimization using new CFG representation.
Squashed commit of the following:

commit 907533390678f58eac738040ef62a40788048bef
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Fri Nov 20 21:25:28 2015 +0300

    cleanup

commit 82f7e6f5bb434f12e9fdf45f597be351527f383c
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Fri Nov 20 21:22:01 2015 +0300

    Update build system

commit 8fd83d843fde3f486692de4e2c6b7d64d4192704
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Fri Nov 20 20:50:32 2015 +0300

    Reachable blocks can't be empty

commit 5822a36269833930a35cb3547222357118b11310
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Fri Nov 20 19:11:02 2015 +0300

    added missing constraints

commit 2d0c00b243479924de0260ae8d80d624c36994a3
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Fri Nov 20 19:03:12 2015 +0300

    optimization

commit 29d1e5eb210c51b052cac4d6c232aaa2c724dbbb
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Fri Nov 20 18:34:11 2015 +0300

    Added missing optimization patterns

commit 38dd3b3f2459f5193c742633213f41d78326ea28
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Fri Nov 20 17:47:06 2015 +0300

    zend_optimize_block() refactoring

commit 3dc97bd1f6d433dff0617338382347b6d0c08f84
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Fri Nov 20 14:30:32 2015 +0300

    We don't use CFG back-references anymore

commit 2242c9e0aa741d287146ad43179650796f199f2d
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Fri Nov 20 14:16:03 2015 +0300

    Consistent naming

commit 64f2856716069390ed7703ac88905cebf5e04023
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Fri Nov 20 13:29:32 2015 +0300

    Optimization and separate building of direct CFG from predecessrs calculation

commit 9389be4869b13ec45df5dbd443015d2ac539a347
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Fri Nov 20 10:44:19 2015 +0300

    Use CFG without back references (incomplete, but works)

commit 3d3ecd4b883959cf7b86c33622183295f913924e
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Fri Nov 20 00:50:09 2015 +0300

    Fixed iteration in reverse order

commit 52f7fde0c3dfa4b4591519828ebdb238c2377936
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Thu Nov 19 18:35:09 2015 +0300

    Separate debugging code into zend_dump.c

commit 4193a039ea96bae41baf97c6e458f419e8dbf9c5
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Thu Nov 19 17:22:04 2015 +0300

    Remove unused code

commit 4228fdc57d8d120e1dad4e4d44045fa1a6f06fe0
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Thu Nov 19 17:21:20 2015 +0300

    Remove dead live-ranges only on assembling basic blocks

commit 9a4a7966edf19b92678876f85565700694205598
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Thu Nov 19 15:26:29 2015 +0300

    New CFG representation (incomplete)
2015-11-20 22:06:36 +03:00
Dmitry Stogov
d6308afce9 Proper optmisation of "goto" into the middle of "try" block. 2015-11-19 11:19:06 +03:00
Dmitry Stogov
df63ec564e minor fixes 2015-11-18 23:03:20 +03:00