llir-opt
0.0.1
Low-Level Post-Link Optimiser for OCaml and C
|
#include <passes/pta/node.h>
Public Member Functions | |
SetNode (uint64_t id) | |
Constructs a new set node. | |
~SetNode () | |
Deletes a set node. | |
DerefNode * | Deref () |
Returns a node dereferencing this one. | |
void | AddFunc (ID< Func * > func) |
Adds a function to the set. | |
void | AddExtern (ID< Extern * > ext) |
Adds an extern to the set. | |
void | AddNode (ID< SetNode * > node) |
Adds a node to the set. | |
bool | Propagate (SetNode *that) |
Propagates values to another set. | |
bool | Equals (SetNode *that) |
Checks if two nodes are equal. | |
bool | AddSet (SetNode *node) |
Adds an edge from this node to another set node. | |
bool | AddDeref (DerefNode *node) |
Adds an edge from this node to another set node. | |
llvm::iterator_range< BitSet< SetNode * >::iterator > | sets () |
Iterator over the outgoing edges. | |
llvm::iterator_range< BitSet< DerefNode * >::iterator > | derefs () |
Iterator over the outgoing edges. | |
llvm::iterator_range< BitSet< Func * >::iterator > | points_to_func () |
Functions pointed to. | |
llvm::iterator_range< BitSet< Extern * >::iterator > | points_to_ext () |
Externs pointed to. | |
llvm::iterator_range< BitSet< SetNode * >::iterator > | points_to_node () |
Nodes pointed to. | |
void | sets (std::function< ID< SetNode * >(ID< SetNode * >)> &&f) |
Edge traversal, applying fixups. | |
void | points_to_node (std::function< ID< SetNode * >(ID< SetNode * >)> &&f) |
Node traversal, applying fixups. | |
![]() | |
GraphNode (Kind kind, uint64_t id) | |
Constructs a graph node. | |
virtual | ~GraphNode () |
Deletes the node. | |
uint64_t | GetID () const |
Returns the ID of the node. | |
bool | IsDeref () const |
Checks if the node is a load. | |
bool | IsSet () const |
Checks if the ndoe is a set. | |
SetNode * | AsSet () |
Returns the node as a set, if it is one. | |
DerefNode * | AsDeref () |
Returns the node as a deref, if it is one. | |
![]() | |
virtual | ~Node () |
Virtual destructor. | |
GraphNode * | ToGraph () |
Converts the node to a graph node. | |
RootNode * | AsRoot () |
Converts the node to a root node (if it is one). | |
Friends | |
class | Graph |
class | RootNode |
class | DerefNode |
Additional Inherited Members | |
![]() | |
enum | Kind { SET, DEREF, ROOT } |
Enumeration of enum kinds. | |
![]() | |
Node (Kind kind) | |
Creates a new node. | |
![]() | |
uint64_t | id_ |
ID of the node. | |
![]() | |
Kind | kind_ |
Node kind. | |
Set node in the graph.