diff options
author | Chris Lattner <sabre@nondot.org> | 2003-06-22 03:03:52 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2003-06-22 03:03:52 +0000 |
commit | e0f4b98026aa25969106dd8143a8eff03ab99975 (patch) | |
tree | 0da17e746b748c0bdd7f9811c68fc01657a3ca50 /lib/Analysis/DataStructure | |
parent | 5bb8776eced883293b3d2e11e52ad250a3a91015 (diff) | |
download | external_llvm-e0f4b98026aa25969106dd8143a8eff03ab99975.zip external_llvm-e0f4b98026aa25969106dd8143a8eff03ab99975.tar.gz external_llvm-e0f4b98026aa25969106dd8143a8eff03ab99975.tar.bz2 |
Remove support for the MultiObject flag, which was fundamentally broken
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6840 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Analysis/DataStructure')
-rw-r--r-- | lib/Analysis/DataStructure/DataStructure.cpp | 11 | ||||
-rw-r--r-- | lib/Analysis/DataStructure/DataStructureAA.cpp | 4 | ||||
-rw-r--r-- | lib/Analysis/DataStructure/Printer.cpp | 1 | ||||
-rw-r--r-- | lib/Analysis/DataStructure/TopDownClosure.cpp | 1 |
4 files changed, 3 insertions, 14 deletions
diff --git a/lib/Analysis/DataStructure/DataStructure.cpp b/lib/Analysis/DataStructure/DataStructure.cpp index 9e00860..2f64eb0 100644 --- a/lib/Analysis/DataStructure/DataStructure.cpp +++ b/lib/Analysis/DataStructure/DataStructure.cpp @@ -68,12 +68,6 @@ void DSNode::assertOK() const { Ty == Type::VoidTy && (Size == 0 || (NodeType & DSNode::Array))) && "Node not OK!"); - - // Check to ensure that the multiobject constraints are met... - unsigned Comp = NodeType & DSNode::Composition; - assert((NodeType & DSNode::MultiObject) || - Comp == 0 || Comp == DSNode::AllocaNode || Comp == DSNode::HeapNode || - Comp == DSNode::GlobalNode || Comp == DSNode::UnknownNode); } /// forwardNode - Mark this node as being obsolete, and all references to it @@ -103,8 +97,6 @@ void DSNode::addGlobal(GlobalValue *GV) { if (I == Globals.end() || *I != GV) { //assert(GV->getType()->getElementType() == Ty); Globals.insert(I, GV); - if (NodeType & DSNode::Composition) - NodeType |= DSNode::MultiObject; NodeType |= GlobalNode; } } @@ -483,9 +475,6 @@ void DSNode::MergeNodes(DSNodeHandle& CurNodeH, DSNodeHandle& NH) { assert(!CurNodeH.getNode()->isDeadNode()); // Merge the NodeType information... - if ((CurNodeH.getNode()->NodeType & DSNode::Composition) != 0 && - (N->NodeType & DSNode::Composition) != 0) - N->NodeType |= DSNode::MultiObject; // Multiple composition -> multiobject CurNodeH.getNode()->NodeType |= N->NodeType; // Start forwarding to the new node! diff --git a/lib/Analysis/DataStructure/DataStructureAA.cpp b/lib/Analysis/DataStructure/DataStructureAA.cpp index d7c40c6..3c89e6d 100644 --- a/lib/Analysis/DataStructure/DataStructureAA.cpp +++ b/lib/Analysis/DataStructure/DataStructureAA.cpp @@ -96,8 +96,8 @@ AliasAnalysis::AliasResult DSAA::alias(const Value *V1, unsigned V1Size, // Both point to the same node and same offset, and there is only one // physical memory object represented in the node, return must alias. - if (O1 == O2 && !N1->isMultiObject()) - return MustAlias; // Exactly the same object & offset + //if (O1 == O2 && !N1->isMultiObject()) + // return MustAlias; // Exactly the same object & offset // See if they point to different offsets... if so, we may be able to // determine that they do not alias... diff --git a/lib/Analysis/DataStructure/Printer.cpp b/lib/Analysis/DataStructure/Printer.cpp index 9bde0b7..50d8933 100644 --- a/lib/Analysis/DataStructure/Printer.cpp +++ b/lib/Analysis/DataStructure/Printer.cpp @@ -47,7 +47,6 @@ static std::string getCaption(const DSNode *N, const DSGraph *G) { if (NodeType & DSNode::Incomplete ) OS << "I"; if (NodeType & DSNode::Modified ) OS << "M"; if (NodeType & DSNode::Read ) OS << "R"; - if (NodeType & DSNode::MultiObject) OS << "m"; #ifndef NDEBUG if (NodeType & DSNode::DEAD ) OS << "<dead>"; #endif diff --git a/lib/Analysis/DataStructure/TopDownClosure.cpp b/lib/Analysis/DataStructure/TopDownClosure.cpp index def5492..3138ada 100644 --- a/lib/Analysis/DataStructure/TopDownClosure.cpp +++ b/lib/Analysis/DataStructure/TopDownClosure.cpp @@ -45,6 +45,7 @@ bool TDDataStructures::run(Module &M) { // has no way to extend the lifetime of the pass, which screws up ds-aa. // void TDDataStructures::releaseMyMemory() { + return; for (hash_map<const Function*, DSGraph*>::iterator I = DSInfo.begin(), E = DSInfo.end(); I != E; ++I) delete I->second; |