[−][src]Module libfirm_rs::nodes
Structs
Add | returns the sum of its operands |
Address | Symbolic constant that represents the address of an entity (variable or method) |
Align | A symbolic constant that represents the alignment of a type |
Alloc | Allocates a block of memory on the stack. |
Anchor | Utility node used to "hold" nodes in a graph that might possibly not be reachable by other means or which should be reachable immediately without searching through the graph. Each firm-graph contains exactly one anchor node whose address is always known. All other well-known graph-nodes like Start, End, NoMem, ... are found by looking at the respective Anchor operand. |
And | returns the result of a bitwise and operation of its operands |
Bad | Bad nodes indicate invalid input, which is values which should never be computed. |
Bitcast | Converts a value between modes with different arithmetics but same number of bits by reinterpreting the bits in the new mode |
Block | A basic block |
Builtin | performs a backend-specific builtin. |
Call | Calls other code. Control flow is transferred to ptr, additional operands are passed to the called code. Called code usually performs a return operation. The operands of this return operation are the result of the Call node. |
CallArgsIterator | |
CfgPredsIterator | |
Cmp | Compares its two operands and checks whether a specified relation (like less or equal) is fulfilled. |
Cond | Conditionally change control flow. |
Confirm | Specifies constraints for a value. This allows explicit representation of path-sensitive properties. (Example: This value is always >= 0 on 1 if-branch then all users within that branch are rerouted to a confirm-node specifying this property). |
Const | Returns a constant value. |
Conv | Converts values between modes |
CopyB | Copies a block of memory with statically known size/type. |
Deleted | Internal node which is temporary set to nodes which are already removed from the graph. |
Div | returns the quotient of its 2 operands |
DowncastErr | |
Dummy | A placeholder value. This is used when constructing cyclic graphs where you have cases where not all predecessors of a phi-node are known. Dummy nodes are used for the unknown predecessors and replaced later. |
End | Last node of a graph. It references nodes in endless loops (so called keepalive edges) |
EndKeepAliveIterator | |
Eor | returns the result of a bitwise exclusive or operation of its operands. |
Free | Frees a block of memory previously allocated by an Alloc node |
IJmp | Jumps to the code in its argument. The code has to be in the same function and the destination must be one of the blocks reachable by the tuple results |
Id | Returns its operand unchanged. |
InNodeIterator | |
Jmp | Jumps to the block connected through the out-value |
Load | Loads a value from memory (heap or stack). |
Member | Computes the address of a compound type member given the base address of an instance of the compound type. |
Minus | returns the additive inverse of its operand |
Mod | returns the remainder of its operands from an implied division. |
Mul | returns the product of its operands |
Mulh | returns the upper word of the product of its operands (the part which would not fit into the result mode of a normal Mul anymore) |
Mux | returns the false or true operand depending on the value of the sel operand |
NoMem | Placeholder node for cases where you don't need any memory input |
NodeDebugFmt | |
NodeDebugOpts | |
NodeFactory | |
Not | returns the bitwise complement of a value. Works for boolean values, too. |
Offset | Symbolic constant that represents the offset of an entity in its owner type. |
Or | returns the result of a bitwise or operation of its operands |
OutNodeExIterator | |
OutNodeIterator | |
Phi | Choose a value based on control flow. A phi node has 1 input for each predecessor of its block. If a block is entered from its nth predecessor all phi nodes produce their nth input as result. |
PhiPredsIterator | |
PhisOfBlockLinkedListIterator | |
Pin | Pin the value of the node node in the current block. No users of the Pin node can float above the Block of the Pin. The node cannot float behind this block. Often used to Pin the NoMem node. |
Proj | returns an entry of a tuple value |
Raise | Raises an exception. Unconditional change of control flow. Writes an explicit Except variable to memory to pass it to the exception handler. Must be lowered to a Call to a runtime check function. |
Return | Returns from the current function. Takes memory and return values as operands. |
ReturnResIterator | |
Sel | Computes the address of an array element from the array base pointer and an index. |
Shl | Returns its first operands bits shifted left by the amount of the 2nd operand. The right input (shift amount) must be an unsigned integer value. If the result mode has modulo_shift!=0, then the effective shift amount is the right input modulo this modulo_shift amount. |
Shr | Returns its first operands bits shifted right by the amount of the 2nd operand. No special handling for the sign bit is performed (zero extension). The right input (shift amount) must be an unsigned integer value. If the result mode has modulo_shift!=0, then the effective shift amount is the right input modulo this modulo_shift amount. |
Shrs | Returns its first operands bits shifted right by the amount of the 2nd operand. The leftmost bit (usually the sign bit) stays the same (sign extension). The right input (shift amount) must be an unsigned integer value. If the result mode has modulo_shift!=0, then the effective shift amount is the right input modulo this modulo_shift amount. |
Size | A symbolic constant that represents the size of a type |
Start | The first node of a graph. Execution starts with this node. |
Store | Stores a value into memory (heap or stack). |
Sub | returns the difference of its operands |
Switch | Change control flow. The destination is chosen based on an integer input value which is looked up in a table. |
Sync | The Sync operation unifies several partial memory blocks. These blocks have to be pairwise disjunct or the values in common locations have to be identical. This operation allows to specify all operations that eventually need several partial memory blocks as input with a single entrance by unifying the memories with a preceding Sync operation. |
Tuple | Builds a Tuple from single values. |
Unknown | Returns an unknown (at compile- and runtime) value. It is a valid optimization to replace an Unknown by any other constant value. |
Enums
NewKind | |
Node | |
ProjKind | |
VisitTime |
Traits
BinOp | |
NodeDebug | |
NodeTrait | 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. |
UnaryOp | |
ValueNode |
Functions
get_Block_dom_depth⚠ | |
internal_try_as_value_node | |
try_as_bin_op | |
try_as_unary_op | |
try_as_value_node |