LLVM 20.0.0git
Classes | Namespaces | Macros | Typedefs | Functions | Variables
LVSupport.h File Reference
#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>

Go to the source code of this file.

Classes

class  llvm::logicalview::LVProperties< T >
 
class  llvm::logicalview::LVDoubleMap< FirstKeyType, SecondKeyType, ValueType >
 

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
 
namespace  llvm::logicalview
 

Macros

#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)   BOOL_BIT(Properties, ENUM, FIELD)
 
#define PROPERTY_1(ENUM, FIELD, F1)   BOOL_BIT_1(Properties, ENUM, FIELD, F1)
 
#define PROPERTY_2(ENUM, FIELD, F1, F2)    BOOL_BIT_2(Properties, ENUM, FIELD, F1, F2)
 
#define PROPERTY_3(ENUM, FIELD, F1, F2, F3)    BOOL_BIT_3(Properties, ENUM, FIELD, F1, F2, F3)
 
#define KIND(ENUM, FIELD)   BOOL_BIT(Kinds, ENUM, FIELD)
 
#define KIND_1(ENUM, FIELD, F1)   BOOL_BIT_1(Kinds, ENUM, FIELD, F1)
 
#define KIND_2(ENUM, FIELD, F1, F2)   BOOL_BIT_2(Kinds, ENUM, FIELD, F1, F2)
 
#define KIND_3(ENUM, FIELD, F1, F2, F3)    BOOL_BIT_3(Kinds, ENUM, FIELD, F1, F2, F3)
 

Typedefs

using llvm::logicalview::LVStringRefs = std::vector< StringRef >
 
using llvm::logicalview::LVLexicalComponent = std::tuple< StringRef, StringRef >
 
using llvm::logicalview::LVLexicalIndex = std::tuple< LVStringRefs::size_type, LVStringRefs::size_type >
 

Functions

LVStringPoolllvm::logicalview::getStringPool ()
 
FormattedNumber llvm::logicalview::hexValue (uint64_t N, unsigned Width=HEX_WIDTH, bool Upper=false)
 
std::string llvm::logicalview::hexString (uint64_t Value, size_t Width=HEX_WIDTH)
 
std::string llvm::logicalview::hexSquareString (uint64_t Value)
 
template<typename... Args>
std::string llvm::logicalview::formatAttributes (const StringRef First, Args... Others)
 
template<typename MapType , typename KeyType , typename ValueType >
void llvm::logicalview::addItem (MapType *Map, KeyType Key, ValueType Value)
 
std::string llvm::logicalview::transformPath (StringRef Path)
 
std::string llvm::logicalview::flattenedFilePath (StringRef Path)
 
std::string llvm::logicalview::formattedKind (StringRef Kind)
 
std::string llvm::logicalview::formattedName (StringRef Name)
 
std::string llvm::logicalview::formattedNames (StringRef Name1, StringRef Name2)
 
LVLexicalComponent llvm::logicalview::getInnerComponent (StringRef Name)
 
LVStringRefs llvm::logicalview::getAllLexicalComponents (StringRef Name)
 
std::string llvm::logicalview::getScopedName (const LVStringRefs &Components, StringRef BaseName={})
 
uint16_t llvm::logicalview::getCodeViewOperationCode (uint8_t Code)
 

Variables

const int llvm::logicalview::HEX_WIDTH = 12
 

Macro Definition Documentation

◆ BOOL_BIT

#define BOOL_BIT (   FAMILY,
  ENUM,
  FIELD 
)
Value:
bool get##FIELD() const { return FAMILY.get(ENUM::FIELD); } \
void set##FIELD() { FAMILY.set(ENUM::FIELD); } \
void reset##FIELD() { FAMILY.reset(ENUM::FIELD); }
#define FIELD(name)

Definition at line 55 of file LVSupport.h.

◆ BOOL_BIT_1

#define BOOL_BIT_1 (   FAMILY,
  ENUM,
  FIELD,
  F1 
)
Value:
bool get##FIELD() const { return FAMILY.get(ENUM::FIELD); } \
void set##FIELD() { \
FAMILY.set(ENUM::FIELD); \
set##F1(); \
} \
void reset##FIELD() { FAMILY.reset(ENUM::FIELD); }

Definition at line 60 of file LVSupport.h.

◆ BOOL_BIT_2

#define BOOL_BIT_2 (   FAMILY,
  ENUM,
  FIELD,
  F1,
  F2 
)
Value:
bool get##FIELD() const { return FAMILY.get(ENUM::FIELD); } \
void set##FIELD() { \
FAMILY.set(ENUM::FIELD); \
set##F1(); \
set##F2(); \
} \
void reset##FIELD() { FAMILY.reset(ENUM::FIELD); }

Definition at line 68 of file LVSupport.h.

◆ BOOL_BIT_3

#define BOOL_BIT_3 (   FAMILY,
  ENUM,
  FIELD,
  F1,
  F2,
  F3 
)
Value:
bool get##FIELD() const { return FAMILY.get(ENUM::FIELD); } \
void set##FIELD() { \
FAMILY.set(ENUM::FIELD); \
set##F1(); \
set##F2(); \
set##F3(); \
} \
void reset##FIELD() { FAMILY.reset(ENUM::FIELD); }

Definition at line 77 of file LVSupport.h.

◆ KIND

#define KIND (   ENUM,
  FIELD 
)    BOOL_BIT(Kinds, ENUM, FIELD)

Definition at line 96 of file LVSupport.h.

◆ KIND_1

#define KIND_1 (   ENUM,
  FIELD,
  F1 
)    BOOL_BIT_1(Kinds, ENUM, FIELD, F1)

Definition at line 97 of file LVSupport.h.

◆ KIND_2

#define KIND_2 (   ENUM,
  FIELD,
  F1,
  F2 
)    BOOL_BIT_2(Kinds, ENUM, FIELD, F1, F2)

Definition at line 98 of file LVSupport.h.

◆ KIND_3

#define KIND_3 (   ENUM,
  FIELD,
  F1,
  F2,
  F3 
)     BOOL_BIT_3(Kinds, ENUM, FIELD, F1, F2, F3)

Definition at line 99 of file LVSupport.h.

◆ PROPERTY

#define PROPERTY (   ENUM,
  FIELD 
)    BOOL_BIT(Properties, ENUM, FIELD)

Definition at line 88 of file LVSupport.h.

◆ PROPERTY_1

#define PROPERTY_1 (   ENUM,
  FIELD,
  F1 
)    BOOL_BIT_1(Properties, ENUM, FIELD, F1)

Definition at line 89 of file LVSupport.h.

◆ PROPERTY_2

#define PROPERTY_2 (   ENUM,
  FIELD,
  F1,
  F2 
)     BOOL_BIT_2(Properties, ENUM, FIELD, F1, F2)

Definition at line 90 of file LVSupport.h.

◆ PROPERTY_3

#define PROPERTY_3 (   ENUM,
  FIELD,
  F1,
  F2,
  F3 
)     BOOL_BIT_3(Properties, ENUM, FIELD, F1, F2, F3)

Definition at line 92 of file LVSupport.h.