[][src]Struct libfirm_rs::Graph

pub struct Graph { /* fields omitted */ }

Methods

impl Graph
[src]

Important traits for EndKeepAliveIterator

Compute all post dominator information in the graph

NOTE: Also constructs out information NOTE: calling this function multiple times without changing the graph will not recompute information and is cheap.

Walks over reachable Block nodes in the graph, starting at the end_block.

For each block, the walker function is called twice, once before and once after all predecessors of the block are visited. This is indicated by the VisitTime parameter to the closure.

Parameters

  • walker walker function

Has its own visited flag, so that it can be interleaved with the other walker. Does not use the link field.

Replace the given node with a "bad" node, thus marking it and all the nodes dominated by it as unreachable. The whole subtree can then be removed using Graph::remove_bads.

impl Graph
[src]

Creates a new Add-node.

  • block The block.
  • irn_left left
  • irn_right right

Creates a new Address-node.

  • entity entity to operate on

Creates a new Align-node.

  • mode mode of the operations result
  • ty type to operate on

Creates a new Alloc-node.

  • block The block.
  • irn_mem mem
  • irn_size size
  • alignment alignment of the memory block (must be a power of 2)

Creates a new And-node.

  • block The block.
  • irn_left left
  • irn_right right

Creates a new Bad-node.

  • mode mode of the operations result

Creates a new Bitcast-node.

  • block The block.
  • irn_op op
  • mode mode of the operations result

Creates a new Block-node.

  • in_ additional inputs

Creates a new Builtin-node.

  • block The block.
  • irn_mem mem
  • in_ additional inputs
  • kind kind of builtin
  • ty method type for the builtin call

Creates a new Call-node.

  • block The block.
  • irn_mem mem
  • irn_ptr ptr
  • in_ additional inputs
  • ty type of the call (usually type of the called procedure)

Creates a new Cmp-node.

  • block The block.
  • irn_left left
  • irn_right right
  • relation Comparison relation

Creates a new Cond-node.

  • block The block.
  • irn_selector selector

Creates a new Confirm-node.

  • block The block.
  • irn_value value
  • irn_bound bound
  • relation relation of value to bound

Creates a new Const-node.

  • tarval constant value (a tarval object)

Creates a new Conv-node.

  • block The block.
  • irn_op op
  • mode mode of the operations result

Creates a new CopyB-node.

  • block The block.
  • irn_mem mem
  • irn_dst dst
  • irn_src src
  • ty type of copied data
  • flags specifies volatility

Creates a new Div-node.

  • block The block.
  • irn_mem mem
  • irn_left left
  • irn_right right
  • pinned pinned state

Creates a new Dummy-node.

  • mode mode of the operations result

Creates a new End-node.

  • in_ additional inputs

Creates a new Eor-node.

  • block The block.
  • irn_left left
  • irn_right right

Creates a new Free-node.

  • block The block.
  • irn_mem mem
  • irn_ptr ptr

Creates a new IJmp-node.

  • block The block.
  • irn_target target

Creates a new Jmp-node.

  • block The block.

Creates a new Load-node.

  • block The block.
  • irn_mem mem
  • irn_ptr ptr
  • mode mode of the value to be loaded
  • ty The type of the object which is stored at ptr (need not match with mode)
  • flags specifies alignment, volatility and pin state

Creates a new Member-node.

  • block The block.
  • irn_ptr ptr
  • entity entity which is selected

Creates a new Minus-node.

  • block The block.
  • irn_op op

Creates a new Mod-node.

  • block The block.
  • irn_mem mem
  • irn_left left
  • irn_right right
  • pinned pinned state

Creates a new Mul-node.

  • block The block.
  • irn_left left
  • irn_right right

Creates a new Mulh-node.

  • block The block.
  • irn_left left
  • irn_right right

Creates a new Mux-node.

  • block The block.
  • irn_sel sel
  • irn_false false
  • irn_true true

Creates a new NoMem-node.

Creates a new Not-node.

  • block The block.
  • irn_op op

Creates a new Offset-node.

  • mode mode of the operations result
  • entity entity to operate on

Creates a new Or-node.

  • block The block.
  • irn_left left
  • irn_right right

Creates a new Phi-node.

  • block The block.
  • in_ additional inputs
  • mode mode of the operations result

Creates a new Pin-node.

  • block The block.
  • irn_op op

Creates a new Proj-node.

  • irn_pred pred
  • mode mode of the operations result
  • num number of tuple component to be extracted

Creates a new Raise-node.

  • block The block.
  • irn_mem mem
  • irn_exo_ptr exo_ptr

Creates a new Return-node.

  • block The block.
  • irn_mem mem
  • in_ additional inputs

Creates a new Sel-node.

  • block The block.
  • irn_ptr ptr
  • irn_index index
  • ty array type

Creates a new Shl-node.

  • block The block.
  • irn_left left
  • irn_right right

Creates a new Shr-node.

  • block The block.
  • irn_left left
  • irn_right right

Creates a new Shrs-node.

  • block The block.
  • irn_left left
  • irn_right right

Creates a new Size-node.

  • mode mode of the operations result
  • ty type to operate on

Creates a new Start-node.

Creates a new Store-node.

  • block The block.
  • irn_mem mem
  • irn_ptr ptr
  • irn_value value
  • ty The type of the object which is stored at ptr (need not match with value's type)
  • flags specifies alignment, volatility and pin state

Creates a new Sub-node.

  • block The block.
  • irn_left left
  • irn_right right

Creates a new Switch-node.

  • block The block.
  • irn_selector selector
  • n_outs number of outputs (including pn_Switch_default)
  • table table describing mapping from input values to Proj numbers

Creates a new Sync-node.

  • block The block.
  • in_ additional inputs

Creates a new Tuple-node.

  • block The block.
  • in_ additional inputs

Creates a new Unknown-node.

  • mode mode of the operations result

Trait Implementations

impl From<*mut ir_graph> for Graph
[src]

impl Clone for Graph
[src]

Performs copy-assignment from source. Read more

impl Copy for Graph
[src]

impl Into<*mut ir_graph> for Graph
[src]

impl Into<*const ir_graph> for Graph
[src]

impl Debug for Graph
[src]

Auto Trait Implementations

impl !Send for Graph

impl !Sync for Graph

Blanket Implementations

impl<T> From for T
[src]

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

impl<T, U> TryFrom for T where
    T: From<U>, 
[src]

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

impl<T> Any for T where
    T: 'static + ?Sized
[src]