EARS LiveVariables()
{
RANGE b <= LIVEOUT;
RULES
LIVEOUT(b,o) :- BlockGraph.succ(b,b1), LIVEIN(b1,o);
LIVEIN(b,o) :- USED(b,o);
LIVEIN(b,o) :- LIVEOUT(b,o);
}
A variable is live at the entry of a block, if it is used in the block, or if it is live at the exit of the block. A variable is live a the exit of the block, if it lives at the entry of a successor block.