1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 19:12:56 +02:00

Add accessors and a method to get all the outgoing links for ALL nodes

llvm-svn: 2055
This commit is contained in:
Chris Lattner 2002-03-30 09:07:51 +00:00
parent fb50c702c4
commit 06ffc5b249

View File

@ -131,6 +131,10 @@ public:
assert(i < getNumLinks() && "Field links access out of range...");
return FieldLinks[i];
}
const PointerValSet &getLink(unsigned i) const {
assert(i < getNumLinks() && "Field links access out of range...");
return FieldLinks[i];
}
// addReferrer - Keep the referrer set up to date...
void addReferrer(PointerValSet *PVS) { Referrers.push_back(PVS); }
@ -146,6 +150,18 @@ public:
const Type *getType() const { return Ty; }
// getNumOutgoingLinks - Return the number of outgoing links, which is usually
// the number of normal links, but for call nodes it also includes their
// arguments.
//
virtual unsigned getNumOutgoingLinks() const { return getNumLinks(); }
virtual PointerValSet &getOutgoingLink(unsigned Link) {
return getLink(Link);
}
virtual const PointerValSet &getOutgoingLink(unsigned Link) const {
return getLink(Link);
}
void print(std::ostream &O) const;
virtual std::string getCaption() const = 0;
@ -258,6 +274,22 @@ public:
ArgLinks.clear();
}
// getNumOutgoingLinks - Return the number of outgoing links, which is usually
// the number of normal links, but for call nodes it also includes their
// arguments.
//
virtual unsigned getNumOutgoingLinks() const {
return getNumLinks() + getNumArgs();
}
virtual PointerValSet &getOutgoingLink(unsigned Link) {
if (Link < getNumLinks()) return getLink(Link);
return getArgValues(Link-getNumLinks());
}
virtual const PointerValSet &getOutgoingLink(unsigned Link) const {
if (Link < getNumLinks()) return getLink(Link);
return getArgValues(Link-getNumLinks());
}
// isEquivalentTo - Return true if the nodes should be merged...
virtual bool isEquivalentTo(DSNode *Node) const;
@ -393,6 +425,7 @@ public:
//
std::map<Value*, PointerValSet> &getValueMap() { return ValueMap; }
const PointerValSet &getRetNodes() const { return RetNode; }
void printFunction(std::ostream &O, const char *Label) const;