|
LLVM
4.0.0
|
The Program Expression Graph (PEG) of CFL analysis CFLGraph is auxiliary data structure used by CFL-based alias analysis to describe flow-insensitive pointer-related behaviors. More...
#include <CFLGraph.h>
Classes | |
| struct | Edge |
| struct | NodeInfo |
| class | ValueInfo |
Public Types | |
| typedef InstantiatedValue | Node |
| typedef std::vector< Edge > | EdgeList |
| typedef ValueMap::const_iterator | const_value_iterator |
Public Member Functions | |
| bool | addNode (Node N, AliasAttrs Attr=AliasAttrs()) |
| void | addAttr (Node N, AliasAttrs Attr) |
| void | addEdge (Node From, Node To, int64_t Offset=0) |
| const NodeInfo * | getNode (Node N) const |
| AliasAttrs | attrFor (Node N) const |
| iterator_range < const_value_iterator > | value_mappings () const |
The Program Expression Graph (PEG) of CFL analysis CFLGraph is auxiliary data structure used by CFL-based alias analysis to describe flow-insensitive pointer-related behaviors.
Given an LLVM function, the main purpose of this graph is to abstract away unrelated facts and translate the rest into a form that can be easily digested by CFL analyses. Each Node in the graph is an InstantiatedValue, and each edge represent a pointer assignment between InstantiatedValue. Pointer references/dereferences are not explicitly stored in the graph: we implicitly assume that for each node (X, I) it has a dereference edge to (X, I+1) and a reference edge to (X, I-1).
Definition at line 37 of file CFLGraph.h.
Definition at line 89 of file CFLGraph.h.
| typedef std::vector<Edge> llvm::cflaa::CFLGraph::EdgeList |
Definition at line 46 of file CFLGraph.h.
Definition at line 39 of file CFLGraph.h.
|
inline |
Definition at line 99 of file CFLGraph.h.
References assert().
Definition at line 105 of file CFLGraph.h.
|
inline |
Definition at line 91 of file CFLGraph.h.
References assert(), llvm::cflaa::InstantiatedValue::DerefLevel, and llvm::cflaa::InstantiatedValue::Val.
|
inline |
Definition at line 122 of file CFLGraph.h.
References assert().
|
inline |
Definition at line 128 of file CFLGraph.h.
References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::begin(), and llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end().
Referenced by buildAttrMap(), and initializeWorkList().
1.8.6