Xinchen Hui
8cd870a9e0
Fixed hash val calculating
2017-04-19 17:15:34 +08:00
Xinchen Hui
187f42149d
Improve fix for #74456
2017-04-18 12:47:53 +08:00
Nikita Popov
4cd5e6816b
Drop dead zend_optimizer_lookup_cv() function
2017-04-17 12:20:25 +02:00
Nikita Popov
ad8652818a
Implement jumptable optimization
2017-04-10 22:23:14 +02:00
Nikita Popov
da223b9500
Merge branch 'PHP-7.1'
2017-03-16 12:34:36 +01:00
Nikita Popov
9331be7d6a
Use call_map to avoid linear call lookup
2017-03-16 12:33:57 +01:00
Xinchen Hui
1760b031ea
Merge branch 'PHP-7.1'
...
* PHP-7.1:
Update NEWs
Fixed bug #74019 (Segfault with list)
2017-02-10 14:26:35 +08:00
Xinchen Hui
0b7fa040e9
Merge branch 'PHP-7.0' into PHP-7.1
...
* PHP-7.0:
Fixed bug #74019 (Segfault with list)
2017-02-10 14:25:29 +08:00
Xinchen Hui
185304a61e
Fixed bug #74019 (Segfault with list)
2017-02-10 14:24:01 +08:00
Dmitry Stogov
141d1ba980
Introduced "zend_type" - an abstraction for type-hinting representation.
2017-01-13 11:37:46 +03:00
Sammy Kaye Powers
dac6c639bb
Update copyright headers to 2017
2017-01-04 11:23:42 -06:00
Sammy Kaye Powers
478f119ab9
Update copyright headers to 2017
2017-01-04 11:14:55 -06:00
Sammy Kaye Powers
9e29f841ce
Update copyright headers to 2017
2017-01-02 09:30:12 -06:00
Xinchen Hui
82988d3e41
Revert "Reorder the oplines" (Break Zend/tests/return_types/bug71092.phpt)
...
This reverts commit a12f43ee2c
.
2016-12-21 14:24:14 +08:00
Xinchen Hui
a12f43ee2c
Reorder the oplines
...
1. we should only do the return type checking when it is really about to
return
2. for 029.php, actually, the exception threw should be discard while it
jmp into finally(it could be observed by change the return to return an array)
3. after this fix, the test 029.phpt behavior consistently with 7.0
4. good for optimizer too
2016-12-17 20:06:18 +08:00
Xinchen Hui
8ba7878f1b
Add an assertion
2016-12-16 11:09:22 +08:00
Xinchen Hui
7cef66c635
Fixed bug #73746 (Method that returns string returns UNKNOWN:0 instead)
2016-12-16 11:06:27 +08:00
Nikita Popov
3b79f8f408
Fix bug #73654
2016-12-05 20:41:14 +01:00
Nikita Popov
3c8beb16c4
Allow early-binding of ZEND_NEW args
2016-11-10 22:52:15 +01:00
Dmitry Stogov
bdd3fec7f8
Fixed incorrec type usage
2016-10-25 22:12:34 +03:00
Dmitry Stogov
01bc515b4d
Export zend_analyze_calls() to allow building call trees.
2016-10-25 17:20:27 +03:00
Dmitry Stogov
76707dc204
Don't keep dangling pointers.
2016-08-23 12:58:46 +03:00
Dmitry Stogov
f2e4fc307b
Fixed ext/opcache/tests/bug70207.phpt
2016-06-30 21:50:57 +03:00
Dmitry Stogov
5ae07dc34a
Fixed incorrect constant propagation
2016-06-30 20:48:16 +03:00
Dmitry Stogov
d898344663
Inline simple constant functions
2016-06-30 17:04:25 +03:00
Nikita Popov
3be92120ba
Fix handling of parse_str() with unpack in optimizer
2016-06-05 22:16:15 +02:00
Nikita Popov
70f0546885
Don't optimize special dynamic calls to non-dynamic
...
As it drops the warning. This is more problematic with constant
propagation, as tests would fail.
Extract a zend_optimizer_classify_function() function, as its now
needed by zend_cfg and update_opN.
2016-06-05 22:04:36 +02:00
Sara Golemon
51b3be7e76
Correct inline comments regarding pass1/pass2 actions
...
BRK/CONT no longer reach the optimizing following 8542befa7b
Pre-evaluate constant function calls is in pass1, not pass2
2016-05-31 22:41:37 +00:00
Dmitry Stogov
b111da96d9
Split ZEND_SEND_VAR_NO_REF into ZEND_SEND_VAR_NO_REF and ZEND_SEND_VAR_NO_REF_EX (similar to ZEND_SEND_VAL) and remove ZEND_ARG_* flags.
2016-05-31 04:06:00 +03:00
Nikita Popov
d94b9545d6
Support known static/method calls in call graph
...
For this purpose extract the function lookup call into a helper
zend_optimizer_get_called_func().
2016-04-27 17:10:45 +02:00
Dmitry Stogov
3444c1ae24
Use return type hints for type inference and eliminate useless VERIFY_RETRUN_TYPE opcodes.
2016-04-07 17:34:53 +03:00
Dmitry Stogov
681de72554
Enable DFA pass by default
2016-03-17 22:37:20 +03:00
Dmitry Stogov
fc7cbdce61
Squashed commit of the following:
...
commit 98471821a8
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Mar 17 21:56:04 2016 +0300
Fixed wrong constant usage
commit 8183b811e7
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Mar 17 21:10:23 2016 +0300
Added ability to serialize and serialize opcode handlers for file-cache
commit 3516b261de
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Mar 17 10:11:59 2016 +0300
Added missed file
commit f4475a2360
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Mar 17 10:00:45 2016 +0300
Transparently introduce type-specialized opcode handlers.
This affects only PHP VM, and doesn't change anything else.
2016-03-17 22:00:27 +03:00
Xinchen Hui
73e8c08788
Sorry for that... Merged by accident....
...
Revert "Transparently introduce type-specialized opcode handlers."
This reverts commit 59d00b8bcc
.
2016-03-17 11:59:15 +08:00
Dmitry Stogov
59d00b8bcc
Transparently introduce type-specialized opcode handlers.
...
This affects only PHP VM, and doesn't change anything else.
2016-03-16 03:36:58 +03:00
Xinchen Hui
14fec3adf9
Suppress warnings
2016-03-09 18:01:29 +08:00
Xinchen Hui
49399359c6
Restore to the first version fix(sorry, mis-read the codes)
2016-02-15 13:47:52 +08:00
Xinchen Hui
b3f5f5f1be
Reset op_array->live_range if it is removed all by optimization
2016-02-15 12:09:52 +08:00
Xinchen Hui
ab3a820aa3
Revert "Fixed segfault in file cache serialize if live range is empty after"
...
This reverts commit 2661a47479
.
2016-02-15 12:09:13 +08:00
Xinchen Hui
2661a47479
Fixed segfault in file cache serialize if live range is empty after
...
optimiaztion
2016-02-15 12:07:43 +08:00
Dmitry Stogov
4095d5f245
Cleanup OP_DATA usage. Now only first operand of OP_DATA is used for ASSIGN_DIM, ASSIGN_OBJ and ASSIGN_OP (DIM/OBJ) instructions.
2016-02-09 13:12:57 +03:00
Xinchen Hui
63fb2b7118
Improve the names
2016-01-25 16:00:10 +08:00
Lior Kaplan
3d5438bf7b
Merge branch 'PHP-7.0'
...
* PHP-7.0:
Update header to PHP Version 7
Happy new year (Update copyright to 2016)
Happy new year (Update copyright to 2016)
2016-01-01 20:04:31 +02:00
Lior Kaplan
ed35de784f
Merge branch 'PHP-5.6' into PHP-7.0
...
* PHP-5.6:
Happy new year (Update copyright to 2016)
2016-01-01 19:48:25 +02:00
Lior Kaplan
49493a2dcf
Happy new year (Update copyright to 2016)
2016-01-01 19:21:47 +02:00
Nikita Popov
d77b74a1f3
Use ZEND_HASH_FOREACH
2015-12-26 23:43:33 +01:00
Dmitry Stogov
b3d0178915
Rearrange code to enable inner precedure inference
2015-12-24 19:05:27 +03:00
Dmitry Stogov
b4def0ee88
Added call-graph analyses
2015-12-24 14:30:41 +03:00
Nikita Popov
88eae43ff9
Remove uses of VARs in extended_value
...
The DECLARE_(ANON_)INHERITED_CLASS(_DELAYED) opcodes were
referencing the parent ce VAR through extended_value. This is
hacky and we can't track the def-use chain in SSA.
To avoid this, the layout of declaration opcodes is changed
as follows: op1 points to the lcname and rtd_key literals, in
that order. (For anon/lambda declarations only one of lcname or
rtd_key is present.) This frees up op2, which is now used to
reference the parent ce VAR in inheriting declarations. The
jmp offset for anon class declarations is moved frop op2 to
extended_value.
The changes were applied both to class and function declarations
to keep everything symmetric.
2015-12-21 14:44:42 +01:00
Dmitry Stogov
c88ffa9a56
Added e-SSA based DFA optimisation framework (incomplete)
2015-12-16 00:49:44 +03:00