Live variable means those which will be used again- not necessarily by same block.
int a = 5;
if(a < b)
{
b = 7;
}
c = a;
Here the statements inside the if are in a separate basic block and a is live there because a is used again though in a different block. Compiler use live variable analysis to see for which all variables it can free the registers.