[−][src]Struct libfirm_rs::nodes::Block
A basic block
Methods
impl Block[src]
impl Blockpub fn deepest_common_dominator(a: Self, b: Self) -> Self[src]
pub fn deepest_common_dominator(a: Self, b: Self) -> Selfpub 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) -> u32pub 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) -> PhisOfBlockLinkedListIteratorAccess 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]) -> Nodepub 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) -> Nodepub 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) -> Nodepub 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) -> usizepub fn dominates(self, other: Self) -> bool[src]
pub fn dominates(self, other: Self) -> boolimpl Block[src]
impl Blockpub fn entity(self) -> Entity[src]
pub fn entity(self) -> EntityGets 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 Blockpub 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
) -> AddCreates a new Add-node.
irn_leftleftirn_rightright
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
) -> AllocCreates a new Alloc-node.
irn_memmemirn_sizesizealignmentalignment 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
) -> AndCreates a new And-node.
irn_leftleftirn_rightright
pub fn new_bitcast(
self,
irn_op: impl NodeTrait,
mode: Mode
) -> Bitcast[src]
pub fn new_bitcast(
self,
irn_op: impl NodeTrait,
mode: Mode
) -> BitcastCreates a new Bitcast-node.
irn_opopmodemode 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
) -> BuiltinCreates a new Builtin-node.
irn_memmemin_additional inputskindkind of builtintymethod 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
) -> CallCreates a new Call-node.
irn_memmemirn_ptrptrin_additional inputstytype 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
) -> CmpCreates a new Cmp-node.
irn_leftleftirn_rightrightrelationComparison relation
pub fn new_cond(
self,
irn_selector: impl NodeTrait
) -> Cond[src]
pub fn new_cond(
self,
irn_selector: impl NodeTrait
) -> CondCreates a new Cond-node.
irn_selectorselector
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
) -> ConfirmCreates a new Confirm-node.
irn_valuevalueirn_boundboundrelationrelation 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
) -> ConvCreates a new Conv-node.
irn_opopmodemode 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
) -> CopyBCreates a new CopyB-node.
irn_memmemirn_dstdstirn_srcsrctytype of copied dataflagsspecifies 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
) -> DivCreates a new Div-node.
irn_memmemirn_leftleftirn_rightrightpinnedpinned 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
) -> EorCreates a new Eor-node.
irn_leftleftirn_rightright
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
) -> FreeCreates a new Free-node.
irn_memmemirn_ptrptr
pub fn new_ijmp(
self,
irn_target: impl NodeTrait
) -> IJmp[src]
pub fn new_ijmp(
self,
irn_target: impl NodeTrait
) -> IJmpCreates a new IJmp-node.
irn_targettarget
pub fn new_jmp(self) -> Jmp[src]
pub fn new_jmp(self) -> JmpCreates 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
) -> LoadCreates a new Load-node.
irn_memmemirn_ptrptrmodemode of the value to be loadedtyThe type of the object which is stored at ptr (need not match with mode)flagsspecifies 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
) -> MemberCreates a new Member-node.
irn_ptrptrentityentity which is selected
pub fn new_minus(
self,
irn_op: impl NodeTrait
) -> Minus[src]
pub fn new_minus(
self,
irn_op: impl NodeTrait
) -> MinusCreates a new Minus-node.
irn_opop
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
) -> ModCreates a new Mod-node.
irn_memmemirn_leftleftirn_rightrightpinnedpinned 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
) -> MulCreates a new Mul-node.
irn_leftleftirn_rightright
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
) -> MulhCreates a new Mulh-node.
irn_leftleftirn_rightright
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
) -> MuxCreates a new Mux-node.
irn_selselirn_falsefalseirn_truetrue
pub fn new_not(
self,
irn_op: impl NodeTrait
) -> Not[src]
pub fn new_not(
self,
irn_op: impl NodeTrait
) -> NotCreates a new Not-node.
irn_opop
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
) -> OrCreates a new Or-node.
irn_leftleftirn_rightright
pub fn new_phi(self, in_: &[Node], mode: Mode) -> Phi[src]
pub fn new_phi(self, in_: &[Node], mode: Mode) -> PhiCreates a new Phi-node.
in_additional inputsmodemode of the operations result
pub fn new_pin(
self,
irn_op: impl NodeTrait
) -> Pin[src]
pub fn new_pin(
self,
irn_op: impl NodeTrait
) -> PinCreates a new Pin-node.
irn_opop
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
) -> RaiseCreates a new Raise-node.
irn_memmemirn_exo_ptrexo_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]
) -> ReturnCreates a new Return-node.
irn_memmemin_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
) -> SelCreates a new Sel-node.
irn_ptrptrirn_indexindextyarray 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
) -> ShlCreates a new Shl-node.
irn_leftleftirn_rightright
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
) -> ShrCreates a new Shr-node.
irn_leftleftirn_rightright
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
) -> ShrsCreates a new Shrs-node.
irn_leftleftirn_rightright
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
) -> StoreCreates a new Store-node.
irn_memmemirn_ptrptrirn_valuevaluetyThe type of the object which is stored at ptr (need not match with value's type)flagsspecifies 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
) -> SubCreates a new Sub-node.
irn_leftleftirn_rightright
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
) -> SwitchCreates a new Switch-node.
irn_selectorselectorn_outsnumber of outputs (including pn_Switch_default)tabletable describing mapping from input values to Proj numbers
pub fn new_sync(self, in_: &[Node]) -> Sync[src]
pub fn new_sync(self, in_: &[Node]) -> SyncCreates a new Sync-node.
in_additional inputs
pub fn new_tuple(self, in_: &[Node]) -> Tuple[src]
pub fn new_tuple(self, in_: &[Node]) -> TupleCreates a new Tuple-node.
in_additional inputs
Trait Implementations
impl NodeTrait for Block[src]
impl NodeTrait for Blockfn internal_ir_node(&self) -> *mut ir_node[src]
fn internal_ir_node(&self) -> *mut ir_nodefn as_node(&self) -> Node[src]
fn as_node(&self) -> Nodefn keep_alive(&self)[src]
fn keep_alive(&self)fn mode(&self) -> Mode[src]
fn mode(&self) -> Modefn block(&self) -> Block[src]
fn block(&self) -> Blockfn 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) -> OutNodeExIteratorfn 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) -> InNodeIteratorfn 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) -> i64fn is_pinned(&self) -> bool[src]
fn is_pinned(&self) -> boolfn is_commutative(&self) -> bool[src]
fn is_commutative(&self) -> boolfn is_only_valid_in_start_block(&self) -> bool[src]
fn is_only_valid_in_start_block(&self) -> boolfn graph(&self) -> Graph[src]
fn graph(&self) -> Graphfn 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 Blockfn fmt(&self, f: &mut Formatter, _opts: NodeDebugOpts) -> Result[src]
fn fmt(&self, f: &mut Formatter, _opts: NodeDebugOpts) -> Resultfn 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 Blockimpl From<Block> for Node[src]
impl From<Block> for Nodeimpl Clone for Block[src]
impl Clone for Blockfn clone(&self) -> Block[src]
fn clone(&self) -> Blockfn 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 Blockimpl Eq for Block[src]
impl Eq for Blockimpl Debug for Block[src]
impl Debug for Blockimpl Hash for Block[src]
impl Hash for BlockAuto Trait Implementations
Blanket Implementations
impl<T> From for T[src]
impl<T> From for Timpl<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 Timpl<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