[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