X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=include%2Fllvm%2FADT%2FSetVector.h;h=965f0deacaa249475f6dedf45d5d379b052ca737;hb=e82fafe9e22c7f0bb35ec4cb7d5428bf9e930807;hp=2671bc5c9e244092774c3bf780e3b6eb365e8905;hpb=3a54b3dc87a581c203b18050b4f787b4ca28a12c;p=oota-llvm.git diff --git a/include/llvm/ADT/SetVector.h b/include/llvm/ADT/SetVector.h index 2671bc5c9e2..965f0deacaa 100644 --- a/include/llvm/ADT/SetVector.h +++ b/include/llvm/ADT/SetVector.h @@ -21,9 +21,9 @@ #define LLVM_ADT_SETVECTOR_H #include "llvm/ADT/SmallSet.h" -#include -#include #include +#include +#include namespace llvm { @@ -114,13 +114,15 @@ public: } /// @brief Remove an item from the set vector. - void remove(const value_type& X) { + bool remove(const value_type& X) { if (set_.erase(X)) { typename vector_type::iterator I = std::find(vector_.begin(), vector_.end(), X); assert(I != vector_.end() && "Corrupted SetVector instances!"); vector_.erase(I); + return true; } + return false; } @@ -142,6 +144,20 @@ public: set_.erase(back()); vector_.pop_back(); } + + T pop_back_val() { + T Ret = back(); + pop_back(); + return Ret; + } + + bool operator==(const SetVector &that) const { + return vector_ == that.vector_; + } + + bool operator!=(const SetVector &that) const { + return vector_ != that.vector_; + } private: set_type set_; ///< The set.