[−][src]Struct libfirm_rs::nodes::Tuple
Builds a Tuple from single values.
This is needed to implement optimizations that remove a node that produced a tuple. The node can be replaced by the Tuple operation so that the following Proj nodes have not to be changed. (They are hard to find due to the implementation with pointers in only one direction.) The Tuple node is smaller than any other node, so that a node can be changed into a Tuple by just changing its opcode and giving it a new in array.
Trait Implementations
impl NodeTrait for Tuple[src]
impl NodeTrait for Tuplefn 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 Tuple[src]
impl NodeDebug for Tuplefn 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<Tuple> for Tuple[src]
impl PartialEq<Tuple> for Tupleimpl From<Tuple> for Node[src]
impl From<Tuple> for Nodeimpl Clone for Tuple[src]
impl Clone for Tuplefn clone(&self) -> Tuple[src]
fn clone(&self) -> Tuplefn 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 Tuple[src]
impl Copy for Tupleimpl Eq for Tuple[src]
impl Eq for Tupleimpl Debug for Tuple[src]
impl Debug for Tupleimpl Hash for Tuple[src]
impl Hash for TupleAuto 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