Dmitry Stogov
8c7aa88e2d
Fixed crash introduced by bfaf662ac2
2018-11-07 09:36:21 +03:00
Dmitry Stogov
bfaf662ac2
Micro-optimization
2018-11-06 17:04:17 +03:00
Zeev Suraski
67e0138c0d
Future-proof email addresses...
2018-11-01 18:30:28 +02:00
Dmitry Stogov
ab8094c666
Pack zend_constant.flags and zend_constant.module_number into reserved space inside zend_constant.value.
2018-07-26 12:58:07 +03:00
Dmitry Stogov
af341213f7
se zval_ptr_dtor_str() instead of zend_string_release_ex(Z_STR(*), 0)
2018-07-04 12:08:07 +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
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
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
52fddfcca2
Avoid useless iterations
2018-03-13 16:07:18 +03:00
Nikita Popov
b0af9ac733
Avoid live range references in opcodes
...
Don't store the live range of the freed variable for FREE_ON_RETURN
frees, instead look it up at runtime. As this is an extremely
unlikely codepath (in particular, it requires a loop variable with
a throwing destructor), saving the runtime lookup of the live range
is not worth the extra complexity this adds everywhere else.
2018-02-16 21:30:48 +01:00
Nikita Popov
07ad75ca96
Merge branch 'PHP-7.2'
2018-02-16 20:31:01 +01:00
Nikita Popov
0674d677bc
Merge branch 'PHP-7.1' into PHP-7.2
2018-02-16 20:30:49 +01:00
Nikita Popov
372bf8a923
Fixed bug #75969
...
Move NOP stripping out of zend_optimize_block: NOP stripping may
move instructions, which may invalidate a Tsource shared across
an extended basic block.
2018-02-16 20:30:03 +01:00
Dmitry Stogov
ca035f26aa
Moved "zval.u2.cache_slot" into free room of "zend_op"
2018-02-05 19:41:47 +03:00
Dmitry Stogov
ba298725d1
Changed CATCH instruction format (extended_value moved into op2, op2 into result, result into extended_value)
2018-01-31 22:39:30 +03:00
Dmitry Stogov
bf7176c70f
Use reference-counting instead of duplication and separation, if really necessary.
2018-01-19 01:03:24 +03:00
Dmitry Stogov
c5c9a69447
Use ZVAL_DUP() instead of zval_copy_ctor()
2018-01-17 14:59:15 +03:00
Dmitry Stogov
c9034c3b33
Get rid of zend_op_array.early_binding
2018-01-11 19:15:52 +03:00
Xinchen Hui
a6519d0514
year++
2018-01-02 12:57:58 +08:00
Xinchen Hui
7a7ec01a49
year++
2018-01-02 12:55:14 +08:00
Xinchen Hui
ccd4716ec7
year++
2018-01-02 12:53:31 +08:00
David Walker
6d4de4cf05
Implement list() reference assignments
...
Support list() reference assignments of the form:
list(&$a, list(&$b, $c)) = $d;
RFC: https://wiki.php.net/rfc/list_reference_assignment
2017-12-09 13:39:52 +01:00
Xinchen Hui
d042d1d8e0
Cleanup cfg flags & Added ZEND_FUNC_HAS_EXTENED_INFO
2017-10-18 17:03:07 +08:00
Dmitry Stogov
f63bfea105
Optimize POST_INC_OBJ + FREE into PRE_INC_OBJ (in the same way as simple POST_INC)
2017-09-18 14:56:55 +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
5274cefb4d
Remove live ranges
2017-07-19 13:06:25 +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
Dmitry Stogov
89b3c9f647
Optimizer support for ZEND_IN_ARRAY
2017-05-24 23:37:35 +03:00
Dmitry Stogov
a151d614ba
Added missing "successors_count" update.
2017-05-17 12:52:36 +03:00
Xinchen Hui
187f42149d
Improve fix for #74456
2017-04-18 12:47:53 +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
ad8652818a
Implement jumptable optimization
2017-04-10 22:23:14 +02:00
Nikita Popov
d1a012b602
Support more than two successors in opcache CFG
2017-04-10 22:18:24 +02:00
Nikita Popov
eeb6cdf810
Merge branch 'PHP-7.1'
2017-04-10 22:12:05 +02:00
Nikita Popov
1df3099f2f
Merge branch 'PHP-7.0' into PHP-7.1
2017-04-10 22:11:47 +02:00
Nikita Popov
6f950e83eb
Fix JMPZ+JMP => NOP+JMP optimization
2017-04-10 22:09:34 +02:00
Nikita Popov
d6f70f0ee3
Disable block pass for large functions
...
(Backport of 7ea261685f to 7.0.)
2017-03-28 22:07:37 +02:00
Nikita Popov
d3aac6f810
Merge branch 'PHP-7.1'
2017-03-17 12:54:11 +01:00
Nikita Popov
7ea261685f
Disable block pass for large functions
...
This is the last fix for bug #74250 .
2017-03-17 12:49:20 +01:00
Xinchen Hui
330a7b62c3
Fixed bug #74152 (if statement says true to a null variable)
2017-02-23 12:33:17 +08: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