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-09-03 11:42:47 +02:00