#ifndef LLVM_DEBUGINFO_LOGICALVIEW_CORE_LVSUPPORT_H
#define LLVM_DEBUGINFO_LOGICALVIEW_CORE_LVSUPPORT_H
#include "llvm/ADT/SmallBitVector.h"
#include "llvm/ADT/Twine.h"
#include "llvm/DebugInfo/LogicalView/Core/LVStringPool.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/Format.h"
#include "llvm/Support/Path.h"
#include "llvm/Support/raw_ostream.h"
#include <cctype>
#include <map>
#include <sstream>
namespace llvm {
namespace logicalview {
LVStringPool &getStringPool();
LVStringRefs;
LVLexicalComponent;
LVLexicalIndex;
template <typename T> class LVProperties { … };
#define BOOL_BIT(FAMILY, ENUM, FIELD) …
#define BOOL_BIT_1(FAMILY, ENUM, FIELD, F1) …
#define BOOL_BIT_2(FAMILY, ENUM, FIELD, F1, F2) …
#define BOOL_BIT_3(FAMILY, ENUM, FIELD, F1, F2, F3) …
#define PROPERTY(ENUM, FIELD) …
#define PROPERTY_1(ENUM, FIELD, F1) …
#define PROPERTY_2(ENUM, FIELD, F1, F2) …
#define PROPERTY_3(ENUM, FIELD, F1, F2, F3) …
#define KIND(ENUM, FIELD) …
#define KIND_1(ENUM, FIELD, F1) …
#define KIND_2(ENUM, FIELD, F1, F2) …
#define KIND_3(ENUM, FIELD, F1, F2, F3) …
const int HEX_WIDTH = …;
inline FormattedNumber hexValue(uint64_t N, unsigned Width = HEX_WIDTH,
bool Upper = false) { … }
inline std::string hexString(uint64_t Value, size_t Width = HEX_WIDTH) { … }
inline std::string hexSquareString(uint64_t Value) { … }
template <typename... Args>
std::string formatAttributes(const StringRef First, Args... Others) { … }
template <typename MapType, typename KeyType, typename ValueType>
void addItem(MapType *Map, KeyType Key, ValueType Value) { … }
template <typename FirstKeyType, typename SecondKeyType, typename ValueType>
class LVDoubleMap { … };
std::string transformPath(StringRef Path);
std::string flattenedFilePath(StringRef Path);
inline std::string formattedKind(StringRef Kind) { … }
inline std::string formattedName(StringRef Name) { … }
inline std::string formattedNames(StringRef Name1, StringRef Name2) { … }
LVLexicalComponent getInnerComponent(StringRef Name);
LVStringRefs getAllLexicalComponents(StringRef Name);
std::string getScopedName(const LVStringRefs &Components,
StringRef BaseName = {});
inline uint16_t getCodeViewOperationCode(uint8_t Code) { … }
}
}
#endif