History log of /PHP-7.2/ext/opcache/Optimizer/zend_inference.c (Results 101 – 125 of 146)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 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 ...


123456