Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
BIR: Be more judicious about flow order when deleting iblocks
This has caused a variety of problems in the past (and I'm probably missing stuff that will cause problems in the future). In the course of optimization we will sometimes try to delete blocks that are already dead code, i.e. not in the flow order. This is unavoidable or at least nontrivial to avoid. When we do it, we need to not modify the flow order. Modifying the flow order improperly can lead to e.g. a cyclic flow order, which makes passes hang. Very bad. I don't have a stable example, unfortunately, but observed this while adding optimizations to Clasp.
- Loading branch information