[llvm-commits] CVS: llvm/lib/Analysis/DataStructure/DataStructure.cpp DataStructureAA.cpp Printer.cpp TopDownClosure.cpp

Chris Lattner lattner at cs.uiuc.edu
Sat Jun 21 22:05:01 PDT 2003


Changes in directory llvm/lib/Analysis/DataStructure:

DataStructure.cpp updated: 1.100 -> 1.101
DataStructureAA.cpp updated: 1.4 -> 1.5
Printer.cpp updated: 1.52 -> 1.53
TopDownClosure.cpp updated: 1.40 -> 1.41

---
Log message:

Remove support for the MultiObject flag, which was fundamentally broken


---
Diffs of the changes:

Index: llvm/lib/Analysis/DataStructure/DataStructure.cpp
diff -u llvm/lib/Analysis/DataStructure/DataStructure.cpp:1.100 llvm/lib/Analysis/DataStructure/DataStructure.cpp:1.101
--- llvm/lib/Analysis/DataStructure/DataStructure.cpp:1.100	Thu Jun 19 16:15:11 2003
+++ llvm/lib/Analysis/DataStructure/DataStructure.cpp	Sat Jun 21 22:03:52 2003
@@ -68,12 +68,6 @@
           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 @@
   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 @@
   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!


Index: llvm/lib/Analysis/DataStructure/DataStructureAA.cpp
diff -u llvm/lib/Analysis/DataStructure/DataStructureAA.cpp:1.4 llvm/lib/Analysis/DataStructure/DataStructureAA.cpp:1.5
--- llvm/lib/Analysis/DataStructure/DataStructureAA.cpp:1.4	Thu Jun 19 16:15:11 2003
+++ llvm/lib/Analysis/DataStructure/DataStructureAA.cpp	Sat Jun 21 22:03:52 2003
@@ -96,8 +96,8 @@
 
           // 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...


Index: llvm/lib/Analysis/DataStructure/Printer.cpp
diff -u llvm/lib/Analysis/DataStructure/Printer.cpp:1.52 llvm/lib/Analysis/DataStructure/Printer.cpp:1.53
--- llvm/lib/Analysis/DataStructure/Printer.cpp:1.52	Thu Jun 19 16:15:11 2003
+++ llvm/lib/Analysis/DataStructure/Printer.cpp	Sat Jun 21 22:03:52 2003
@@ -47,7 +47,6 @@
     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


Index: llvm/lib/Analysis/DataStructure/TopDownClosure.cpp
diff -u llvm/lib/Analysis/DataStructure/TopDownClosure.cpp:1.40 llvm/lib/Analysis/DataStructure/TopDownClosure.cpp:1.41
--- llvm/lib/Analysis/DataStructure/TopDownClosure.cpp:1.40	Tue Feb 11 17:11:44 2003
+++ llvm/lib/Analysis/DataStructure/TopDownClosure.cpp	Sat Jun 21 22:03:52 2003
@@ -45,6 +45,7 @@
 // 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;





More information about the llvm-commits mailing list