summaryrefslogtreecommitdiffstats
path: root/llvm/include/llvm/ADT/EquivalenceClasses.h
diff options
context:
space:
mode:
authorMax Kazantsev <max.kazantsev@azul.com>2017-11-27 11:20:58 +0000
committerMax Kazantsev <max.kazantsev@azul.com>2017-11-27 11:20:58 +0000
commitf3c0aec9713ab5ed7a6a19f627680d376446b805 (patch)
tree611b6f98bffbe839d01a54254a0319741b3e4a8f /llvm/include/llvm/ADT/EquivalenceClasses.h
parent79b7f4c1250dfe779bbb44259e9c649dba276437 (diff)
downloadbcm5719-llvm-f3c0aec9713ab5ed7a6a19f627680d376446b805.tar.gz
bcm5719-llvm-f3c0aec9713ab5ed7a6a19f627680d376446b805.zip
[NFC] Add missing unit tests for EquivalenceClasses
llvm-svn: 319018
Diffstat (limited to 'llvm/include/llvm/ADT/EquivalenceClasses.h')
-rw-r--r--llvm/include/llvm/ADT/EquivalenceClasses.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/llvm/include/llvm/ADT/EquivalenceClasses.h b/llvm/include/llvm/ADT/EquivalenceClasses.h
index af293d4c142..e3f48433c69 100644
--- a/llvm/include/llvm/ADT/EquivalenceClasses.h
+++ b/llvm/include/llvm/ADT/EquivalenceClasses.h
@@ -239,6 +239,16 @@ public:
return L1;
}
+ // isEquivalent - Return true if V1 is equivalent to V2. This can happen if
+ // V1 is equal to V2 or if they belong to one equivalence class.
+ bool isEquivalent(const ElemTy &V1, const ElemTy &V2) const {
+ // Fast path: any element is equivalent to itself.
+ if (V1 == V2)
+ return true;
+ auto It = findLeader(V1);
+ return It != member_end() && It == findLeader(V2);
+ }
+
class member_iterator : public std::iterator<std::forward_iterator_tag,
const ElemTy, ptrdiff_t> {
friend class EquivalenceClasses;
OpenPOWER on IntegriCloud