If llvm-cov
sees a code region that is improperly ordered (end < start),
it will immediately exit with a fatal error. To prevent that from happening,
discard regions that are improperly ordered, or might be interpreted in a
way that makes them improperly ordered.
For each coverage span extracted from MIR, create a corresponding
mapping.
For each BCB node or BCB edge that has an associated coverage counter,
inject any necessary coverage statements into MIR.
Given two basic blocks that have a control-flow edge between them, creates
and returns a new block that sits between those blocks.
Convert the Span into its file name, start line and column, and end line and column.