14#ifndef LLVM_DEBUGINFO_LOGICALVIEW_CORE_LVTYPE_H 
   15#define LLVM_DEBUGINFO_LOGICALVIEW_CORE_LVTYPE_H 
   53  enum class Property { IsSubrangeCount, LastEntry };
 
  100  const char *
kind() 
const override;
 
  106  bool isBase()
 const override { 
return getIsBase(); }
 
  120  void resolveName() 
override;
 
  121  void resolveReferences() 
override;
 
  125  static bool parametersMatch(
const LVTypes *References,
 
  134  static void markMissingParents(
const LVTypes *References,
 
  138  virtual bool equals(
const LVType *
Type) 
const;
 
  142  static bool equals(
const LVTypes *References, 
const LVTypes *Targets);
 
 
  166  void resolveExtra() 
override;
 
  169  bool equals(
const LVType *
Type) 
const override;
 
 
  177  size_t ValueIndex = 0;
 
  198  bool equals(
const LVType *
Type) 
const override;
 
 
  220  size_t ValueIndex = 0;
 
  238  void encodeTemplateArgument(std::string &
Name) 
const override;
 
  241  bool equals(
const LVType *
Type) 
const override;
 
 
  249  int64_t LowerBound = 0; 
 
  250  int64_t UpperBound = 0; 
 
  262    return getIsSubrangeCount() ? LowerBound : 0;
 
 
  266    setIsSubrangeCount();
 
 
  275  std::pair<unsigned, unsigned> 
getBounds()
 const override {
 
  276    return {LowerBound, UpperBound};
 
 
  283  void resolveExtra() 
override;
 
  286  bool equals(
const LVType *
Type) 
const override;
 
 
static void print(raw_ostream &Out, object::Archive::Kind Kind, T Val)
 
Pass interface - Implemented by all 'passes'.
 
StringRef - Represent a constant reference to a string, i.e.
 
The instances of the Type class are immutable: once they are created, they are never changed.
 
LLVM Value Representation.
 
LVElement(LVSubclassID ID)
 
void setType(LVElement *Element=nullptr)
 
~LVTypeDefinition() override=default
 
void setUnderlyingType(LVElement *Element) override
 
LVTypeDefinition & operator=(const LVTypeDefinition &)=delete
 
LVTypeDefinition(const LVTypeDefinition &)=delete
 
LVElement * getUnderlyingType() override
 
size_t getValueIndex() const override
 
void setValue(StringRef Value) override
 
LVTypeEnumerator(const LVTypeEnumerator &)=delete
 
~LVTypeEnumerator() override=default
 
StringRef getValue() const override
 
LVTypeEnumerator & operator=(const LVTypeEnumerator &)=delete
 
LVTypeImport(const LVTypeImport &)=delete
 
~LVTypeImport() override=default
 
void printExtra(raw_ostream &OS, bool Full=true) const override
 
LVTypeImport & operator=(const LVTypeImport &)=delete
 
bool equals(const LVType *Type) const override
 
LVTypeParam(const LVTypeParam &)=delete
 
size_t getValueIndex() const override
 
~LVTypeParam() override=default
 
void setValue(StringRef Value) override
 
LVTypeParam & operator=(const LVTypeParam &)=delete
 
StringRef getValue() const override
 
LVTypeSubrange & operator=(const LVTypeSubrange &)=delete
 
LVTypeSubrange(const LVTypeSubrange &)=delete
 
void setLowerBound(int64_t Value) override
 
void setUpperBound(int64_t Value) override
 
void setBounds(unsigned Lower, unsigned Upper) override
 
std::pair< unsigned, unsigned > getBounds() const override
 
int64_t getUpperBound() const override
 
~LVTypeSubrange() override=default
 
void setCount(int64_t Value) override
 
int64_t getCount() const override
 
int64_t getLowerBound() const override
 
~LVType() override=default
 
KIND(LVTypeKind, IsRvalueReference)
 
KIND(LVTypeKind, IsTemplateParam)
 
KIND_1(LVTypeKind, IsImportModule, IsImport)
 
KIND(LVTypeKind, IsEnumerator)
 
KIND(LVTypeKind, IsUnspecified)
 
KIND(LVTypeKind, IsRestrict)
 
KIND(LVTypeKind, IsConst)
 
LVType(const LVType &)=delete
 
void setBitSize(uint32_t Size) override
 
KIND(LVTypeKind, IsTypedef)
 
KIND(LVTypeKind, IsReference)
 
static LVTypeDispatch & getDispatch()
 
KIND(LVTypeKind, IsPointer)
 
KIND_1(LVTypeKind, IsImportDeclaration, IsImport)
 
StringRef resolveReferencesChain()
 
PROPERTY(Property, IsSubrangeCount)
 
KIND(LVTypeKind, IsVolatile)
 
LVType & operator=(const LVType &)=delete
 
uint32_t getBitSize() const override
 
bool isBase() const override
 
KIND(LVTypeKind, IsModifier)
 
KIND(LVTypeKind, IsImport)
 
virtual void encodeTemplateArgument(std::string &Name) const
 
const char * kind() const override
 
virtual void setUnderlyingType(LVElement *Element)
 
KIND_1(LVTypeKind, IsTemplateTemplateParam, IsTemplateParam)
 
virtual LVElement * getUnderlyingType()
 
KIND(LVTypeKind, IsPointerMember)
 
KIND(LVTypeKind, IsUnaligned)
 
bool isTemplateParam() const override
 
static bool classof(const LVElement *Element)
 
KIND(LVTypeKind, IsSubrange)
 
KIND_1(LVTypeKind, IsTemplateValueParam, IsTemplateParam)
 
KIND_1(LVTypeKind, IsTemplateTypeParam, IsTemplateParam)
 
This class implements an extremely fast bulk output stream that can only output to a stream.
 
LLVM_ABI LVStringPool & getStringPool()
 
@ IsTemplateTemplateParam
 
std::map< LVTypeKind, LVTypeGetFunction > LVTypeDispatch
 
SmallVector< LVScope *, 8 > LVScopes
 
std::vector< LVTypeGetFunction > LVTypeRequest
 
std::set< LVTypeKind > LVTypeKindSelection
 
SmallVector< LVType *, 8 > LVTypes
 
This is an optimization pass for GlobalISel generic memory operations.