Computing Basic Blocks
Start with the subprogram entry statement as the header for the first basic block
Add subsequent statements to the block until either
- A conditional branch occurs or
- A labeled executable statement occurs
The targets of the branch and the labeled statements become headers for new blocks
Arcs connect the block to the new blocks
Add statements to the new blocks in the same way
Continue until no new block can be defined
Remaining statements are unreachable (dead)