Add some methods.
authorChris Lattner <sabre@nondot.org>
Mon, 24 Jan 2005 19:55:34 +0000 (19:55 +0000)
committerChris Lattner <sabre@nondot.org>
Mon, 24 Jan 2005 19:55:34 +0000 (19:55 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19817 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Analysis/DataStructure/DSGraph.h
include/llvm/Analysis/DataStructure/DataStructure.h

index 5efdde9a69cf9df90a81c934af02e042f8a27a9c..bc5f8242c15a7b8ee9ffa183db7a916bf1dab1b1 100644 (file)
@@ -55,6 +55,11 @@ public:
 
   void erase(Value *V) { erase(find(V)); }
 
+  void eraseIfExists(Value *V) {
+    iterator I = find(V);
+    if (I != end()) erase(I);
+  }
+
   /// replaceScalar - When an instruction needs to be modified, this method can
   /// be used to update the scalar map to remove the old and insert the new.
   ///
@@ -65,6 +70,14 @@ public:
     erase(I);
   }
 
+  /// copyScalarIfExists - If Old exists in the scalar map, make New point to
+  /// whatever Old did.
+  void copyScalarIfExists(Value *Old, Value *New) {
+    iterator I = find(Old);
+    if (I != end())
+      ValueMap.insert(std::make_pair(New, I->second));
+  }
+
   DSNodeHandle &operator[](Value *V) {
     std::pair<iterator,bool> IP = 
       ValueMap.insert(std::make_pair(V, DSNodeHandle()));
index 627c7c4d7b498f7b5562a299aaf33dfa742cea79..eb0134d97fc2aacbcceedaa4530df5bb7fc70b58 100644 (file)
@@ -113,6 +113,11 @@ public:
 
   DSGraph &getGlobalsGraph() const { return *GlobalsGraph; }
 
+  /// deleteValue/copyValue - Interfaces to update the DSGraphs in the program.
+  /// These correspond to the interfaces defined in the AliasAnalysis class.
+  void deleteValue(Value *V);
+  void copyValue(Value *From, Value *To);
+
   /// print - Print out the analysis results...
   ///
   void print(std::ostream &O, const Module *M) const;
@@ -175,6 +180,11 @@ public:
 
   DSGraph &getGlobalsGraph() const { return *GlobalsGraph; }
 
+  /// deleteValue/copyValue - Interfaces to update the DSGraphs in the program.
+  /// These correspond to the interfaces defined in the AliasAnalysis class.
+  void deleteValue(Value *V);
+  void copyValue(Value *From, Value *To);
+
   /// print - Print out the analysis results...
   ///
   void print(std::ostream &O, const Module *M) const;