diff options
Diffstat (limited to 'include/llvm/Object/StringTableBuilder.h')
-rw-r--r-- | include/llvm/Object/StringTableBuilder.h | 59 |
1 files changed, 0 insertions, 59 deletions
diff --git a/include/llvm/Object/StringTableBuilder.h b/include/llvm/Object/StringTableBuilder.h deleted file mode 100644 index c61e216..0000000 --- a/include/llvm/Object/StringTableBuilder.h +++ /dev/null @@ -1,59 +0,0 @@ -//===-- StringTableBuilder.h - String table building utility ------*- C++ -*-=// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef LLVM_OBJECT_STRINGTABLE_BUILDER_H -#define LLVM_OBJECT_STRINGTABLE_BUILDER_H - -#include "llvm/ADT/SmallString.h" -#include "llvm/ADT/StringMap.h" -#include <cassert> - -namespace llvm { - -/// \brief Utility for building string tables with deduplicated suffixes. -class StringTableBuilder { - SmallString<256> StringTable; - StringMap<size_t> StringIndexMap; - -public: - /// \brief Add a string to the builder. Returns a StringRef to the internal - /// copy of s. Can only be used before the table is finalized. - StringRef add(StringRef s) { - assert(!isFinalized()); - return StringIndexMap.GetOrCreateValue(s, 0).getKey(); - } - - /// \brief Analyze the strings and build the final table. No more strings can - /// be added after this point. - void finalize(); - - /// \brief Retrieve the string table data. Can only be used after the table - /// is finalized. - StringRef data() { - assert(isFinalized()); - return StringTable; - } - - /// \brief Get the offest of a string in the string table. Can only be used - /// after the table is finalized. - size_t getOffset(StringRef s) { - assert(isFinalized()); - assert(StringIndexMap.count(s) && "String is not in table!"); - return StringIndexMap[s]; - } - -private: - bool isFinalized() { - return !StringTable.empty(); - } -}; - -} // end llvm namespace - -#endif |