Enum regalloc2::RegAllocError
source · pub enum RegAllocError {
CritEdge(Block, Block),
SSA(VReg, Inst),
BB(Block),
Branch(Inst),
EntryLivein,
DisallowedBranchArg(Inst),
TooManyLiveRegs,
}
Expand description
An error that prevents allocation.
Variants§
CritEdge(Block, Block)
Critical edge is not split between given blocks.
SSA(VReg, Inst)
Invalid SSA for given vreg at given inst: multiple defs or
illegal use. inst
may be Inst::invalid()
if this concerns
a block param.
BB(Block)
Invalid basic block: does not end in branch/ret, or contains a branch/ret in the middle.
Branch(Inst)
Invalid branch: operand count does not match sum of block params of successor blocks.
EntryLivein
A VReg is live-in on entry; this is not allowed.
DisallowedBranchArg(Inst)
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.
TooManyLiveRegs
Too many pinned VRegs + Reg-constrained Operands are live at once, making allocation impossible.
Trait Implementations§
source§impl Clone for RegAllocError
impl Clone for RegAllocError
source§fn clone(&self) -> RegAllocError
fn clone(&self) -> RegAllocError
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more