14#ifndef LLVM_DEBUGINFO_LOGICALVIEW_CORE_LVLOCATION_H
15#define LLVM_DEBUGINFO_LOGICALVIEW_CORE_LVLOCATION_H
20namespace logicalview {
52#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
81 bool hasAssociatedRange()
const {
82 return !getIsClassOffset() && !getIsDiscardedRange();
121 const char *
kind()
const override;
162#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
169 std::unique_ptr<LVOperations> Entries;
171 void updateKind()
override;
mir Rename Register Operands
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.
void printExtra(raw_ostream &OS, bool Full=true) const override
LVLocationSymbol(const LVLocationSymbol &)=delete
~LVLocationSymbol()=default
void printRawExtra(raw_ostream &OS, bool Full=true) const override
LVLocationSymbol & operator=(const LVLocationSymbol &)=delete
void addObject(LVAddress LowPC, LVAddress HighPC, LVUnsigned SectionOffset, uint64_t LocDescOffset) override
PROPERTY(Property, IsDiscardedRange)
const char * kind() const override
static bool calculateCoverage(LVLocations *Locations, unsigned &Factor, float &Percentage)
PROPERTY(Property, IsBaseClassStep)
PROPERTY(Property, IsInvalidLower)
void setUpperAddress(LVAddress Address) override
LVLocation(const LVLocation &)=delete
LVLocation & operator=(const LVLocation &)=delete
PROPERTY(Property, IsOperationList)
PROPERTY_1(Property, IsFixedAddress, IsLocationSimple)
const LVLine * getLowerLine() const
void setUpperLine(LVLine *Line)
PROPERTY(Property, IsInvalidRange)
virtual void updateKind()
PROPERTY_1(Property, IsStackOffset, IsLocationSimple)
PROPERTY(Property, IsInvalidUpper)
std::string getIntervalInfo() const
PROPERTY(Property, IsBaseClassOffset)
PROPERTY(Property, IsLocationSimple)
virtual void addObject(LVAddress LowPC, LVAddress HighPC, LVUnsigned SectionOffset, uint64_t LocDescOffset)
PROPERTY(Property, IsAddressRange)
PROPERTY_1(Property, IsClassOffset, IsLocationSimple)
virtual void printRawExtra(raw_ostream &OS, bool Full=true) const
void printRaw(raw_ostream &OS, bool Full=true) const
PROPERTY(Property, IsOperation)
LVAddress getLowerAddress() const override
PROPERTY(Property, IsRegister)
virtual void addObject(LVSmall Opcode, ArrayRef< LVUnsigned > Operands)
void dump() const override
const LVLine * getUpperLine() const
void printExtra(raw_ostream &OS, bool Full=true) const override
PROPERTY(Property, IsGapEntry)
PROPERTY(Property, IsCallSite)
static void print(LVLocations *Locations, raw_ostream &OS, bool Full=true)
void setLowerLine(LVLine *Line)
LVAddress getUpperAddress() const override
void printInterval(raw_ostream &OS, bool Full=true) const
virtual ~LVLocation()=default
void setLowerAddress(LVAddress Address) override
void print(raw_ostream &OS, bool Full=true) const
LVOperation(const LVOperation &)=delete
std::string getOperandsDWARFInfo()
LVOperation & operator=(const LVOperation &)=delete
LVSmall getOpcode() const
std::string getOperandsCodeViewInfo()
LVOperation(LVSmall Opcode, ArrayRef< LVUnsigned > Operands)
This class implements an extremely fast bulk output stream that can only output to a stream.
std::pair< LVLine *, LVLine * > LVLineRange
const LVSmall LVLocationMemberOffset
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.