void initialize(const Module *M, const DataStructures *DS) { parseValue(M); assert(V && "Failed to parse value?"); if (isa<GlobalValue>(V)) { DSGraph *G = DS->getGlobalsGraph(); assert(G->hasNodeForValue(V) && "Node not in specified graph!"); NH = G->getNodeForValue(V); } else { assert(F && "No function?"); DSGraph *G = DS->getDSGraph(*F); assert(G->hasNodeForValue(V) && "Node not in specified graph!"); NH = G->getNodeForValue(V); } // Handle offsets, if any // For each offset in the offsets vector, follow the link at that offset for (OffsetVectorTy::const_iterator I = offsets.begin(), E = offsets.end(); I != E; ++I ) { assert(!NH.isNull() && "Null NodeHandle?"); assert(NH.hasLink(*I) && "Handle doesn't have link?"); // Follow the offset NH = NH.getLink(*I); } }