[llvm-commits] CVS: llvm/include/llvm/Analysis/DSSupport.h

Chris Lattner lattner at cs.uiuc.edu
Sun Nov 10 00:49:06 PST 2002


Changes in directory llvm/include/llvm/Analysis:

DSSupport.h updated: 1.5 -> 1.6

---
Log message:

Implement support for swapping.  Callsites now sort by callee


---
Diffs of the changes:

Index: llvm/include/llvm/Analysis/DSSupport.h
diff -u llvm/include/llvm/Analysis/DSSupport.h:1.5 llvm/include/llvm/Analysis/DSSupport.h:1.6
--- llvm/include/llvm/Analysis/DSSupport.h:1.5	Wed Nov  6 23:21:15 2002
+++ llvm/include/llvm/Analysis/DSSupport.h	Sun Nov 10 00:48:11 2002
@@ -68,6 +68,8 @@
   }
   bool operator!=(const DSNodeHandle &H) const { return !operator==(H); }
 
+  inline void swap(DSNodeHandle &H);
+
   // Allow explicit conversion to DSNode...
   DSNode *getNode() const { return N; }
   unsigned getOffset() const { return Offset; }
@@ -95,6 +97,7 @@
   inline void setLink(unsigned Num, const DSNodeHandle &NH);
 };
 
+inline void swap(DSNodeHandle &NH1, DSNodeHandle &NH2) { NH1.swap(NH2); }
 
 //===----------------------------------------------------------------------===//
 /// DSTypeRec - This structure is used to represent a single type that is held
@@ -205,11 +208,21 @@
     return CallArgs[i];
   }
 
+  void swap(DSCallSite &CS) {
+    if (this != &CS) {
+      std::swap(Inst, CS.Inst);
+      std::swap(RetVal, CS.RetVal);
+      std::swap(Callee, CS.Callee);
+      std::swap(CallArgs, CS.CallArgs);
+      std::swap(ResolvingCaller, CS.ResolvingCaller);
+    }
+  }
+
   bool operator<(const DSCallSite &CS) const {
+    if (Callee < CS.Callee) return true;   // This must sort by callee first!
+    if (Callee > CS.Callee) return false;
     if (RetVal < CS.RetVal) return true;
     if (RetVal > CS.RetVal) return false;
-    if (Callee < CS.Callee) return true;
-    if (Callee > CS.Callee) return false;
     return CallArgs < CS.CallArgs;
   }
 
@@ -219,5 +232,6 @@
   }
 };
 
+inline void swap(DSCallSite &CS1, DSCallSite &CS2) { CS1.swap(CS2); }
 
 #endif





More information about the llvm-commits mailing list