[−][src]Struct libfirm_rs::nodes::Block
A basic block
Methods
impl Block
[src]
impl Block
pub fn deepest_common_dominator(a: Self, b: Self) -> Self
[src]
pub fn deepest_common_dominator(a: Self, b: Self) -> Self
pub fn immediate_dominator(self) -> Option<Self>
[src]
pub fn immediate_dominator(self) -> Option<Self>
pub fn loop_depth(self) -> u32
[src]
pub fn loop_depth(self) -> u32
pub fn immediate_post_dominator(self) -> Option<Self>
[src]
pub fn immediate_post_dominator(self) -> Option<Self>
ⓘImportant traits for CfgPredsIteratorpub fn cfg_preds(self) -> CfgPredsIterator
[src]
pub fn cfg_preds(self) -> CfgPredsIterator
ⓘImportant traits for PhisOfBlockLinkedListIteratorpub fn linked_list_of_phis(self) -> PhisOfBlockLinkedListIterator
[src]
pub fn linked_list_of_phis(self) -> PhisOfBlockLinkedListIterator
Access the phis of a block using get_Block_phis
and get_Phi_next
.
Note that this list is not updated automatically. Fill the list
manually or use phis
instead.
pub fn phis(self) -> Vec<Phi>
[src]
pub fn phis(self) -> Vec<Phi>
pub fn phi_or_node(self, nodes: &[Node]) -> Node
[src]
pub fn phi_or_node(self, nodes: &[Node]) -> Node
pub fn set_cfg_pred(
self,
idx: i32,
pred: impl NodeTrait
)
[src]
pub fn set_cfg_pred(
self,
idx: i32,
pred: impl NodeTrait
)
pub fn mature(self)
[src]
pub fn mature(self)
pub fn value(self, slot_idx: usize, mode: Mode) -> Node
[src]
pub fn value(self, slot_idx: usize, mode: Mode) -> Node
pub fn set_value(
self,
slot_idx: usize,
val: impl NodeTrait
)
[src]
pub fn set_value(
self,
slot_idx: usize,
val: impl NodeTrait
)
pub fn cur_store(self) -> Node
[src]
pub fn cur_store(self) -> Node
pub fn set_store(
self,
s: impl NodeTrait
)
[src]
pub fn set_store(
self,
s: impl NodeTrait
)
pub fn imm_add_pred(
self,
pred: impl NodeTrait
)
[src]
pub fn imm_add_pred(
self,
pred: impl NodeTrait
)
pub fn all_nodes_in_block(
self
) -> impl Iterator<Item = Node>
[src]
pub fn all_nodes_in_block(
self
) -> impl Iterator<Item = Node>
pub fn dom_depth(self) -> usize
[src]
pub fn dom_depth(self) -> usize
pub fn dominates(self, other: Self) -> bool
[src]
pub fn dominates(self, other: Self) -> bool
impl Block
[src]
impl Block
pub fn entity(self) -> Entity
[src]
pub fn entity(self) -> Entity
Gets entity representing this block.
pub fn set_entity(self, val: Entity)
[src]
pub fn set_entity(self, val: Entity)
Sets entity representing this block.
impl Block
[src]
impl Block
pub fn new_add(
self,
irn_left: impl NodeTrait,
irn_right: impl NodeTrait
) -> Add
[src]
pub fn new_add(
self,
irn_left: impl NodeTrait,
irn_right: impl NodeTrait
) -> Add
Creates a new Add-node.
irn_left
leftirn_right
right
pub fn new_alloc(
self,
irn_mem: impl NodeTrait,
irn_size: impl NodeTrait,
alignment: c_uint
) -> Alloc
[src]
pub fn new_alloc(
self,
irn_mem: impl NodeTrait,
irn_size: impl NodeTrait,
alignment: c_uint
) -> Alloc
Creates a new Alloc-node.
irn_mem
memirn_size
sizealignment
alignment of the memory block (must be a power of 2)
pub fn new_and(
self,
irn_left: impl NodeTrait,
irn_right: impl NodeTrait
) -> And
[src]
pub fn new_and(
self,
irn_left: impl NodeTrait,
irn_right: impl NodeTrait
) -> And
Creates a new And-node.
irn_left
leftirn_right
right
pub fn new_bitcast(
self,
irn_op: impl NodeTrait,
mode: Mode
) -> Bitcast
[src]
pub fn new_bitcast(
self,
irn_op: impl NodeTrait,
mode: Mode
) -> Bitcast
Creates a new Bitcast-node.
irn_op
opmode
mode of the operations result
pub fn new_builtin(
self,
irn_mem: impl NodeTrait,
in_: &[Node],
kind: Type,
ty: Ty
) -> Builtin
[src]
pub fn new_builtin(
self,
irn_mem: impl NodeTrait,
in_: &[Node],
kind: Type,
ty: Ty
) -> Builtin
Creates a new Builtin-node.
irn_mem
memin_
additional inputskind
kind of builtinty
method type for the builtin call
pub fn new_call(
self,
irn_mem: impl NodeTrait,
irn_ptr: impl NodeTrait,
in_: &[Node],
ty: Ty
) -> Call
[src]
pub fn new_call(
self,
irn_mem: impl NodeTrait,
irn_ptr: impl NodeTrait,
in_: &[Node],
ty: Ty
) -> Call
Creates a new Call-node.
irn_mem
memirn_ptr
ptrin_
additional inputsty
type of the call (usually type of the called procedure)
pub fn new_cmp(
self,
irn_left: impl NodeTrait,
irn_right: impl NodeTrait,
relation: Type
) -> Cmp
[src]
pub fn new_cmp(
self,
irn_left: impl NodeTrait,
irn_right: impl NodeTrait,
relation: Type
) -> Cmp
Creates a new Cmp-node.
irn_left
leftirn_right
rightrelation
Comparison relation
pub fn new_cond(
self,
irn_selector: impl NodeTrait
) -> Cond
[src]
pub fn new_cond(
self,
irn_selector: impl NodeTrait
) -> Cond
Creates a new Cond-node.
irn_selector
selector
pub fn new_confirm(
self,
irn_value: impl NodeTrait,
irn_bound: impl NodeTrait,
relation: Type
) -> Confirm
[src]
pub fn new_confirm(
self,
irn_value: impl NodeTrait,
irn_bound: impl NodeTrait,
relation: Type
) -> Confirm
Creates a new Confirm-node.
irn_value
valueirn_bound
boundrelation
relation of value to bound
pub fn new_conv(
self,
irn_op: impl NodeTrait,
mode: Mode
) -> Conv
[src]
pub fn new_conv(
self,
irn_op: impl NodeTrait,
mode: Mode
) -> Conv
Creates a new Conv-node.
irn_op
opmode
mode of the operations result
pub fn new_copyb(
self,
irn_mem: impl NodeTrait,
irn_dst: impl NodeTrait,
irn_src: impl NodeTrait,
ty: Ty,
flags: Type
) -> CopyB
[src]
pub fn new_copyb(
self,
irn_mem: impl NodeTrait,
irn_dst: impl NodeTrait,
irn_src: impl NodeTrait,
ty: Ty,
flags: Type
) -> CopyB
Creates a new CopyB-node.
irn_mem
memirn_dst
dstirn_src
srcty
type of copied dataflags
specifies volatility
pub fn new_div(
self,
irn_mem: impl NodeTrait,
irn_left: impl NodeTrait,
irn_right: impl NodeTrait,
pinned: i32
) -> Div
[src]
pub fn new_div(
self,
irn_mem: impl NodeTrait,
irn_left: impl NodeTrait,
irn_right: impl NodeTrait,
pinned: i32
) -> Div
Creates a new Div-node.
irn_mem
memirn_left
leftirn_right
rightpinned
pinned state
pub fn new_eor(
self,
irn_left: impl NodeTrait,
irn_right: impl NodeTrait
) -> Eor
[src]
pub fn new_eor(
self,
irn_left: impl NodeTrait,
irn_right: impl NodeTrait
) -> Eor
Creates a new Eor-node.
irn_left
leftirn_right
right
pub fn new_free(
self,
irn_mem: impl NodeTrait,
irn_ptr: impl NodeTrait
) -> Free
[src]
pub fn new_free(
self,
irn_mem: impl NodeTrait,
irn_ptr: impl NodeTrait
) -> Free
Creates a new Free-node.
irn_mem
memirn_ptr
ptr
pub fn new_ijmp(
self,
irn_target: impl NodeTrait
) -> IJmp
[src]
pub fn new_ijmp(
self,
irn_target: impl NodeTrait
) -> IJmp
Creates a new IJmp-node.
irn_target
target
pub fn new_jmp(self) -> Jmp
[src]
pub fn new_jmp(self) -> Jmp
Creates a new Jmp-node.
pub fn new_load(
self,
irn_mem: impl NodeTrait,
irn_ptr: impl NodeTrait,
mode: Mode,
ty: Ty,
flags: Type
) -> Load
[src]
pub fn new_load(
self,
irn_mem: impl NodeTrait,
irn_ptr: impl NodeTrait,
mode: Mode,
ty: Ty,
flags: Type
) -> Load
Creates a new Load-node.
irn_mem
memirn_ptr
ptrmode
mode of the value to be loadedty
The type of the object which is stored at ptr (need not match with mode)flags
specifies alignment, volatility and pin state
pub fn new_member(
self,
irn_ptr: impl NodeTrait,
entity: Entity
) -> Member
[src]
pub fn new_member(
self,
irn_ptr: impl NodeTrait,
entity: Entity
) -> Member
Creates a new Member-node.
irn_ptr
ptrentity
entity which is selected
pub fn new_minus(
self,
irn_op: impl NodeTrait
) -> Minus
[src]
pub fn new_minus(
self,
irn_op: impl NodeTrait
) -> Minus
Creates a new Minus-node.
irn_op
op
pub fn new_mod(
self,
irn_mem: impl NodeTrait,
irn_left: impl NodeTrait,
irn_right: impl NodeTrait,
pinned: i32
) -> Mod
[src]
pub fn new_mod(
self,
irn_mem: impl NodeTrait,
irn_left: impl NodeTrait,
irn_right: impl NodeTrait,
pinned: i32
) -> Mod
Creates a new Mod-node.
irn_mem
memirn_left
leftirn_right
rightpinned
pinned state
pub fn new_mul(
self,
irn_left: impl NodeTrait,
irn_right: impl NodeTrait
) -> Mul
[src]
pub fn new_mul(
self,
irn_left: impl NodeTrait,
irn_right: impl NodeTrait
) -> Mul
Creates a new Mul-node.
irn_left
leftirn_right
right
pub fn new_mulh(
self,
irn_left: impl NodeTrait,
irn_right: impl NodeTrait
) -> Mulh
[src]
pub fn new_mulh(
self,
irn_left: impl NodeTrait,
irn_right: impl NodeTrait
) -> Mulh
Creates a new Mulh-node.
irn_left
leftirn_right
right
pub fn new_mux(
self,
irn_sel: impl NodeTrait,
irn_false: impl NodeTrait,
irn_true: impl NodeTrait
) -> Mux
[src]
pub fn new_mux(
self,
irn_sel: impl NodeTrait,
irn_false: impl NodeTrait,
irn_true: impl NodeTrait
) -> Mux
Creates a new Mux-node.
irn_sel
selirn_false
falseirn_true
true
pub fn new_not(
self,
irn_op: impl NodeTrait
) -> Not
[src]
pub fn new_not(
self,
irn_op: impl NodeTrait
) -> Not
Creates a new Not-node.
irn_op
op
pub fn new_or(
self,
irn_left: impl NodeTrait,
irn_right: impl NodeTrait
) -> Or
[src]
pub fn new_or(
self,
irn_left: impl NodeTrait,
irn_right: impl NodeTrait
) -> Or
Creates a new Or-node.
irn_left
leftirn_right
right
pub fn new_phi(self, in_: &[Node], mode: Mode) -> Phi
[src]
pub fn new_phi(self, in_: &[Node], mode: Mode) -> Phi
Creates a new Phi-node.
in_
additional inputsmode
mode of the operations result
pub fn new_pin(
self,
irn_op: impl NodeTrait
) -> Pin
[src]
pub fn new_pin(
self,
irn_op: impl NodeTrait
) -> Pin
Creates a new Pin-node.
irn_op
op
pub fn new_raise(
self,
irn_mem: impl NodeTrait,
irn_exo_ptr: impl NodeTrait
) -> Raise
[src]
pub fn new_raise(
self,
irn_mem: impl NodeTrait,
irn_exo_ptr: impl NodeTrait
) -> Raise
Creates a new Raise-node.
irn_mem
memirn_exo_ptr
exo_ptr
pub fn new_return(
self,
irn_mem: impl NodeTrait,
in_: &[Node]
) -> Return
[src]
pub fn new_return(
self,
irn_mem: impl NodeTrait,
in_: &[Node]
) -> Return
Creates a new Return-node.
irn_mem
memin_
additional inputs
pub fn new_sel(
self,
irn_ptr: impl NodeTrait,
irn_index: impl NodeTrait,
ty: Ty
) -> Sel
[src]
pub fn new_sel(
self,
irn_ptr: impl NodeTrait,
irn_index: impl NodeTrait,
ty: Ty
) -> Sel
Creates a new Sel-node.
irn_ptr
ptrirn_index
indexty
array type
pub fn new_shl(
self,
irn_left: impl NodeTrait,
irn_right: impl NodeTrait
) -> Shl
[src]
pub fn new_shl(
self,
irn_left: impl NodeTrait,
irn_right: impl NodeTrait
) -> Shl
Creates a new Shl-node.
irn_left
leftirn_right
right
pub fn new_shr(
self,
irn_left: impl NodeTrait,
irn_right: impl NodeTrait
) -> Shr
[src]
pub fn new_shr(
self,
irn_left: impl NodeTrait,
irn_right: impl NodeTrait
) -> Shr
Creates a new Shr-node.
irn_left
leftirn_right
right
pub fn new_shrs(
self,
irn_left: impl NodeTrait,
irn_right: impl NodeTrait
) -> Shrs
[src]
pub fn new_shrs(
self,
irn_left: impl NodeTrait,
irn_right: impl NodeTrait
) -> Shrs
Creates a new Shrs-node.
irn_left
leftirn_right
right
pub fn new_store(
self,
irn_mem: impl NodeTrait,
irn_ptr: impl NodeTrait,
irn_value: impl NodeTrait,
ty: Ty,
flags: Type
) -> Store
[src]
pub fn new_store(
self,
irn_mem: impl NodeTrait,
irn_ptr: impl NodeTrait,
irn_value: impl NodeTrait,
ty: Ty,
flags: Type
) -> Store
Creates a new Store-node.
irn_mem
memirn_ptr
ptrirn_value
valuety
The type of the object which is stored at ptr (need not match with value's type)flags
specifies alignment, volatility and pin state
pub fn new_sub(
self,
irn_left: impl NodeTrait,
irn_right: impl NodeTrait
) -> Sub
[src]
pub fn new_sub(
self,
irn_left: impl NodeTrait,
irn_right: impl NodeTrait
) -> Sub
Creates a new Sub-node.
irn_left
leftirn_right
right
pub fn new_switch(
self,
irn_selector: impl NodeTrait,
n_outs: c_uint,
table: *mut ir_switch_table
) -> Switch
[src]
pub fn new_switch(
self,
irn_selector: impl NodeTrait,
n_outs: c_uint,
table: *mut ir_switch_table
) -> Switch
Creates a new Switch-node.
irn_selector
selectorn_outs
number of outputs (including pn_Switch_default)table
table describing mapping from input values to Proj numbers
pub fn new_sync(self, in_: &[Node]) -> Sync
[src]
pub fn new_sync(self, in_: &[Node]) -> Sync
Creates a new Sync-node.
in_
additional inputs
pub fn new_tuple(self, in_: &[Node]) -> Tuple
[src]
pub fn new_tuple(self, in_: &[Node]) -> Tuple
Creates a new Tuple-node.
in_
additional inputs
Trait Implementations
impl NodeTrait for Block
[src]
impl NodeTrait for Block
fn internal_ir_node(&self) -> *mut ir_node
[src]
fn internal_ir_node(&self) -> *mut ir_node
fn as_node(&self) -> Node
[src]
fn as_node(&self) -> Node
fn keep_alive(&self)
[src]
fn keep_alive(&self)
fn mode(&self) -> Mode
[src]
fn mode(&self) -> Mode
fn block(&self) -> Block
[src]
fn block(&self) -> Block
fn set_block(&self, block: Block)
[src]
fn set_block(&self, block: Block)
ⓘImportant traits for OutNodeIteratorfn out_nodes(&self) -> OutNodeIterator
[src]
fn out_nodes(&self) -> OutNodeIterator
ⓘImportant traits for OutNodeExIteratorfn out_nodes_ex(&self) -> OutNodeExIterator
[src]
fn out_nodes_ex(&self) -> OutNodeExIterator
fn all_out_projs(&self) -> Vec<Proj>
[src]
fn all_out_projs(&self) -> Vec<Proj>
fn collect_all_out_projs(&self, projs: &mut Vec<Proj>)
[src]
fn collect_all_out_projs(&self, projs: &mut Vec<Proj>)
ⓘImportant traits for InNodeIteratorfn in_nodes(&self) -> InNodeIterator
[src]
fn in_nodes(&self) -> InNodeIterator
fn set_input_at(&self, idx: i32, pred: Node)
[src]
fn set_input_at(&self, idx: i32, pred: Node)
fn set_in_nodes(&self, nodes: &[Node])
[src]
fn set_in_nodes(&self, nodes: &[Node])
fn node_id(&self) -> i64
[src]
fn node_id(&self) -> i64
fn is_pinned(&self) -> bool
[src]
fn is_pinned(&self) -> bool
fn is_commutative(&self) -> bool
[src]
fn is_commutative(&self) -> bool
fn is_only_valid_in_start_block(&self) -> bool
[src]
fn is_only_valid_in_start_block(&self) -> bool
fn graph(&self) -> Graph
[src]
fn graph(&self) -> Graph
fn walk<F>(&self, walker: F) where
F: FnMut(VisitTime, Node),
Self: Sized,
[src]
fn walk<F>(&self, walker: F) where
F: FnMut(VisitTime, Node),
Self: Sized,
libifrm irg_walk wrapper Read more
fn walk_dfs_in_block_stop_at_phi_node<Callback>(
&self,
block: Block,
callback: &mut Callback
) where
Callback: FnMut(Node),
Self: Sized,
[src]
fn walk_dfs_in_block_stop_at_phi_node<Callback>(
&self,
block: Block,
callback: &mut Callback
) where
Callback: FnMut(Node),
Self: Sized,
Perform a DFS over all nodes within block
starting at self
. As soon as a Phi node is reached, that branch of the DFS is canceled. There is no callback for a Phi node. The primary use case for this API is in codegen. Read more
impl NodeDebug for Block
[src]
impl NodeDebug for Block
fn fmt(&self, f: &mut Formatter, _opts: NodeDebugOpts) -> Result
[src]
fn fmt(&self, f: &mut Formatter, _opts: NodeDebugOpts) -> Result
fn debug_fmt(self) -> NodeDebugFmt<Self> where
Self: Sized + Copy,
[src]
fn debug_fmt(self) -> NodeDebugFmt<Self> where
Self: Sized + Copy,
impl PartialEq<Block> for Block
[src]
impl PartialEq<Block> for Block
impl From<Block> for Node
[src]
impl From<Block> for Node
impl Clone for Block
[src]
impl Clone for Block
fn clone(&self) -> Block
[src]
fn clone(&self) -> Block
fn clone_from(&mut self, source: &Self)
1.0.0[src]
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
impl Copy for Block
[src]
impl Copy for Block
impl Eq for Block
[src]
impl Eq for Block
impl Debug for Block
[src]
impl Debug for Block
impl Hash for Block
[src]
impl Hash for Block
Auto Trait Implementations
Blanket Implementations
impl<T> From for T
[src]
impl<T> From for T
impl<T, U> Into for T where
U: From<T>,
[src]
impl<T, U> Into for T where
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
impl<T> ToOwned for T where
T: Clone,
impl<T, U> TryFrom for T where
T: From<U>,
[src]
impl<T, U> TryFrom for T where
T: From<U>,
type Error = !
try_from
)The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
impl<T> Borrow for T where
T: ?Sized,
[src]
impl<T> Borrow for T where
T: ?Sized,
impl<T> BorrowMut for T where
T: ?Sized,
[src]
impl<T> BorrowMut for T where
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
fn borrow_mut(&mut self) -> &mut T
impl<T, U> TryInto for T where
U: TryFrom<T>,
[src]
impl<T, U> TryInto for T where
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
try_from
)The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
impl<T> Any for T where
T: 'static + ?Sized,
[src]
impl<T> Any for T where
T: 'static + ?Sized,
fn get_type_id(&self) -> TypeId
[src]
fn get_type_id(&self) -> TypeId