Implement a "union-findy" version of DS-Analysis, which eliminates the

Referrers list on DSNodes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5536 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner
2003-02-11 23:11:51 +00:00
parent 2cec1d3867
commit 72d29a4b00
10 changed files with 388 additions and 362 deletions
@@ -183,16 +183,10 @@ void TDDataStructures::calculateGraph(Function &F) {
for (unsigned i = 0, e = NewCS.getNumPtrArgs();
i != e && AI != Callee->aend(); ++i, ++AI) {
// Advance the argument iterator to the first pointer argument...
while (!DS::isPointerType(AI->getType())) {
while (AI != Callee->aend() && !DS::isPointerType(AI->getType()))
++AI;
#ifndef NDEBUG
if (AI == Callee->aend())
std::cerr << "Bad call to Func: " << Callee->getName() << "\n";
#endif
assert(AI != Callee->aend() &&
"# Args provided is not # Args required!");
}
if (AI == Callee->aend()) break;
// Add the link from the argument scalar to the provided value
DSNodeHandle &NH = CG.getNodeForValue(AI);
assert(NH.getNode() && "Pointer argument without scalarmap entry?");