aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Analysis
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2003-06-22 03:03:52 +0000
committerChris Lattner <sabre@nondot.org>2003-06-22 03:03:52 +0000
commite0f4b98026aa25969106dd8143a8eff03ab99975 (patch)
tree0da17e746b748c0bdd7f9811c68fc01657a3ca50 /lib/Analysis
parent5bb8776eced883293b3d2e11e52ad250a3a91015 (diff)
downloadexternal_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')
-rw-r--r--lib/Analysis/DataStructure/DataStructure.cpp11
-rw-r--r--lib/Analysis/DataStructure/DataStructureAA.cpp4
-rw-r--r--lib/Analysis/DataStructure/Printer.cpp1
-rw-r--r--lib/Analysis/DataStructure/TopDownClosure.cpp1
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;