LLVM 22.0.0git
llvm::logicalview::LVSymbol Class Referencefinal

#include "llvm/DebugInfo/LogicalView/Core/LVSymbol.h"

Inheritance diagram for llvm::logicalview::LVSymbol:
[legend]

Public Member Functions

 LVSymbol ()
 LVSymbol (const LVSymbol &)=delete
LVSymboloperator= (const LVSymbol &)=delete
 ~LVSymbol ()=default
 KIND (LVSymbolKind, IsCallSiteParameter)
 KIND (LVSymbolKind, IsConstant)
 KIND (LVSymbolKind, IsInheritance)
 KIND (LVSymbolKind, IsMember)
 KIND (LVSymbolKind, IsParameter)
 KIND (LVSymbolKind, IsUnspecified)
 KIND (LVSymbolKind, IsVariable)
 PROPERTY (Property, HasLocation)
 PROPERTY (Property, FillGaps)
const charkind () const override
LVSymbolgetReference () const
void setReference (LVSymbol *Symbol) override
void setReference (LVElement *Element) override
void setLinkageName (StringRef LinkageName) override
StringRef getLinkageName () const override
size_t getLinkageNameIndex () const override
uint32_t getBitSize () const override
void setBitSize (uint32_t Size) override
StringRef getValue () const override
void setValue (StringRef Value) override
size_t getValueIndex () const override
void addLocationConstant (dwarf::Attribute Attr, LVUnsigned Constant, uint64_t LocDescOffset)
void addLocationOperands (LVSmall Opcode, ArrayRef< uint64_t > Operands)
void addLocation (dwarf::Attribute Attr, LVAddress LowPC, LVAddress HighPC, LVUnsigned SectionOffset, uint64_t LocDescOffset, bool CallSiteLocation=false)
void fillLocationGaps ()
void getLocations (LVLocations &LocationList, LVValidLocation ValidLocation, bool RecordInvalid=false)
void getLocations (LVLocations &LocationList) const
void calculateCoverage ()
unsigned getCoverageFactor () const
void setCoverageFactor (unsigned Value)
float getCoveragePercentage () const
void setCoveragePercentage (float Value)
void printLocations (raw_ostream &OS, bool Full=true) const
StringRef resolveReferencesChain ()
void resolveName () override
void resolveReferences () override
bool equals (const LVSymbol *Symbol) const
void report (LVComparePass Pass) override
void print (raw_ostream &OS, bool Full=true) const override
void printExtra (raw_ostream &OS, bool Full=true) const override
Public Member Functions inherited from llvm::logicalview::LVElement
 LVElement (LVSubclassID ID)
 LVElement (const LVElement &)=delete
LVElementoperator= (const LVElement &)=delete
virtual ~LVElement ()=default
LVSubclassID getSubclassID () const
 PROPERTY (Property, IsLine)
 PROPERTY (Property, IsScope)
 PROPERTY (Property, IsSymbol)
 PROPERTY (Property, IsType)
 PROPERTY (Property, IsEnumClass)
 PROPERTY (Property, IsExternal)
 PROPERTY (Property, HasType)
 PROPERTY (Property, HasAugmentedName)
 PROPERTY (Property, IsTypedefReduced)
 PROPERTY (Property, IsArrayResolved)
 PROPERTY (Property, IsMemberPointerResolved)
 PROPERTY (Property, IsTemplateResolved)
 PROPERTY (Property, IsInlined)
 PROPERTY (Property, IsInlinedAbstract)
 PROPERTY (Property, InvalidFilename)
 PROPERTY (Property, HasReference)
 PROPERTY (Property, HasReferenceAbstract)
 PROPERTY (Property, HasReferenceExtension)
 PROPERTY (Property, HasReferenceSpecification)
 PROPERTY (Property, QualifiedResolved)
 PROPERTY (Property, IncludeInPrint)
 PROPERTY (Property, IsStatic)
 PROPERTY (Property, TransformName)
 PROPERTY (Property, IsScoped)
 PROPERTY (Property, IsNested)
 PROPERTY (Property, IsScopedAlready)
 PROPERTY (Property, IsArtificial)
 PROPERTY (Property, IsReferencedType)
 PROPERTY (Property, IsSystem)
 PROPERTY (Property, OffsetFromTypeIndex)
 PROPERTY (Property, IsAnonymous)
bool isNamed () const override
bool isTyped () const override
bool isFiled () const override
bool getIsKindType () const
bool getIsKindScope () const
StringRef getName () const override
void setName (StringRef ElementName) override
StringRef getPathname () const
void setFilename (StringRef Filename)
void setQualifiedName (StringRef Name)
StringRef getQualifiedName () const
size_t getNameIndex () const
size_t getQualifiedNameIndex () const
void setInnerComponent ()
void setInnerComponent (StringRef Name)
StringRef getTypeName () const
virtual StringRef getProducer () const
virtual void setProducer (StringRef ProducerName)
virtual LVSourceLanguage getSourceLanguage () const
virtual void setSourceLanguage (LVSourceLanguage SL)
virtual bool isCompileUnit () const
virtual bool isRoot () const
virtual void setReference (LVScope *Scope)
virtual void setReference (LVType *Type)
virtual uint32_t getCallLineNumber () const
virtual void setCallLineNumber (uint32_t Number)
virtual size_t getCallFilenameIndex () const
virtual void setCallFilenameIndex (size_t Index)
size_t getFilenameIndex () const
void setFilenameIndex (size_t Index)
void setFile (LVElement *Reference=nullptr)
virtual bool isBase () const
virtual bool isTemplateParam () const
uint32_t getStorageSizeInBytes () const
virtual int64_t getCount () const
virtual void setCount (int64_t Value)
virtual int64_t getLowerBound () const
virtual void setLowerBound (int64_t Value)
virtual int64_t getUpperBound () const
virtual void setUpperBound (int64_t Value)
virtual std::pair< unsigned, unsignedgetBounds () const
virtual void setBounds (unsigned Lower, unsigned Upper)
virtual uint32_t getDiscriminator () const
virtual void setDiscriminator (uint32_t Value)
uint32_t getAccessibilityCode () const
void setAccessibilityCode (uint32_t Access)
StringRef accessibilityString (uint32_t Access=dwarf::DW_ACCESS_private) const
std::optional< uint32_tgetAccessibilityCode (codeview::MemberAccess Access)
void setAccessibilityCode (codeview::MemberAccess Access)
uint32_t getInlineCode () const
void setInlineCode (uint32_t Code)
StringRef inlineCodeString (uint32_t Code) const
uint32_t getVirtualityCode () const
void setVirtualityCode (uint32_t Virtuality)
StringRef virtualityString (uint32_t Virtuality=dwarf::DW_VIRTUALITY_none) const
std::optional< uint32_tgetVirtualityCode (codeview::MethodKind Virtuality)
void setVirtualityCode (codeview::MethodKind Virtuality)
StringRef externalString () const
LVElementgetType () const
LVTypegetTypeAsType () const
LVScopegetTypeAsScope () const
void setType (LVElement *Element=nullptr)
void setGenericType (LVElement *Element)
StringRef getTypeQualifiedName () const
StringRef typeAsString () const
std::string typeOffsetAsString () const
std::string discriminatorAsString () const
LVScopetraverseParents (LVScopeGetFunction GetFunction) const
LVScopegetFunctionParent () const
virtual LVScopegetCompileUnitParent () const
void printReference (raw_ostream &OS, bool Full, LVElement *Parent) const
void printLinkageName (raw_ostream &OS, bool Full, LVElement *Parent, LVScope *Scope) const
void printLinkageName (raw_ostream &OS, bool Full, LVElement *Parent) const
void resolveFullname (LVElement *BaseType, StringRef Name=emptyString())
void generateName (std::string &Prefix) const
void generateName ()
virtual bool removeElement (LVElement *Element)
virtual void updateLevel (LVScope *Parent, bool Moved=false)
virtual void resolve ()
virtual void resolveExtra ()
void resolveParents ()
bool referenceMatch (const LVElement *Element) const
bool equals (const LVElement *Element) const
Public Member Functions inherited from llvm::logicalview::LVObject
 LVObject ()
LVObjectoperator= (const LVObject &)=delete
virtual ~LVObject ()=default
 PROPERTY (Property, IsLocation)
 PROPERTY (Property, IsGlobalReference)
 PROPERTY (Property, IsGeneratedName)
 PROPERTY (Property, IsResolved)
 PROPERTY (Property, IsResolvedName)
 PROPERTY (Property, IsDiscarded)
 PROPERTY (Property, IsOptimized)
 PROPERTY (Property, IsAdded)
 PROPERTY (Property, IsMatched)
 PROPERTY (Property, IsMissing)
 PROPERTY (Property, IsMissingLink)
 PROPERTY (Property, IsInCompare)
 PROPERTY (Property, IsFileFromReference)
 PROPERTY (Property, IsLineFromReference)
 PROPERTY (Property, HasMoved)
 PROPERTY (Property, HasPattern)
 PROPERTY (Property, IsFinalized)
 PROPERTY (Property, IsReferenced)
 PROPERTY (Property, HasCodeViewLocation)
bool isLined () const
dwarf::Tag getTag () const
void setTag (dwarf::Tag Tag)
dwarf::Attribute getAttr () const
void setAttr (dwarf::Attribute Attr)
LVSmall getOpcode () const
void setOpcode (LVSmall Opcode)
LVOffset getOffset () const
void setOffset (LVOffset DieOffset)
LVLevel getLevel () const
void setLevel (LVLevel Level)
LVElementgetParent () const
LVScopegetParentScope () const
LVSymbolgetParentSymbol () const
void setParent (LVScope *Scope)
void setParent (LVSymbol *Symbol)
void resetParent ()
virtual LVAddress getLowerAddress () const
virtual void setLowerAddress (LVAddress Address)
virtual LVAddress getUpperAddress () const
virtual void setUpperAddress (LVAddress Address)
uint32_t getLineNumber () const
void setLineNumber (uint32_t Number)
std::string indentAsString () const
std::string indentAsString (LVLevel Level) const
virtual std::string noLineAsString (bool ShowZero) const
virtual std::string lineNumberAsString (bool ShowZero=false) const
std::string lineNumberAsStringStripped (bool ShowZero=false) const
virtual Error doPrint (bool Split, bool Match, bool Print, raw_ostream &OS, bool Full=true) const
void printAttributes (raw_ostream &OS, bool Full=true) const
void printAttributes (raw_ostream &OS, bool Full, StringRef Name, LVObject *Parent, StringRef Value, bool UseQuotes=false, bool PrintRef=false) const
void markBranchAsMissing ()
void dump () const
uint32_t getID () const

Static Public Member Functions

static bool classof (const LVElement *Element)
static LVSymbolDispatchgetDispatch ()
static bool parametersMatch (const LVSymbols *References, const LVSymbols *Targets)
static void getParameters (const LVSymbols *Symbols, LVSymbols *Parameters)
static void markMissingParents (const LVSymbols *References, const LVSymbols *Targets)
static bool equals (const LVSymbols *References, const LVSymbols *Targets)
Static Public Member Functions inherited from llvm::logicalview::LVElement
static LVElementDispatchgetDispatch ()

Additional Inherited Members

Protected Member Functions inherited from llvm::logicalview::LVElement
void printFileIndex (raw_ostream &OS, bool Full=true) const override
Protected Member Functions inherited from llvm::logicalview::LVObject
std::string lineAsString (uint32_t LineNumber, LVHalf Discriminator, bool ShowZero) const
std::string referenceAsString (uint32_t LineNumber, bool Spaces) const
Protected Attributes inherited from llvm::logicalview::LVElement
LVElementElementType = nullptr

Detailed Description

Definition at line 37 of file LVSymbol.h.

Constructor & Destructor Documentation

◆ LVSymbol() [1/2]

◆ LVSymbol() [2/2]

llvm::logicalview::LVSymbol::LVSymbol ( const LVSymbol & )
delete

References LVSymbol().

◆ ~LVSymbol()

llvm::logicalview::LVSymbol::~LVSymbol ( )
default

Member Function Documentation

◆ addLocation()

void LVSymbol::addLocation ( dwarf::Attribute Attr,
LVAddress LowPC,
LVAddress HighPC,
LVUnsigned SectionOffset,
uint64_t LocDescOffset,
bool CallSiteLocation = false )

Definition at line 65 of file LVSymbol.cpp.

References llvm::logicalview::LVObject::Attr, and llvm::logicalview::getReader().

Referenced by addLocationConstant().

◆ addLocationConstant()

void LVSymbol::addLocationConstant ( dwarf::Attribute Attr,
LVUnsigned Constant,
uint64_t LocDescOffset )

◆ addLocationOperands()

void LVSymbol::addLocationOperands ( LVSmall Opcode,
ArrayRef< uint64_t > Operands )

Definition at line 85 of file LVSymbol.cpp.

References llvm::logicalview::LVObject::Opcode, and Operands.

Referenced by addLocationConstant().

◆ calculateCoverage()

◆ classof()

bool llvm::logicalview::LVSymbol::classof ( const LVElement * Element)
inlinestatic

◆ equals() [1/2]

◆ equals() [2/2]

bool LVSymbol::equals ( const LVSymbols * References,
const LVSymbols * Targets )
static

◆ fillLocationGaps()

◆ getBitSize()

uint32_t llvm::logicalview::LVSymbol::getBitSize ( ) const
inlineoverridevirtual

Reimplemented from llvm::logicalview::LVElement.

Definition at line 115 of file LVSymbol.h.

Referenced by printExtra().

◆ getCoverageFactor()

unsigned llvm::logicalview::LVSymbol::getCoverageFactor ( ) const
inline

Definition at line 146 of file LVSymbol.h.

◆ getCoveragePercentage()

float llvm::logicalview::LVSymbol::getCoveragePercentage ( ) const
inline

Definition at line 148 of file LVSymbol.h.

◆ getDispatch()

LVSymbolDispatch & llvm::logicalview::LVSymbol::getDispatch ( )
inlinestatic

Definition at line 161 of file LVSymbol.h.

Referenced by llvm::logicalview::LVPatterns::LVPatterns().

◆ getLinkageName()

StringRef llvm::logicalview::LVSymbol::getLinkageName ( ) const
inlineoverridevirtual

Reimplemented from llvm::logicalview::LVElement.

Definition at line 110 of file LVSymbol.h.

References llvm::logicalview::getStringPool().

◆ getLinkageNameIndex()

size_t llvm::logicalview::LVSymbol::getLinkageNameIndex ( ) const
inlineoverridevirtual

Reimplemented from llvm::logicalview::LVElement.

Definition at line 113 of file LVSymbol.h.

Referenced by printExtra().

◆ getLocations() [1/2]

void LVSymbol::getLocations ( LVLocations & LocationList) const

Definition at line 181 of file LVSymbol.cpp.

References llvm::append_range().

◆ getLocations() [2/2]

void LVSymbol::getLocations ( LVLocations & LocationList,
LVValidLocation ValidLocation,
bool RecordInvalid = false )

◆ getParameters()

void LVSymbol::getParameters ( const LVSymbols * Symbols,
LVSymbols * Parameters )
static

Definition at line 347 of file LVSymbol.cpp.

References LVSymbol(), llvm::logicalview::LVObject::Symbol, and llvm::codeview::Symbols.

Referenced by parametersMatch().

◆ getReference()

LVSymbol * llvm::logicalview::LVSymbol::getReference ( ) const
inline

Definition at line 97 of file LVSymbol.h.

References LVSymbol().

Referenced by equals(), printExtra(), resolveReferences(), and resolveReferencesChain().

◆ getValue()

StringRef llvm::logicalview::LVSymbol::getValue ( ) const
inlineoverridevirtual

Reimplemented from llvm::logicalview::LVElement.

Definition at line 119 of file LVSymbol.h.

References llvm::logicalview::getStringPool().

Referenced by printExtra().

◆ getValueIndex()

size_t llvm::logicalview::LVSymbol::getValueIndex ( ) const
inlineoverridevirtual

Reimplemented from llvm::logicalview::LVElement.

Definition at line 125 of file LVSymbol.h.

◆ KIND() [1/7]

llvm::logicalview::LVSymbol::KIND ( LVSymbolKind ,
IsCallSiteParameter  )

◆ KIND() [2/7]

llvm::logicalview::LVSymbol::KIND ( LVSymbolKind ,
IsConstant  )

◆ KIND() [3/7]

llvm::logicalview::LVSymbol::KIND ( LVSymbolKind ,
IsInheritance  )

◆ KIND() [4/7]

llvm::logicalview::LVSymbol::KIND ( LVSymbolKind ,
IsMember  )

◆ KIND() [5/7]

llvm::logicalview::LVSymbol::KIND ( LVSymbolKind ,
IsParameter  )

◆ KIND() [6/7]

llvm::logicalview::LVSymbol::KIND ( LVSymbolKind ,
IsUnspecified  )

◆ KIND() [7/7]

llvm::logicalview::LVSymbol::KIND ( LVSymbolKind ,
IsVariable  )

◆ kind()

const char * LVSymbol::kind ( ) const
overridevirtual

Reimplemented from llvm::logicalview::LVObject.

Definition at line 36 of file LVSymbol.cpp.

References llvm::logicalview::Kind.

Referenced by PROPERTY().

◆ markMissingParents()

void LVSymbol::markMissingParents ( const LVSymbols * References,
const LVSymbols * Targets )
static

◆ operator=()

LVSymbol & llvm::logicalview::LVSymbol::operator= ( const LVSymbol & )
delete

References LVSymbol().

◆ parametersMatch()

bool LVSymbol::parametersMatch ( const LVSymbols * References,
const LVSymbols * Targets )
static

Definition at line 332 of file LVSymbol.cpp.

References equals(), and getParameters().

Referenced by llvm::logicalview::LVScopeFunction::equals().

◆ print()

◆ printExtra()

◆ printLocations()

void LVSymbol::printLocations ( raw_ostream & OS,
bool Full = true ) const

Definition at line 384 of file LVSymbol.cpp.

References llvm::Full, and llvm::logicalview::Location.

◆ PROPERTY() [1/2]

llvm::logicalview::LVSymbol::PROPERTY ( Property ,
FillGaps  )

References kind().

◆ PROPERTY() [2/2]

llvm::logicalview::LVSymbol::PROPERTY ( Property ,
HasLocation  )

◆ report()

void LVSymbol::report ( LVComparePass Pass)
overridevirtual

◆ resolveName()

void LVSymbol::resolveName ( )
overridevirtual

◆ resolveReferences()

◆ resolveReferencesChain()

◆ setBitSize()

void llvm::logicalview::LVSymbol::setBitSize ( uint32_t Size)
inlineoverridevirtual

Reimplemented from llvm::logicalview::LVElement.

Definition at line 116 of file LVSymbol.h.

References llvm::logicalview::Size.

◆ setCoverageFactor()

void llvm::logicalview::LVSymbol::setCoverageFactor ( unsigned Value)
inline

Definition at line 147 of file LVSymbol.h.

◆ setCoveragePercentage()

void llvm::logicalview::LVSymbol::setCoveragePercentage ( float Value)
inline

Definition at line 149 of file LVSymbol.h.

◆ setLinkageName()

void llvm::logicalview::LVSymbol::setLinkageName ( StringRef LinkageName)
inlineoverridevirtual

Reimplemented from llvm::logicalview::LVElement.

Definition at line 107 of file LVSymbol.h.

References llvm::logicalview::getStringPool(), and llvm::LinkageName.

◆ setReference() [1/2]

void llvm::logicalview::LVSymbol::setReference ( LVElement * Element)
inlineoverridevirtual

◆ setReference() [2/2]

void llvm::logicalview::LVSymbol::setReference ( LVSymbol * Symbol)
inlineoverridevirtual

Reimplemented from llvm::logicalview::LVElement.

Definition at line 98 of file LVSymbol.h.

References LVSymbol(), and llvm::logicalview::LVObject::Symbol.

Referenced by setReference().

◆ setValue()

void llvm::logicalview::LVSymbol::setValue ( StringRef Value)
inlineoverridevirtual

Reimplemented from llvm::logicalview::LVElement.

Definition at line 122 of file LVSymbol.h.

References llvm::logicalview::getStringPool().


The documentation for this class was generated from the following files: