[−][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 Tuple
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 Tuple
[src]
impl NodeDebug for Tuple
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<Tuple> for Tuple
[src]
impl PartialEq<Tuple> for Tuple
impl From<Tuple> for Node
[src]
impl From<Tuple> for Node
impl Clone for Tuple
[src]
impl Clone for Tuple
fn clone(&self) -> Tuple
[src]
fn clone(&self) -> Tuple
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 Tuple
[src]
impl Copy for Tuple
impl Eq for Tuple
[src]
impl Eq for Tuple
impl Debug for Tuple
[src]
impl Debug for Tuple
impl Hash for Tuple
[src]
impl Hash for Tuple
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