Eliminate dead code in statements.
(statement-dead stmt) → new-stmt
- stmt — Guard (statementp stmt).
- new-stmt — Type (statementp new-stmt).
Note that the break, continue, and leave statements
it is the statements following them that are discarded
When we encounter a function definition, we transform its body.
As discussed in dead-code-eliminator,
this only happens in the top-level block.