* Implement fully general merging of array subscripts on demand! This
authorChris Lattner <sabre@nondot.org>
Wed, 2 Oct 2002 06:24:29 +0000 (06:24 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 2 Oct 2002 06:24:29 +0000 (06:24 +0000)
      does not handle the initial pointer index case yet though.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4011 91177308-0d34-0410-b5e6-96231b3b80d8

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

index af2105576e0177fb11b1469b90e55b8533b3d08a..d2e18063274c05d38c70030bf0163369a372ddc4 100644 (file)
@@ -209,6 +209,18 @@ public:
   ///
   void mergeWith(const DSNodeHandle &NH, unsigned Offset);
 
+  /// mergeIndexes - If we discover that two indexes are equivalent and must be
+  /// merged, this function is used to do the dirty work.
+  ///
+  void mergeIndexes(unsigned idx1, unsigned idx2) {
+    assert(idx1 < getSize() && idx2 < getSize() && "Indexes out of range!");
+    signed char MV1 = MergeMap[idx1];
+    signed char MV2 = MergeMap[idx2];
+    if (MV1 != MV2)
+      mergeMappedValues(MV1, MV2);
+  }
+
+
   /// addGlobal - Add an entry for a global value to the Globals list.  This
   /// also marks the node with the 'G' flag if it does not already have it.
   ///
index af2105576e0177fb11b1469b90e55b8533b3d08a..d2e18063274c05d38c70030bf0163369a372ddc4 100644 (file)
@@ -209,6 +209,18 @@ public:
   ///
   void mergeWith(const DSNodeHandle &NH, unsigned Offset);
 
+  /// mergeIndexes - If we discover that two indexes are equivalent and must be
+  /// merged, this function is used to do the dirty work.
+  ///
+  void mergeIndexes(unsigned idx1, unsigned idx2) {
+    assert(idx1 < getSize() && idx2 < getSize() && "Indexes out of range!");
+    signed char MV1 = MergeMap[idx1];
+    signed char MV2 = MergeMap[idx2];
+    if (MV1 != MV2)
+      mergeMappedValues(MV1, MV2);
+  }
+
+
   /// addGlobal - Add an entry for a global value to the Globals list.  This
   /// also marks the node with the 'G' flag if it does not already have it.
   ///