[][src]Trait libfirm_rs::nodes::NodeTrait

pub trait NodeTrait {
    fn internal_ir_node(&self) -> *mut ir_node;

    fn as_node(&self) -> Node { ... }
fn keep_alive(&self) { ... }
fn mode(&self) -> Mode { ... }
fn block(&self) -> Block { ... }
fn set_block(&self, block: Block) { ... }
fn out_nodes(&self) -> OutNodeIterator { ... }
fn out_nodes_ex(&self) -> OutNodeExIterator { ... }
fn all_out_projs(&self) -> Vec<Proj> { ... }
fn collect_all_out_projs(&self, projs: &mut Vec<Proj>) { ... }
fn in_nodes(&self) -> InNodeIterator { ... }
fn set_input_at(&self, idx: i32, pred: Node) { ... }
fn set_in_nodes(&self, nodes: &[Node]) { ... }
fn node_id(&self) -> i64 { ... }
fn is_pinned(&self) -> bool { ... }
fn is_commutative(&self) -> bool { ... }
fn is_only_valid_in_start_block(&self) -> bool { ... }
fn graph(&self) -> Graph { ... }
fn walk<F>(&self, walker: F)
    where
        F: FnMut(VisitTime, Node),
        Self: Sized
, { ... }
fn walk_dfs_in_block_stop_at_phi_node<Callback>(
        &self,
        block: Block,
        callback: &mut Callback
    )
    where
        Callback: FnMut(Node),
        Self: Sized
, { ... } }

A trait to abstract from Node enum and various *-Node structs. Inspired by https://github.com/libfirm/jFirm/blob/master/src/firm/nodes/Node.java.

Required methods

Loading content...

Provided methods

Important traits for OutNodeIterator

Important traits for OutNodeExIterator

Important traits for InNodeIterator

libifrm irg_walk wrapper

Walks over the ir graph, starting at the this node and going to all predecessors, i.e., dependencies (operands) of this node. Note that this traversal crosses block boundaries, since blocks are also just predecessors in the Graph.

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.

Loading content...

Implementations on Foreign Types

impl NodeTrait for Box<dyn ValueNode>
[src]

Important traits for OutNodeIterator

Important traits for OutNodeExIterator

Important traits for InNodeIterator

Loading content...

Implementors

impl NodeTrait for Node
[src]

Important traits for OutNodeIterator

Important traits for OutNodeExIterator

Important traits for InNodeIterator

impl NodeTrait for Add
[src]

Important traits for OutNodeIterator

Important traits for OutNodeExIterator

Important traits for InNodeIterator

impl NodeTrait for Address
[src]

Important traits for OutNodeIterator

Important traits for OutNodeExIterator

Important traits for InNodeIterator

impl NodeTrait for Align
[src]

Important traits for OutNodeIterator

Important traits for OutNodeExIterator

Important traits for InNodeIterator

impl NodeTrait for Alloc
[src]

Important traits for OutNodeIterator

Important traits for OutNodeExIterator

Important traits for InNodeIterator

impl NodeTrait for Anchor
[src]

Important traits for OutNodeIterator

Important traits for OutNodeExIterator

Important traits for InNodeIterator

impl NodeTrait for And
[src]

Important traits for OutNodeIterator

Important traits for OutNodeExIterator

Important traits for InNodeIterator

impl NodeTrait for Bad
[src]

Important traits for OutNodeIterator

Important traits for OutNodeExIterator

Important traits for InNodeIterator

impl NodeTrait for Bitcast
[src]

Important traits for OutNodeIterator

Important traits for OutNodeExIterator

Important traits for InNodeIterator

impl NodeTrait for Block
[src]

Important traits for OutNodeIterator

Important traits for OutNodeExIterator

Important traits for InNodeIterator

impl NodeTrait for Builtin
[src]

Important traits for OutNodeIterator

Important traits for OutNodeExIterator

Important traits for InNodeIterator

impl NodeTrait for Call
[src]

Important traits for OutNodeIterator

Important traits for OutNodeExIterator

Important traits for InNodeIterator

impl NodeTrait for Cmp
[src]

Important traits for OutNodeIterator

Important traits for OutNodeExIterator

Important traits for InNodeIterator

impl NodeTrait for Cond
[src]

Important traits for OutNodeIterator

Important traits for OutNodeExIterator

Important traits for InNodeIterator

impl NodeTrait for Confirm
[src]

Important traits for OutNodeIterator

Important traits for OutNodeExIterator

Important traits for InNodeIterator

impl NodeTrait for Const
[src]

Important traits for OutNodeIterator

Important traits for OutNodeExIterator

Important traits for InNodeIterator

impl NodeTrait for Conv
[src]

Important traits for OutNodeIterator

Important traits for OutNodeExIterator

Important traits for InNodeIterator

impl NodeTrait for CopyB
[src]

Important traits for OutNodeIterator

Important traits for OutNodeExIterator

Important traits for InNodeIterator

impl NodeTrait for Deleted
[src]

Important traits for OutNodeIterator

Important traits for OutNodeExIterator

Important traits for InNodeIterator

impl NodeTrait for Div
[src]

Important traits for OutNodeIterator

Important traits for OutNodeExIterator

Important traits for InNodeIterator

impl NodeTrait for Dummy
[src]

Important traits for OutNodeIterator

Important traits for OutNodeExIterator

Important traits for InNodeIterator

impl NodeTrait for End
[src]

Important traits for OutNodeIterator

Important traits for OutNodeExIterator

Important traits for InNodeIterator

impl NodeTrait for Eor
[src]

Important traits for OutNodeIterator

Important traits for OutNodeExIterator

Important traits for InNodeIterator

impl NodeTrait for Free
[src]

Important traits for OutNodeIterator

Important traits for OutNodeExIterator

Important traits for InNodeIterator

impl NodeTrait for IJmp
[src]

Important traits for OutNodeIterator

Important traits for OutNodeExIterator

Important traits for InNodeIterator

impl NodeTrait for Id
[src]

Important traits for OutNodeIterator

Important traits for OutNodeExIterator

Important traits for InNodeIterator

impl NodeTrait for Jmp
[src]

Important traits for OutNodeIterator

Important traits for OutNodeExIterator

Important traits for InNodeIterator

impl NodeTrait for Load
[src]

Important traits for OutNodeIterator

Important traits for OutNodeExIterator

Important traits for InNodeIterator

impl NodeTrait for Member
[src]

Important traits for OutNodeIterator

Important traits for OutNodeExIterator

Important traits for InNodeIterator

impl NodeTrait for Minus
[src]

Important traits for OutNodeIterator

Important traits for OutNodeExIterator

Important traits for InNodeIterator

impl NodeTrait for Mod
[src]

Important traits for OutNodeIterator

Important traits for OutNodeExIterator

Important traits for InNodeIterator

impl NodeTrait for Mul
[src]

Important traits for OutNodeIterator

Important traits for OutNodeExIterator

Important traits for InNodeIterator

impl NodeTrait for Mulh
[src]

Important traits for OutNodeIterator

Important traits for OutNodeExIterator

Important traits for InNodeIterator

impl NodeTrait for Mux
[src]

Important traits for OutNodeIterator

Important traits for OutNodeExIterator

Important traits for InNodeIterator

impl NodeTrait for NoMem
[src]

Important traits for OutNodeIterator

Important traits for OutNodeExIterator

Important traits for InNodeIterator

impl NodeTrait for Not
[src]

Important traits for OutNodeIterator

Important traits for OutNodeExIterator

Important traits for InNodeIterator

impl NodeTrait for Offset
[src]

Important traits for OutNodeIterator

Important traits for OutNodeExIterator

Important traits for InNodeIterator

impl NodeTrait for Or
[src]

Important traits for OutNodeIterator

Important traits for OutNodeExIterator

Important traits for InNodeIterator

impl NodeTrait for Phi
[src]

Important traits for OutNodeIterator

Important traits for OutNodeExIterator

Important traits for InNodeIterator

impl NodeTrait for Pin
[src]

Important traits for OutNodeIterator

Important traits for OutNodeExIterator

Important traits for InNodeIterator

impl NodeTrait for Proj
[src]

Important traits for OutNodeIterator

Important traits for OutNodeExIterator

Important traits for InNodeIterator

impl NodeTrait for Raise
[src]

Important traits for OutNodeIterator

Important traits for OutNodeExIterator

Important traits for InNodeIterator

impl NodeTrait for Return
[src]

Important traits for OutNodeIterator

Important traits for OutNodeExIterator

Important traits for InNodeIterator

impl NodeTrait for Sel
[src]

Important traits for OutNodeIterator

Important traits for OutNodeExIterator

Important traits for InNodeIterator

impl NodeTrait for Shl
[src]

Important traits for OutNodeIterator

Important traits for OutNodeExIterator

Important traits for InNodeIterator

impl NodeTrait for Shr
[src]

Important traits for OutNodeIterator

Important traits for OutNodeExIterator

Important traits for InNodeIterator

impl NodeTrait for Shrs
[src]

Important traits for OutNodeIterator

Important traits for OutNodeExIterator

Important traits for InNodeIterator

impl NodeTrait for Size
[src]

Important traits for OutNodeIterator

Important traits for OutNodeExIterator

Important traits for InNodeIterator

impl NodeTrait for Start
[src]

Important traits for OutNodeIterator

Important traits for OutNodeExIterator

Important traits for InNodeIterator

impl NodeTrait for Store
[src]

Important traits for OutNodeIterator

Important traits for OutNodeExIterator

Important traits for InNodeIterator

impl NodeTrait for Sub
[src]

Important traits for OutNodeIterator

Important traits for OutNodeExIterator

Important traits for InNodeIterator

impl NodeTrait for Switch
[src]

Important traits for OutNodeIterator

Important traits for OutNodeExIterator

Important traits for InNodeIterator

impl NodeTrait for Sync
[src]

Important traits for OutNodeIterator

Important traits for OutNodeExIterator

Important traits for InNodeIterator

impl NodeTrait for Tuple
[src]

Important traits for OutNodeIterator

Important traits for OutNodeExIterator

Important traits for InNodeIterator

impl NodeTrait for Unknown
[src]

Important traits for OutNodeIterator

Important traits for OutNodeExIterator

Important traits for InNodeIterator

Loading content...