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:
parent
fb50c702c4
commit
06ffc5b249
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user