pub enum AnalysisError {
    CriticalEdge {
        from: BlockIx,
        to: BlockIx,
    },
    EntryLiveinValues(Vec<Reg>),
    IllegalRealReg(RealReg),
    UnreachableBlocks,
    ImplementationLimitsExceeded,
    LSRACantDoStackmaps,
}

Variants

CriticalEdge

Fields

from: BlockIx
to: BlockIx

A critical edge from “from” to “to” has been found, and should have been removed by the caller in the first place.

EntryLiveinValues(Vec<Reg>)

Some values in the entry block are live in to the function, but are not declared as such.

IllegalRealReg(RealReg)

The incoming code has an explicit or implicit mention (use, def or mod) of a real register, which either (1) isn’t listed in the universe at all, or (2) is one of the suggested_scratch registers in the universe. (1) isn’t allowed because the client must mention all real registers in the universe. (2) isn’t allowed because the client promises to us that the suggested_scratch registers really are completely unused in the incoming code, so that the allocator can use them at literally any point it wants.

UnreachableBlocks

At least one block is dead.

ImplementationLimitsExceeded

Implementation limits exceeded. The incoming function is too big. It may contain at most 1 million basic blocks and 16 million instructions.

LSRACantDoStackmaps

Currently LSRA can’t generate stackmaps, but the client has requested LSRA and stackmaps.

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Converts the given value to a String. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.