#
04688951 |
| 07-Jun-2016 |
Nikita Popov |
Add support for "instanceof" pi nodes
|
#
9877d8f0 |
| 07-Jun-2016 |
Nikita Popov |
Use union for pi constraints This will make it easier to extend pi constraints without impacting structure sizes.
|
#
0dc772c9 |
| 11-Jun-2016 |
Aaron Piotrowski |
Add iterable type to opcache
|
#
be37de1f |
| 07-Jun-2016 |
Nikita Popov |
Use LCA for object(ce) type joins For B, C extending A the join of object(B) and object(C) should be object(instanceof A). For simplicity we only handle the class hierarchy, as compu
Use LCA for object(ce) type joins For B, C extending A the join of object(B) and object(C) should be object(instanceof A). For simplicity we only handle the class hierarchy, as computing the least common unique ancestor for interfaces would be more involved. Also ignore phi sources that don't have an object type: The join of null and object(A) is now null|object(A) rather than null|object.
show more ...
|
Revision tags: php-7.0.8RC1, php-7.1.0alpha1 |
|
#
d8a23708 |
| 06-Jun-2016 |
Nikita Popov |
Cleanup
|
#
80b39b49 |
| 06-Jun-2016 |
Dmitry Stogov |
Improve type narrowing (check only SSA definitions).
|
#
543649bd |
| 05-Jun-2016 |
Nikita Popov |
Fix correctness issues with type narrowing Fixes bug #72335.
|
#
b111da96 |
| 31-May-2016 |
Dmitry Stogov |
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.
|
Revision tags: php-5.6.22, php-5.5.36, php-7.0.7 |
|
#
e745b4ca |
| 18-May-2016 |
Nikita Popov |
Replace BB end with BB len And support empty blocks everywhere.
|
#
dd8379e0 |
| 14-May-2016 |
Nikita Popov |
Inference: $a[]= results in long keys
|
#
6079ba4b |
| 14-May-2016 |
Nikita Popov |
Inference: Fix undef handling for binary ops We need to be careful about correctly handling that undef results in a null value. Otherwise, apart from simply generating incorrect resu
Inference: Fix undef handling for binary ops We need to be careful about correctly handling that undef results in a null value. Otherwise, apart from simply generating incorrect results, we may also end up performing non-monotonic lattice transitions, thus causing an infinite type inference loop (see test).
show more ...
|
#
773b3778 |
| 14-May-2016 |
Nikita Popov |
Inference: Use common handling for compound assign ops Extract the inference code for binary operators and then handle all ASSIGN_* opcodes the same way.
|
#
c5160d78 |
| 14-May-2016 |
Nikita Popov |
Add COPY_SSA_OBJ_TYPE macro Use it consistently in the ASSIGN_* implementations, previously it was only present in ASSIGN_ADD.
|
#
94d09163 |
| 14-May-2016 |
Nikita Popov |
Fix & improve assign_dim inference Extract a helper function for handling ASSIGN_DIM and ASSIGN_* with ASSIGN_DIM ev uniformly. Previously the code was copy pasted for each ASSIGN_*
Fix & improve assign_dim inference Extract a helper function for handling ASSIGN_DIM and ASSIGN_* with ASSIGN_DIM ev uniformly. Previously the code was copy pasted for each ASSIGN_* op, but the variable names were not correctly adjusted (tmp vs orig), so the type inference result was wrong. Also sligthly improve handling: * Result cannot be false, will always be converted to array. * If the dim is a CONST string operand, we don't have to assume numeric strings. * If the inserted value may be undef, the array may contain null.
show more ...
|
Revision tags: php-5.6.22RC1, php-7.0.7RC1 |
|
#
172d8552 |
| 04-May-2016 |
Dmitry Stogov |
Fixed type inference rules.
|
#
0615c59a |
| 30-Apr-2016 |
Nikita Popov |
Mark all $php_errormsg as refs to inhibit optimization
|
Revision tags: php-7.0.6, php-5.6.21, php-5.5.35 |
|
#
55caaac7 |
| 20-Apr-2016 |
Nikita Popov |
Make MAY_BE_ERROR handling more accurate This ended up causing weird things like MAY_BE_ERROR CVs. Also make sure that ASSIGN result isn't MAY_BE_REF.
|
Revision tags: php-5.6.21RC1 |
|
#
4f726be6 |
| 16-Apr-2016 |
Nikita Popov |
Fix SSA for SEND_UNPACK
|
Revision tags: php-7.0.6RC1 |
|
#
aed42496 |
| 07-Apr-2016 |
Dmitry Stogov |
Fixed handling of return statement without a value.
|
#
3444c1ae |
| 07-Apr-2016 |
Dmitry Stogov |
Use return type hints for type inference and eliminate useless VERIFY_RETRUN_TYPE opcodes.
|
#
82050dfd |
| 01-Apr-2016 |
Dmitry Stogov |
fixed type inference mistake (typo)
|
#
f3c70f11 |
| 31-Mar-2016 |
Dmitry Stogov |
Manual CSE
|
Revision tags: php-5.6.20, php-5.5.34, php-7.0.5 |
|
#
fc49f1c4 |
| 17-Mar-2016 |
Kalle Sommer Nielsen |
Fix build
|
Revision tags: php-5.6.20RC1, php-7.0.5RC1, php-5.6.19 |
|
#
47391961 |
| 02-Mar-2016 |
Nikita Popov |
Mark uses in UNSET_VAR op1 + FE_FETCH_R op2 as no_val
|
Revision tags: php-5.5.33, php-7.0.4 |
|
#
a1c48d5e |
| 27-Feb-2016 |
Nikita Popov |
Various SSA-related tweaks * Add FETCH_LIST to inference * Restrict JMP_SET/COALESCE result type * Fix typos in range inference * Add const annotations in zend_ssa.h * For pi
Various SSA-related tweaks * Add FETCH_LIST to inference * Restrict JMP_SET/COALESCE result type * Fix typos in range inference * Add const annotations in zend_ssa.h * For pi statements dump the associated predecessor block * If type can be both true and false, dump bool instead
show more ...
|