aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNate Begeman <natebegeman@mac.com>2005-06-15 18:28:44 +0000
committerNate Begeman <natebegeman@mac.com>2005-06-15 18:28:44 +0000
commitcb647519d34184fe41aa7e072076ae70634bc3d7 (patch)
treee89163704aec1979b0def0966c731c1eb6a73e50
parent877c3e2b811f797c95cac6ce46fc59afcc9cf5e7 (diff)
Add some operators the PowerPC backend needs to efficiently and correctly
generate conditional branches. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22214 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/llvm/ADT/ilist20
1 files changed, 20 insertions, 0 deletions
diff --git a/include/llvm/ADT/ilist b/include/llvm/ADT/ilist
index 877e1445f4..1d01b63fe7 100644
--- a/include/llvm/ADT/ilist
+++ b/include/llvm/ADT/ilist
@@ -169,6 +169,26 @@ void operator+(int, ilist_iterator<T>);
template<typename T>
void operator+(ilist_iterator<T>,int);
+// operator!=/operator== - Allow mixed comparisons without dereferencing
+// the iterator, which could very likely be pointing to end().
+template<typename T>
+bool operator!=(const T* LHS, const ilist_iterator<const T> &RHS) {
+ return LHS != RHS.getNodePtrUnchecked();
+}
+template<typename T>
+bool operator==(const T* LHS, const ilist_iterator<const T> &RHS) {
+ return LHS == RHS.getNodePtrUnchecked();
+}
+template<typename T>
+bool operator!=(T* LHS, const ilist_iterator<T> &RHS) {
+ return LHS != RHS.getNodePtrUnchecked();
+}
+template<typename T>
+bool operator==(T* LHS, const ilist_iterator<T> &RHS) {
+ return LHS == RHS.getNodePtrUnchecked();
+}
+
+
// Allow ilist_iterators to convert into pointers to a node automatically when
// used by the dyn_cast, cast, isa mechanisms...