Basic Blocks rules
Rule 1: The first statement in the program is the leader
Rule 2: Any statement that is the target of a branch statement is a leader
Rule 3: Any statement that immediately follows a branch or return statement is a leader.
Control Flow Graph (CFG)
A directed multigraph in which the nodes are basic blocks and the edges represent the flow of control
CFG Rule A
There is a directed edge from basic block B1 to B2 in the CFG if there is a branch from the last statement of B1 to the first statement of B2.
CFG Rule B
Control flow can fall through from B1 to B2 if B2 immediately follows B1 and B1 does not end with an unconditional branch