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
Sebastian Bergmann
6d748b43ae
Merge branch 'PHP-7.1'
2017-03-16 19:10:23 +01:00
Sebastian Bergmann
ccc35d1903
Fugbix typo
2017-03-16 19:10:07 +01:00
Nikita Popov
7ea854b1df
Merge branch 'PHP-7.1'
2017-03-16 18:15:13 +01:00
Nikita Popov
052aa466e1
Further optimize worklist management
...
Instead of always popping the first elements, do multiple complete
iterations of the worklist until it is empty.
2017-03-16 18:11:27 +01:00
Nikita Popov
69dc088c36
Merge branch 'PHP-7.1'
2017-03-16 17:40:33 +01:00
Nikita Popov
e60515f3b8
Slightly optimize worklist management
...
Avoid scanning the worklist twice on every iteration.
2017-03-16 17:32:27 +01:00
Nikita Popov
f1f68b60f5
Optimize DJ spanning tree back-edge check
...
Instead of walking the DJ spanning tree upwards, record entry and
exit times during the DFS and use these to determine whether CJ
edges are sp-back edges.
2017-03-16 17:26:20 +01:00
Nikita Popov
6633e8492e
Sort blocks in loop identification
...
The previous implementation was doing O(blocks*levels) iterations,
which for a linear-ish domtree is O(blocks^2). Avoid this by sorting
the blocks by decreasing level upfront.
2017-03-16 16:49:36 +01: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
Dmitry Stogov
6a31872307
Merge branch 'PHP-7.1'
...
* PHP-7.1:
Fixed pointer allignment
2017-03-07 10:18:57 +03:00
Dmitry Stogov
d9231b1667
Fixed pointer allignment
2017-03-07 10:18:34 +03:00
Dmitry Stogov
b273a8cbe4
Ensure pointer alignment.
2017-03-07 09:48:18 +03:00
Dmitry Stogov
e113b6784a
Ensure pointer alignment.
2017-03-06 17:09:05 +03: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
Nikita Popov
18904aa3e2
Compact literals: Deduplicate empty array literals
2017-01-10 00:21:38 +01: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
Nikita Popov
b767370496
Merge branch 'PHP-7.1'
2016-12-31 13:34:09 +01:00
Nikita Popov
242d924e59
Fix bug #73847
2016-12-31 13:33:21 +01:00
Xinchen Hui
b6553d422d
Merge branch 'PHP-7.1'
...
* PHP-7.1:
Revert "Reorder the oplines" (Break Zend/tests/return_types/bug71092.phpt)
2016-12-21 14:27:13 +08: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
Dmitry Stogov
088dd88eeb
Merge branch 'PHP-7.1'
...
* PHP-7.1:
Fixed bug #73792 (invalid foreach loop hangs script)
Fixed bug #73789 (Strange behavior of class constants in switch/case block)
2016-12-20 16:54:28 +03:00
Xinchen Hui
6bd41a1d47
Fixed bug #73789 (Strange behavior of class constants in switch/case block)
2016-12-20 21:01:21 +08:00
Xinchen Hui
adf0256c4a
Merge branch 'PHP-7.1'
...
* PHP-7.1:
Reorder the oplines
2016-12-17 20:09:49 +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
10b037bc33
Merge branch 'PHP-7.1'
...
* PHP-7.1:
Add an assertion
2016-12-16 11:09:35 +08:00
Xinchen Hui
8ba7878f1b
Add an assertion
2016-12-16 11:09:22 +08:00
Xinchen Hui
8612ac2000
Merge branch 'PHP-7.1'
...
* PHP-7.1:
Fixed bug #73746 (Method that returns string returns UNKNOWN:0 instead)
2016-12-16 11:06:50 +08:00
Xinchen Hui
7cef66c635
Fixed bug #73746 (Method that returns string returns UNKNOWN:0 instead)
2016-12-16 11:06:27 +08:00
Xinchen Hui
9f1e456d5a
Merge branch 'PHP-7.1'
...
* PHP-7.1:
Fixed possible false assertion failure
2016-12-08 22:05:17 +08:00
Xinchen Hui
8250b3fca1
Fixed possible false assertion failure
2016-12-08 22:04:43 +08:00
Nikita Popov
683a0a0f6e
Merge branch 'PHP-7.1'
2016-12-07 23:15:02 +01:00
Nikita Popov
60249f4390
Fix propagation of QM_ASSIGN into VERIFY_RETURN_TYPE
...
VERIFY_RETURN_TYPE uses different formats for the CONST/non-CONST
cases. If we progate a CONST operand into op1, op1 should be
moved to result.
2016-12-07 23:14:46 +01:00
Nikita Popov
6c614cb14c
Merge branch 'PHP-7.1'
2016-12-06 22:26:36 +01:00
Nikita Popov
76c4a3db08
Fix bug #73668
...
Not bothering to implement special handling to get an accurate
range for this case.
2016-12-06 22:25:35 +01:00
Nikita Popov
89f8a34483
Merge branch 'PHP-7.1'
2016-12-06 22:12:01 +01:00
Nikita Popov
d7e7f74b24
Factor out common binary op code in range inference
...
Instead of repeating the same code for binary ops and their
compound assignment variants, factor the range computation out
into a separate function.
2016-12-06 22:09:44 +01:00
Nikita Popov
795cd6d3a7
Merge branch 'PHP-7.1'
2016-12-05 20:41:21 +01:00
Nikita Popov
3b79f8f408
Fix bug #73654
2016-12-05 20:41:14 +01:00
Dmitry Stogov
9c1920d9e8
Revert "Fix memory leaks with FE_RESET upon empty iterator"
...
This reverts commit 00e516e575 .
2016-12-02 11:58:36 +03:00
Dmitry Stogov
7abf3b56f5
Merge branch 'PHP-7.1'
...
* PHP-7.1:
Fixed access to uninitialized value
2016-12-01 13:26:26 +03:00
Dmitry Stogov
54244ba565
Fixed access to uninitialized value
2016-12-01 13:25:50 +03:00
Bob Weinand
00e516e575
Fix memory leaks with FE_RESET upon empty iterator
...
Solved by manually freeing and jumping to the opcode *after* FE_FREE
2016-11-30 17:44:34 +01:00