Kunqiu Chen
ea45fec99c
[PredicateInfo] Reserve adjacent LN_Last defs for the same phi use ( #164577 )
...
This patch fixes a missed optimization issue: predicate infos might be
lost in phi-use scenarios.
Due to the existence of and-chains, a phi-use might be associated with
multiple LN_Last predicate infos.
E.g.,
```cpp
// TWO LN_Last Predicate Info defs:
// 1. a >= 1
// 2. a < 2
if ( a < 1 || a >= 2) {
a = 1;
}
// PHI use of `a`
use(a)
```
However, previously, `popStackUntilDFSScope` reserved only ONE LN_Last
def for a phi use (i.e., reserve only one of `a >= 1` / `a < 2`),
although there might be multiple LN_Last defs for the same phi use.
This patch reserves the adjacent LN_Last defs if they are designated for
the same phi use.
2025-10-22 22:17:39 +08:00
..
2024-12-03 20:54:36 +00:00
2024-12-03 20:54:36 +00:00
2024-12-03 20:54:36 +00:00
2024-06-25 12:35:25 +02:00
2024-12-09 16:44:05 +01:00
2024-11-06 11:53:33 +00:00
2024-04-26 11:04:47 +09:00
2024-12-09 16:44:05 +01:00
2024-06-25 12:35:25 +02:00
2024-06-25 12:35:25 +02:00
2025-08-11 13:00:54 +02:00
2025-10-07 17:19:48 +02:00
2024-12-06 09:52:32 +01:00
2025-06-04 22:31:08 +08:00
2025-10-22 22:17:39 +08:00
2025-10-19 03:57:56 +00:00
2024-12-03 20:54:36 +00:00
2024-12-03 20:54:36 +00:00
2024-09-02 11:44:37 +02:00
2024-07-29 15:21:57 +02:00
2024-12-03 20:54:36 +00:00
2024-12-06 09:52:32 +01:00
2024-06-25 12:35:25 +02:00
2024-11-06 11:53:33 +00:00
2024-09-16 10:23:41 +02:00
2024-08-26 09:35:05 +02:00
2024-09-16 10:23:41 +02:00
2024-11-06 11:53:33 +00:00
2024-09-16 10:23:41 +02:00
2024-09-16 10:23:41 +02:00
2025-03-14 15:50:49 +00:00
2025-03-14 15:50:49 +00:00
2024-06-25 12:35:25 +02:00
2024-06-25 12:35:25 +02:00
2024-06-25 12:35:25 +02:00
2024-12-03 20:54:36 +00:00
2024-12-06 09:52:32 +01:00
2024-06-25 12:35:25 +02:00
2025-08-11 09:25:01 +02:00
2025-08-12 12:56:08 +02:00
2024-09-03 11:42:47 +02:00
2025-03-14 15:50:49 +00:00
2024-06-25 12:35:25 +02:00
2024-09-16 10:23:41 +02:00
2025-07-29 12:37:59 +01:00
2025-09-17 10:20:59 +00:00
2024-09-02 11:44:37 +02:00
2024-09-16 10:23:41 +02:00
2025-08-19 10:59:38 +02:00
2025-01-29 16:56:47 +01:00
2024-12-03 20:54:36 +00:00
2024-04-16 09:37:51 +01:00
2024-12-03 20:54:36 +00:00
2024-07-18 09:03:03 +01:00
2024-06-25 12:35:25 +02:00
2024-12-31 18:40:17 -08:00
2025-06-04 22:31:08 +08:00
2024-08-29 09:34:56 +02:00
2024-05-24 19:25:09 +02:00
2025-06-04 22:31:08 +08:00
2024-09-19 03:54:13 -07:00
2025-10-06 07:14:46 +00:00
2024-06-25 12:35:25 +02:00
2024-09-16 10:23:41 +02:00
2024-06-25 12:35:25 +02:00
2024-12-03 20:54:36 +00:00
2025-08-19 10:59:38 +02:00
2024-09-03 11:42:47 +02:00
2024-05-07 14:57:29 -05:00
2024-12-03 20:54:36 +00:00
2024-10-28 14:07:32 +07:00
2024-10-28 14:07:32 +07:00
2024-06-25 12:35:25 +02:00
2024-12-03 20:54:36 +00:00
2024-09-16 10:23:41 +02:00
2024-11-06 11:53:33 +00:00
2025-08-19 10:59:38 +02:00
2025-07-20 15:01:44 +08:00
2024-11-06 11:53:33 +00:00
2024-10-31 12:22:15 +00:00
2025-08-19 10:59:38 +02:00