1
0
mirror of https://github.com/php/php-src.git synced 2026-03-26 01:02:25 +01:00
Files
archived-php-src/ext/opcache/tests
Nikita Popov 0826a54836 Fix DCE of FREE of COALESCE
When encountering the following SSA graph:

    BB1:
    #2.T1 [string] = COALESCE #1.CV0($str) [null, string] BB2

    BB2:
    #5.T1 [string] = QM_ASSIGN string("")

    BB3:
    #7.X1 [string] = Phi(#2.X1 [string], #5.X1 [string])
    FREE #7.T1 [string]

We would currently determine that #7, #5 are dead, and eliminate
the FREE and QM_ASSIGN. However, we cannot eliminate #2, as
COALESCE is also responsible for control flow.

Fix this my marking all non-CV phis as live to start with. This
can be relaxed to check the kind of the source instruction, but
I couldn't immediately come up with a case where it would be
useful.
2021-04-08 17:01:13 +02:00
..
2021-04-08 17:01:13 +02:00
2019-07-01 17:21:16 +02:00
2019-07-01 17:21:16 +02:00
2015-06-20 09:35:02 +02:00
2019-07-22 11:39:52 +02:00
2019-07-22 11:39:52 +02:00
2013-11-26 12:13:42 +04:00
2019-05-21 11:17:51 +02:00
2016-02-28 11:53:21 +01:00
2014-11-01 22:29:55 +08:00
2017-02-03 18:52:57 +01:00
2015-05-22 11:50:55 +08:00
2019-07-01 17:21:16 +02:00
2015-12-23 03:52:01 +03:00
2019-07-01 17:21:16 +02:00
2019-07-01 17:21:16 +02:00
2019-07-01 17:21:16 +02:00
2019-07-01 17:21:16 +02:00
2019-07-01 17:21:16 +02:00
2019-07-01 17:21:16 +02:00
2019-07-01 17:21:16 +02:00
2017-05-17 22:42:18 +08:00
2019-07-01 17:21:16 +02:00
2019-07-01 17:21:16 +02:00
2017-10-13 18:21:41 +08:00
2019-07-01 17:21:16 +02:00
2019-07-01 17:21:16 +02:00
2017-12-16 21:24:26 +01:00
2017-12-16 22:04:18 +01:00
2019-07-01 18:11:13 +02:00
2019-07-01 17:21:16 +02:00
2019-07-01 17:21:16 +02:00
2019-07-01 17:21:16 +02:00
2019-07-01 17:21:16 +02:00
2019-07-01 17:21:16 +02:00
2019-07-01 17:21:16 +02:00
2019-07-01 17:21:16 +02:00
2019-07-01 17:21:16 +02:00
2019-08-13 11:19:58 +02:00
2019-07-01 17:21:16 +02:00
2019-01-10 10:25:55 +01:00
2019-07-01 17:21:16 +02:00
2019-07-01 17:21:16 +02:00
2019-06-13 12:35:29 +02:00
2019-06-13 12:35:29 +02:00
2019-06-13 12:35:29 +02:00
2019-07-01 17:21:16 +02:00
2019-07-03 10:20:07 +02:00
2019-07-29 13:02:01 +02:00
2019-12-18 11:40:58 +01:00
2020-01-30 14:55:58 +01:00
2020-05-04 14:51:18 +02:00
2021-03-01 15:13:15 +01:00
2020-03-23 17:13:57 +01:00
2019-12-10 09:00:09 +01:00
2013-09-16 14:58:18 +08:00
2014-05-26 15:40:26 +08:00
2018-02-13 14:04:51 +01:00
2019-07-01 17:21:16 +02:00
2019-07-01 17:21:16 +02:00
2014-02-14 17:12:52 +02:00
2019-07-05 11:00:27 +02:00
2019-07-01 17:21:16 +02:00
2019-07-01 17:21:16 +02:00
2019-07-01 17:21:16 +02:00
2019-07-01 17:21:16 +02:00
2019-07-01 17:21:16 +02:00
2019-07-01 17:21:16 +02:00
2019-07-01 17:21:16 +02:00
2019-07-01 17:21:16 +02:00
2019-07-01 17:21:16 +02:00
2019-07-01 17:21:16 +02:00
2019-07-01 17:21:16 +02:00
2019-07-01 17:21:16 +02:00