diff options
author | Nate Begeman <natebegeman@mac.com> | 2005-06-15 18:28:44 +0000 |
---|---|---|
committer | Nate Begeman <natebegeman@mac.com> | 2005-06-15 18:28:44 +0000 |
commit | cb647519d34184fe41aa7e072076ae70634bc3d7 (patch) | |
tree | e89163704aec1979b0def0966c731c1eb6a73e50 | |
parent | 877c3e2b811f797c95cac6ce46fc59afcc9cf5e7 (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/ilist | 20 |
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... |