To że i3 >= rozmiar jest fałszywe kompilator wie z warunku, jaki występuje na początku bloku. Jednak i musi w trakcie wykonywania programu przynajmniej raz złamać to założenie – osiąga przecież wartość rozmiar żeby opuścić pętlę! Bez SSA trudniej byłoby rozważać takie przypadki. Podobnie kompilator może stwierdzić, że i1 >= 0, i że jeśli i3 >= 0, to i2 = i3 + 1 >= 0 (jeśli zajmie się też rozpatrywaniem kwestii przepełnienia).

Kategoria:Kompilacja