LLVM  6.0.0svn
Classes | Public Member Functions | List of all members
llvm::DebugLocEntry Class Reference

This struct describes location entries emitted in the .debug_loc section. More...

#include "CodeGen/AsmPrinter/DebugLocEntry.h"

Classes

struct  Value
 A single location or constant. More...
 

Public Member Functions

 DebugLocEntry (const MCSymbol *B, const MCSymbol *E, Value Val)
 
bool MergeValues (const DebugLocEntry &Next)
 If this and Next are describing different pieces of the same variable, merge them by appending Next's values to the current list of values. More...
 
bool MergeRanges (const DebugLocEntry &Next)
 Attempt to merge this DebugLocEntry with Next and return true if the merge was successful. More...
 
const MCSymbolgetBeginSym () const
 
const MCSymbolgetEndSym () const
 
ArrayRef< ValuegetValues () const
 
void addValues (ArrayRef< DebugLocEntry::Value > Vals)
 
void sortUniqueValues ()
 
void finalize (const AsmPrinter &AP, DebugLocStream::ListBuilder &List, const DIBasicType *BT)
 Lower this entry into a DWARF expression. More...
 

Detailed Description

This struct describes location entries emitted in the .debug_loc section.

Definition at line 25 of file DebugLocEntry.h.

Constructor & Destructor Documentation

◆ DebugLocEntry()

llvm::DebugLocEntry::DebugLocEntry ( const MCSymbol B,
const MCSymbol E,
Value  Val 
)
inline

Member Function Documentation

◆ addValues()

void llvm::DebugLocEntry::addValues ( ArrayRef< DebugLocEntry::Value Vals)
inline

◆ finalize()

void DebugLocEntry::finalize ( const AsmPrinter AP,
DebugLocStream::ListBuilder List,
const DIBasicType BT 
)

◆ getBeginSym()

const MCSymbol* llvm::DebugLocEntry::getBeginSym ( ) const
inline

Definition at line 127 of file DebugLocEntry.h.

◆ getEndSym()

const MCSymbol* llvm::DebugLocEntry::getEndSym ( ) const
inline

Definition at line 128 of file DebugLocEntry.h.

◆ getValues()

ArrayRef<Value> llvm::DebugLocEntry::getValues ( ) const
inline

Definition at line 129 of file DebugLocEntry.h.

◆ MergeRanges()

bool llvm::DebugLocEntry::MergeRanges ( const DebugLocEntry Next)
inline

Attempt to merge this DebugLocEntry with Next and return true if the merge was successful.

Entries can be merged if they share the same Loc/Constant and if Next immediately follows this Entry.

Definition at line 118 of file DebugLocEntry.h.

◆ MergeValues()

bool DebugLocEntry::MergeValues ( const DebugLocEntry Next)

If this and Next are describing different pieces of the same variable, merge them by appending Next's values to the current list of values.

If this and Next are describing different fragments of the same variable, merge them by appending Next's values to the current list of values.

Return true if the merge was successful.

Definition at line 894 of file DwarfDebug.cpp.

References llvm::DwarfFile::addScopeVariable(), addValues(), llvm::DebugHandlerBase::Asm, assert(), llvm::SmallVectorTemplateCommon< T >::back(), llvm::SmallVectorTemplateCommon< T, typename >::begin(), llvm::SmallVectorImpl< T >::clear(), llvm::dbgs(), DEBUG, E, llvm::SmallVectorBase::empty(), llvm::SmallVectorTemplateCommon< T >::end(), llvm::SmallVectorTemplateCommon< T, typename >::end(), llvm::WebAssembly::End, llvm::SmallVectorImpl< T >::erase(), first, llvm::DebugHandlerBase::fragmentCmp(), llvm::DebugHandlerBase::fragmentsOverlap(), llvm::MachineInstr::getDebugExpression(), getDebugLocValue(), llvm::DebugLocEntry::Value::getExpression(), llvm::AsmPrinter::getFunctionEnd(), llvm::DebugHandlerBase::getLabelAfterInsn(), llvm::DebugHandlerBase::getLabelBeforeInsn(), llvm::MachineInstr::getNumOperands(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::LexicalScope::getScopeNode(), I, llvm::MachineInstr::isDebugValue(), llvm::DIExpression::isFragment(), llvm::MachineOperand::isReg(), MergeValues(), llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::pop_back(), llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), llvm::SmallVectorTemplateCommon< T >::rbegin(), llvm::remove_if(), llvm::SmallVectorTemplateCommon< T >::rend(), and llvm::SmallVectorTemplateCommon< T >::size().

Referenced by DebugLocEntry(), and MergeValues().

◆ sortUniqueValues()

void llvm::DebugLocEntry::sortUniqueValues ( )
inline

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