Used for Compiler Optimization. Alot easier if code is in SSA form.
- Look for every block that has
unreachable - If any code blocks end in
unreachable, you can remove the branches leading to it. - Remove all unreachable code blocks

Use Cases
- Can be used in division by error cases, the compiler will never go to the branch that handles division by 0.