History log of /PHP-7.1/ext/opcache/Optimizer/zend_inference.c (Results 51 – 75 of 104)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 2710ce22 28-Jun-2016 Nikita Popov

Remove assert for now


Revision tags: php-7.1.0alpha2, php-7.0.8, php-5.6.23, php-5.5.37
# cdd58edf 16-Jun-2016 Nikita Popov

More type inferences fixes


# 14331620 21-Jun-2016 Dmitry Stogov

Fixed compilation warnings


# 811dfba4 16-Jun-2016 Nikita Popov

More type inference fixes


# ff363e2e 15-Jun-2016 Dmitry Stogov

Implemented RFC: Replace "Missing argument" warning with "Too few arguments" exception
Squashed commit of the following:

commit 8b45fa2acb8cd92542a39e1e4720fe1f4fabc26c
Author: Dmitr

Implemented RFC: Replace "Missing argument" warning with "Too few arguments" exception
Squashed commit of the following:

commit 8b45fa2acb8cd92542a39e1e4720fe1f4fabc26c
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Jun 16 01:52:50 2016 +0300

Separate slow path of ZEND_RECV into a cold function.

commit 9e18895ee59c64c93a96b1ba3061355c4663e962
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jun 15 23:26:28 2016 +0300

Required argument can't be IS_UNDEF anymore.

commit 662db66e3943d4455c65e4f987bb54abf724ecb2
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue May 31 17:14:50 2016 +0300

Replace "Missing argument" warning by "Too few arguments" exception.

show more ...


# a9512af8 15-Jun-2016 Dmitry Stogov

Implemented RFC: Fix inconsistent behavior of $this variable
Squashed commit of the following:

commit bdd3b6895c3ce3eacfcf7d4bf4feb8dfa61801fd
Author: Dmitry Stogov <dmitry@zend.com>

Implemented RFC: Fix inconsistent behavior of $this variable
Squashed commit of the following:

commit bdd3b6895c3ce3eacfcf7d4bf4feb8dfa61801fd
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Jun 16 00:19:42 2016 +0300

Fixed GOTO VM

commit 2f1d7c8b89ce821086d357cf65f629f040a85c03
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jun 15 21:01:57 2016 +0300

Removed unused variable

commit cf749c42b0b1919f70b1e7d6dcbfff76899506af
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jun 15 19:06:16 2016 +0300

Protection from $this reassign through mb_parse_str()

commit 59a9a6c83c66b666971e57f1173b33a422166efd
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jun 15 18:14:50 2016 +0300

Added type inference rule for FETCH_THIS opcode

commit 73f8d14a856f14a461430b3c7534ab2ce870cbf6
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jun 15 18:11:18 2016 +0300

Restored PHP-7 behavior of isset($this->foo).
It throws exception if not in object context.
Removed useless opcode handlers.

commit fa0881381e8ae97e022ae5d1ec0851c952f33c82
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue May 31 12:25:47 2016 +0300

Changed "Notice: Undefined variable: this" into "Exception: Using $this when not in object context".

commit e32cc528c0f2c97963d8ec83eff0269f1f45af18
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue May 24 02:02:43 2016 +0300

Throw exception on attempt to re-assign $this through extract() and parse_str().

commit 41f1531b52113ec8a4c208aa6b9ef50f1386bb3f
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon May 23 22:18:36 2016 +0300

Fixed inconsistent $this behavior

show more ...


Revision tags: php-5.6.23RC1
# fba6f90a 08-Jun-2016 Nikita Popov

Fix type inference bugs

* Add proper array_key_any|array_of_any|array_of_ref in some more
places
* strlen() on objects may be null
* IS fetch on string dim may be null


# d1298725 15-Jun-2016 Dmitry Stogov

Fixed mistakes in type inference rules.


# 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.


12345