9#ifndef LLVM_ADT_STRING_TABLE_H 
   10#define LLVM_ADT_STRING_TABLE_H 
   54    constexpr Offset(
unsigned Value) : Value(Value) {}
 
   57      return LHS.Value == 
RHS.Value;
 
 
   61      return LHS.Value != 
RHS.Value;
 
 
   64    constexpr unsigned value()
 const { 
return Value; }
 
 
   73    static_assert(N <= std::numeric_limits<unsigned>::max(),
 
   74                  "We only support table sizes that can be indexed by an " 
   75                  "`unsigned` offset.");
 
   79    assert(!Table.empty() && 
"Requires at least a valid empty string.");
 
   80    assert(Table.data()[0] == 
'\0' && 
"Offset zero must be the empty string.");
 
   84    assert(Table.data()[Table.size() - 1] == 
'\0' &&
 
   85           "Last byte must be a null byte.");
 
 
   91    assert(O.value() < Table.size() && 
"Out of bounds offset!");
 
   92    return Table.data() + O.value();
 
 
  101  constexpr size_t size()
 const { 
return Table.size(); }
 
  108    const StringTable *Table;
 
  114    explicit constexpr Iterator(
const StringTable &Table, 
Offset O)
 
  115        : Table(&Table), O(O) {}
 
  125      assert(Table == 
RHS.Table && 
"Compared iterators for unrelated tables!");
 
 
  135      O = O.value() + (*Table)[O].size() + 1;
 
 
 
 
assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")
 
StringRef - Represent a constant reference to a string, i.e.
 
bool operator==(const Iterator &RHS) const
 
const StringRef & operator*() const
 
constexpr Iterator & operator=(const Iterator &RHS)=default
 
constexpr Iterator(Iterator &&RHS)=default
 
constexpr Iterator & operator=(Iterator &&RHS)=default
 
constexpr Iterator(const Iterator &RHS)=default
 
constexpr Offset(unsigned Value)
 
constexpr unsigned value() const
 
friend constexpr bool operator==(const Offset &LHS, const Offset &RHS)
 
friend constexpr bool operator!=(const Offset &LHS, const Offset &RHS)
 
constexpr Offset()=default
 
constexpr size_t size() const
Returns the byte size of the table.
 
constexpr StringRef operator[](Offset O) const
 
constexpr Iterator begin() const
 
constexpr Iterator end() const
 
constexpr const char * getCString(Offset O) const
 
constexpr StringTable(const char(&RawTable)[N])
 
CRTP base class which implements the entire standard iterator facade in terms of a minimal subset of ...
 
This is an optimization pass for GlobalISel generic memory operations.