Teach LazyValueInfo to handle simple patterns on the PHINodes, including:
- Induction variable of natural loop that increased by 1
- select (phi (init, select)) generated from linear search
This is accomplished by computing the value of PHINode recurring edge based on mathematical fixed-point. We will fallback to getEdgeValue if we cannot handle the recurring edge.
PS: How should I add unittest for this? since it is "lazy". maybe I should come back with a LazyValueInfo printer