Check branch-args for conflicts with edge-move placement.

This commit is contained in:
Chris Fallin
2021-05-13 17:25:11 -07:00
parent 1f9258bea5
commit 5b55948feb
2 changed files with 28 additions and 1 deletions

View File

@@ -983,6 +983,12 @@ pub enum RegAllocError {
Branch(Inst),
/// A VReg is live-in on entry; this is not allowed.
EntryLivein,
/// A branch has non-blockparam arg(s) and at least one of the
/// successor blocks has more than one predecessor, forcing
/// edge-moves before this branch. This is disallowed because it
/// places a use after the edge moves occur; insert an edge block
/// to avoid the situation.
DisallowedBranchArg(Inst),
}
impl std::fmt::Display for RegAllocError {