Home | History | Annotate | Download | only in Core

Lines Matching refs:ExplodedNode

10 //  This file defines the template classes ExplodedNode and ExplodedGraph,
34 ExplodedNode::Auditor::~Auditor() {}
37 static ExplodedNode::Auditor* NodeAuditor = 0;
40 void ExplodedNode::SetAuditor(ExplodedNode::Auditor* A) {
67 bool ExplodedGraph::shouldCollect(const ExplodedNode *node) {
101 const ExplodedNode *pred = *(node->pred_begin());
105 const ExplodedNode *succ = *(node->succ_begin());
159 void ExplodedGraph::collectNode(ExplodedNode *node) {
165 ExplodedNode *pred = *(node->pred_begin());
166 ExplodedNode *succ = *(node->succ_begin());
172 node->~ExplodedNode();
189 ExplodedNode *node = *it;
197 // ExplodedNode.
201 // it can be either a pointer to a single ExplodedNode, or a pointer to a
210 typedef BumpVector<ExplodedNode *> ExplodedNodeVector;
211 typedef llvm::PointerUnion<ExplodedNode *, ExplodedNodeVector *> GroupStorage;
213 void ExplodedNode::addPredecessor(ExplodedNode *V, ExplodedGraph &G) {
222 void ExplodedNode::NodeGroup::replaceNode(ExplodedNode *node) {
226 assert(Storage.is<ExplodedNode *>());
228 assert(Storage.is<ExplodedNode *>());
231 void ExplodedNode::NodeGroup::addNode(ExplodedNode *N, ExplodedGraph &G) {
237 assert(Storage.is<ExplodedNode *>());
245 ExplodedNode *Old = Storage.get<ExplodedNode *>();
260 unsigned ExplodedNode::NodeGroup::size() const {
272 ExplodedNode * const *ExplodedNode::NodeGroup::begin() const {
284 ExplodedNode * const *ExplodedNode::NodeGroup::end() const {
296 ExplodedNode *ExplodedGraph::getNode(const ProgramPoint &L,
342 typedef llvm::DenseSet<const ExplodedNode*> Pass1Ty;
349 SmallVector<const ExplodedNode*, 10> WL1, WL2;
360 const ExplodedNode *N = WL1.back();
377 for (ExplodedNode::pred_iterator I = N->Preds.begin(), E = N->Preds.end();
391 const ExplodedNode *N = WL2.back();
400 ExplodedNode *NewN = G->getNode(N->getLocation(), N->State, N->isSink(), 0);
415 for (ExplodedNode::pred_iterator I = N->Preds.begin(), E = N->Preds.end();
421 NewN->addPredecessor(const_cast<ExplodedNode *>(PI->second), *G);
428 for (ExplodedNode::succ_iterator I = N->Succs.begin(), E = N->Succs.end();
432 const_cast<ExplodedNode *>(PI->second)->addPredecessor(NewN, *G);