Intermediate representation (IR) in which each variable is assigned exactly once, and every variable is defined before it is used