10 #ifndef LLVM_ADT_UNIQUEVECTOR_H
11 #define LLVM_ADT_UNIQUEVECTOR_H
27 std::map<T, unsigned> Map;
31 std::vector<T> Vector;
38 unsigned &Val = Map[Entry];
44 Val =
static_cast<unsigned>(Vector.size()) + 1;
47 Vector.push_back(Entry);
53 unsigned idFor(
const T &Entry)
const {
55 typename std::map<T, unsigned>::const_iterator
MI = Map.find(Entry);
58 if (MI != Map.end())
return MI->second;
67 assert(ID-1 <
size() &&
"ID is 0 or out of range!");
68 return Vector[ID - 1];
73 size_t size()
const {
return Vector.size(); }
77 bool empty()
const {
return Vector.empty(); }
89 #endif // LLVM_ADT_UNIQUEVECTOR_H
const T & operator[](unsigned ID) const
ID
LLVM Calling Convention Representation.
unsigned idFor(const T &Entry) const
unsigned insert(const T &Entry)