Struct cranelift_codegen::ir::entities::Block
source · pub struct Block(_);
Expand description
An opaque reference to a basic block in a
Function
.
You can get a Block
using
FunctionBuilder::create_block
While the order is stable, it is arbitrary and does not necessarily resemble the layout order.
Implementations§
source§impl Block
impl Block
sourcepub fn as_bits(self) -> u32
pub fn as_bits(self) -> u32
Return the raw bit encoding for this instance.
Examples found in repository?
src/ir/dfg.rs (line 543)
537 538 539 540 541 542 543 544 545 546 547 548 549
fn from(data: ValueData) -> Self {
match data {
ValueData::Inst { ty, num, inst } => {
Self::make(Self::TAG_INST, ty, num, inst.as_bits())
}
ValueData::Param { ty, num, block } => {
Self::make(Self::TAG_PARAM, ty, num, block.as_bits())
}
ValueData::Alias { ty, original } => {
Self::make(Self::TAG_ALIAS, ty, 0, original.as_bits())
}
}
}
sourcepub fn from_bits(x: u32) -> Self
pub fn from_bits(x: u32) -> Self
Create a new instance from the raw bit encoding.
Examples found in repository?
src/ir/dfg.rs (line 569)
553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577
fn from(data: ValueDataPacked) -> Self {
let tag = data.field(ValueDataPacked::TAG_SHIFT, ValueDataPacked::TAG_BITS);
let ty = data.field(ValueDataPacked::TYPE_SHIFT, ValueDataPacked::TYPE_BITS) as u16;
let num = data.field(ValueDataPacked::NUM_SHIFT, ValueDataPacked::NUM_BITS) as u16;
let index = data.field(ValueDataPacked::INDEX_SHIFT, ValueDataPacked::INDEX_BITS) as u32;
let ty = Type::from_repr(ty);
match tag {
ValueDataPacked::TAG_INST => ValueData::Inst {
ty,
num,
inst: Inst::from_bits(index),
},
ValueDataPacked::TAG_PARAM => ValueData::Param {
ty,
num,
block: Block::from_bits(index),
},
ValueDataPacked::TAG_ALIAS => ValueData::Alias {
ty,
original: Value::from_bits(index),
},
_ => panic!("Invalid tag {} in ValueDataPacked 0x{:x}", tag, data.0),
}
}
Trait Implementations§
source§impl From<Block> for ExpandedProgramPoint
impl From<Block> for ExpandedProgramPoint
source§impl From<Block> for ProgramPoint
impl From<Block> for ProgramPoint
source§impl Ord for Block
impl Ord for Block
source§impl PartialEq<Block> for Block
impl PartialEq<Block> for Block
source§impl PartialOrd<Block> for Block
impl PartialOrd<Block> for Block
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for
self
and other
) and is used by the <=
operator. Read moresource§impl ReservedValue for Block
impl ReservedValue for Block
source§fn reserved_value() -> Block
fn reserved_value() -> Block
Create an instance of the reserved value.
source§fn is_reserved_value(&self) -> bool
fn is_reserved_value(&self) -> bool
Checks whether value is the reserved one.
impl Copy for Block
impl Eq for Block
impl StructuralEq for Block
impl StructuralPartialEq for Block
Auto Trait Implementations§
impl RefUnwindSafe for Block
impl Send for Block
impl Sync for Block
impl Unpin for Block
impl UnwindSafe for Block
Blanket Implementations§
source§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.