LLVM  14.0.0git
Classes | Public Types | Public Member Functions | Static Public Attributes | List of all members
llvm::DbgValueHistoryMap Class Reference

For each user variable, keep a list of instruction ranges where this variable is accessible. More...

#include "llvm/CodeGen/DbgEntityHistoryCalculator.h"

Collaboration diagram for llvm::DbgValueHistoryMap:
Collaboration graph
[legend]

Classes

class  Entry
 Specifies a change in a variable's debug value history. More...
 

Public Types

typedef size_t EntryIndex
 Index in the entry vector. More...
 
using Entries = SmallVector< Entry, 4 >
 
using InlinedEntity = std::pair< const DINode *, const DILocation * >
 
using EntriesMap = MapVector< InlinedEntity, Entries >
 

Public Member Functions

bool startDbgValue (InlinedEntity Var, const MachineInstr &MI, EntryIndex &NewIndex)
 
EntryIndex startClobber (InlinedEntity Var, const MachineInstr &MI)
 
EntrygetEntry (InlinedEntity Var, EntryIndex Index)
 
bool hasNonEmptyLocation (const Entries &Entries) const
 Test whether a vector of entries features any non-empty locations. More...
 
void trimLocationRanges (const MachineFunction &MF, LexicalScopes &LScopes, const InstructionOrdering &Ordering)
 Drop location ranges which exist entirely outside each variable's scope. More...
 
bool empty () const
 
void clear ()
 
EntriesMap::const_iterator begin () const
 
EntriesMap::const_iterator end () const
 
LLVM_DUMP_METHOD void dump () const
 

Static Public Attributes

static const EntryIndex NoEntry = std::numeric_limits<EntryIndex>::max()
 Special value to indicate that an entry is valid until the end of the function. More...
 

Detailed Description

For each user variable, keep a list of instruction ranges where this variable is accessible.

The variables are listed in order of appearance.

Definition at line 47 of file DbgEntityHistoryCalculator.h.

Member Typedef Documentation

◆ Entries

Definition at line 96 of file DbgEntityHistoryCalculator.h.

◆ EntriesMap

Definition at line 98 of file DbgEntityHistoryCalculator.h.

◆ EntryIndex

Index in the entry vector.

Definition at line 50 of file DbgEntityHistoryCalculator.h.

◆ InlinedEntity

Definition at line 97 of file DbgEntityHistoryCalculator.h.

Member Function Documentation

◆ begin()

EntriesMap::const_iterator llvm::DbgValueHistoryMap::begin ( ) const
inline

◆ clear()

void llvm::DbgValueHistoryMap::clear ( )
inline

◆ dump()

LLVM_DUMP_METHOD void DbgValueHistoryMap::dump ( ) const

◆ empty()

bool llvm::DbgValueHistoryMap::empty ( ) const
inline

◆ end()

EntriesMap::const_iterator llvm::DbgValueHistoryMap::end ( ) const
inline

◆ getEntry()

Entry& llvm::DbgValueHistoryMap::getEntry ( InlinedEntity  Var,
EntryIndex  Index 
)
inline

Definition at line 108 of file DbgEntityHistoryCalculator.h.

References Index.

Referenced by llvm::calculateDbgEntityHistory().

◆ hasNonEmptyLocation()

bool DbgValueHistoryMap::hasNonEmptyLocation ( const Entries Entries) const

Test whether a vector of entries features any non-empty locations.

It could have no entries, or only DBG_VALUE $noreg entries.

Definition at line 260 of file DbgEntityHistoryCalculator.cpp.

References assert(), llvm::DbgValueHistoryMap::Entry::getInstr(), llvm::DbgValueHistoryMap::Entry::isDbgValue(), and MI.

◆ startClobber()

EntryIndex DbgValueHistoryMap::startClobber ( InlinedEntity  Var,
const MachineInstr MI 
)

◆ startDbgValue()

bool DbgValueHistoryMap::startDbgValue ( InlinedEntity  Var,
const MachineInstr MI,
EntryIndex NewIndex 
)

◆ trimLocationRanges()

void DbgValueHistoryMap::trimLocationRanges ( const MachineFunction MF,
LexicalScopes LScopes,
const InstructionOrdering Ordering 
)

Member Data Documentation

◆ NoEntry

const EntryIndex llvm::DbgValueHistoryMap::NoEntry = std::numeric_limits<EntryIndex>::max()
static

Special value to indicate that an entry is valid until the end of the function.

Definition at line 54 of file DbgEntityHistoryCalculator.h.

Referenced by dump(), llvm::DbgValueHistoryMap::Entry::isClosed(), and trimLocationRanges().


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