BLocal

If we get this:

eax = 1

if (edx == 2)

eax = 2

The value of eax depends on edx. Therefore, we can't append it.

The solution is the Branch Local, or BLocal.

We detect writes and reads.

BLocal1 = 1

if (edx == 2)

BLocal1 = 2

And therefore, the register eax is eliminated.

Lastly, the other case is this:

if (edx == 2)

BLocal1 = 1

else

BLocal1 = 2

end if

Again, eax is different in each condition, but there is no initial value because it's an Else block - it's either 1 value or 2.