diff options
| author | Max Kazantsev <max.kazantsev@azul.com> | 2017-11-27 11:20:58 +0000 |
|---|---|---|
| committer | Max Kazantsev <max.kazantsev@azul.com> | 2017-11-27 11:20:58 +0000 |
| commit | f3c0aec9713ab5ed7a6a19f627680d376446b805 (patch) | |
| tree | 611b6f98bffbe839d01a54254a0319741b3e4a8f /llvm/include/llvm/ADT/EquivalenceClasses.h | |
| parent | 79b7f4c1250dfe779bbb44259e9c649dba276437 (diff) | |
| download | bcm5719-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.h | 10 |
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; |

