14#ifndef LLVM_DEBUGINFO_LOGICALVIEW_CORE_LVLOCATION_H
15#define LLVM_DEBUGINFO_LOGICALVIEW_CORE_LVLOCATION_H
21namespace logicalview {
53#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
82 bool hasAssociatedRange()
const {
83 return !getIsClassOffset() && !getIsDiscardedRange();
122 const char *kind()
const override;
138 std::string getIntervalInfo()
const;
140 bool validateRanges();
148 static bool calculateCoverage(
LVLocations *Locations,
unsigned &Factor,
161 void printExtra(
raw_ostream &
OS,
bool Full =
true)
const override;
166 std::unique_ptr<LVOperations> Entries;
168 void updateKind()
override;
180 void printRawExtra(
raw_ostream &
OS,
bool Full =
true)
const override;
181 void printExtra(
raw_ostream &
OS,
bool Full =
true)
const override;
static void print(raw_ostream &Out, object::Archive::Kind Kind, T Val)
static bool IsRegister(const MCParsedAsmOperand &op)
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.
LVLocationSymbol(const LVLocationSymbol &)=delete
~LVLocationSymbol()=default
LVLocationSymbol & operator=(const LVLocationSymbol &)=delete
PROPERTY(Property, IsDiscardedRange)
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)
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
PROPERTY(Property, IsOperation)
LVAddress getLowerAddress() const override
PROPERTY(Property, IsRegister)
virtual void addObject(LVSmall Opcode, ArrayRef< LVUnsigned > Operands)
const LVLine * getUpperLine() const
PROPERTY(Property, IsGapEntry)
PROPERTY(Property, IsCallSite)
void setLowerLine(LVLine *Line)
LVAddress getUpperAddress() const override
virtual ~LVLocation()=default
void setLowerAddress(LVAddress Address) override
LLVM_ABI void print(raw_ostream &OS, bool Full=true) const
LVOperation(const LVOperation &)=delete
LLVM_ABI std::string getOperandsDWARFInfo()
LVOperation & operator=(const LVOperation &)=delete
LVSmall getOpcode() const
LLVM_ABI 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.
LLVM_ABI raw_ostream & dbgs()
dbgs() - This returns a reference to a raw_ostream for debugging messages.