14#ifndef LLVM_DEBUGINFO_LOGICALVIEW_CORE_LVSYMBOL_H
15#define LLVM_DEBUGINFO_LOGICALVIEW_CORE_LVSYMBOL_H
20namespace logicalview {
37 enum class Property { HasLocation, FillGaps,
LastEntry };
45 size_t LinkageNameIndex = 0;
49 std::unique_ptr<LVLocations> Locations;
56 size_t ValueIndex = 0;
59 unsigned CoverageFactor = 0;
60 float CoveragePercentage = 0;
93 const char *
kind()
const override;
132 bool CallSiteLocation =
false);
139 bool RecordInvalid =
false);
186#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
mir Rename Register Operands
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
This is an important base class in LLVM.
Pass interface - Implemented by all 'passes'.
StringRef - Represent a constant reference to a string, i.e.
LLVM Value Representation.
LVSubclassID getSubclassID() const
StringRef getString(size_t Index) const
size_t getIndex(StringRef Key)
void resolveName() override
static void getParameters(const LVSymbols *Symbols, LVSymbols *Parameters)
void report(LVComparePass Pass) override
void dump() const override
void setBitSize(uint32_t Size) override
void printExtra(raw_ostream &OS, bool Full=true) const override
void addLocation(dwarf::Attribute Attr, LVAddress LowPC, LVAddress HighPC, LVUnsigned SectionOffset, uint64_t LocDescOffset, bool CallSiteLocation=false)
void resolveReferences() override
void print(raw_ostream &OS, bool Full=true) const override
LVSymbol & operator=(const LVSymbol &)=delete
void setCoveragePercentage(float Value)
void addLocationOperands(LVSmall Opcode, ArrayRef< uint64_t > Operands)
size_t getLinkageNameIndex() const override
LVSymbol(const LVSymbol &)=delete
PROPERTY(Property, FillGaps)
KIND(LVSymbolKind, IsUnspecified)
void getLocations(LVLocations &LocationList, LVValidLocation ValidLocation, bool RecordInvalid=false)
KIND(LVSymbolKind, IsCallSiteParameter)
static void markMissingParents(const LVSymbols *References, const LVSymbols *Targets)
KIND(LVSymbolKind, IsConstant)
float getCoveragePercentage() const
void addLocationConstant(dwarf::Attribute Attr, LVUnsigned Constant, uint64_t LocDescOffset)
KIND(LVSymbolKind, IsInheritance)
StringRef getLinkageName() const override
KIND(LVSymbolKind, IsMember)
static LVSymbolDispatch & getDispatch()
StringRef getValue() const override
bool equals(const LVSymbol *Symbol) const
void setLinkageName(StringRef LinkageName) override
KIND(LVSymbolKind, IsParameter)
void setReference(LVElement *Element) override
static bool classof(const LVElement *Element)
PROPERTY(Property, HasLocation)
uint32_t getBitSize() const override
void setReference(LVSymbol *Symbol) override
void setCoverageFactor(unsigned Value)
const char * kind() const override
void printLocations(raw_ostream &OS, bool Full=true) const
size_t getValueIndex() const override
static bool parametersMatch(const LVSymbols *References, const LVSymbols *Targets)
StringRef resolveReferencesChain()
LVSymbol * getReference() const
void setValue(StringRef Value) override
KIND(LVSymbolKind, IsVariable)
unsigned getCoverageFactor() const
This class implements an extremely fast bulk output stream that can only output to a stream.
std::vector< LVSymbolGetFunction > LVSymbolRequest
LVStringPool & getStringPool()
std::set< LVSymbolKind > LVSymbolKindSet
bool(LVLocation::*)() LVValidLocation
std::map< LVSymbolKind, LVSymbolGetFunction > LVSymbolDispatch
This is an optimization pass for GlobalISel generic memory operations.
raw_ostream & dbgs()
dbgs() - This returns a reference to a raw_ostream for debugging messages.