[][src]Trait cranelift_codegen::ir::ProgramOrder

pub trait ProgramOrder {
    fn cmp<A, B>(&self, a: A, b: B) -> Ordering
    where
        A: Into<ExpandedProgramPoint>,
        B: Into<ExpandedProgramPoint>
;
fn is_block_gap(&self, inst: Inst, block: Block) -> bool; }

Context for ordering program points.

ProgramPoint objects don't carry enough information to be ordered independently, they need a context providing the program order.

Required methods

fn cmp<A, B>(&self, a: A, b: B) -> Ordering where
    A: Into<ExpandedProgramPoint>,
    B: Into<ExpandedProgramPoint>, 

Compare the program points a and b relative to this program order.

Return Less if a appears in the program before b.

This is declared as a generic such that it can be called with Inst and Block arguments directly. Depending on the implementation, there is a good chance performance will be improved for those cases where the type of either argument is known statically.

fn is_block_gap(&self, inst: Inst, block: Block) -> bool

Is the range from inst to block just the gap between consecutive blocks?

This returns true if inst is the terminator in the block immediately before block.

Loading content...

Implementors

impl ProgramOrder for Layout[src]

Loading content...