LLVM 22.0.0git
llvm::dwarf::RegisterLocations Class Reference

A class that can track all registers with locations in a UnwindRow object. More...

#include "llvm/DebugInfo/DWARF/LowLevel/DWARFUnwindTable.h"

Public Member Functions

std::optional< UnwindLocationgetRegisterLocation (uint32_t RegNum) const
 Return the location for the register in RegNum if there is a location.
SmallVector< uint32_t, 4 > getRegisters () const
void setRegisterLocation (uint32_t RegNum, const UnwindLocation &Location)
 Set the location for the register in RegNum to Location.
void removeRegisterLocation (uint32_t RegNum)
 Removes any rule for the register in RegNum.
bool hasLocations () const
 Returns true if we have any register locations in this object.
size_t size () const
bool operator== (const RegisterLocations &RHS) const

Detailed Description

A class that can track all registers with locations in a UnwindRow object.

Register locations use a map where the key is the register number and the the value is a UnwindLocation.

The register maps are put into a class so that all register locations can be copied when parsing the unwind opcodes DW_CFA_remember_state and DW_CFA_restore_state.

Definition at line 166 of file DWARFUnwindTable.h.

Member Function Documentation

◆ getRegisterLocation()

std::optional< UnwindLocation > llvm::dwarf::RegisterLocations::getRegisterLocation ( uint32_t RegNum) const
inline

Return the location for the register in RegNum if there is a location.

Parameters
RegNumthe register number to find a location for.
Returns
A location if one is available for RegNum, or std::nullopt otherwise.

Definition at line 176 of file DWARFUnwindTable.h.

Referenced by getUnwindRuleRegSet(), llvm::dwarf::parseRows(), and printRegisterLocations().

◆ getRegisters()

SmallVector< uint32_t, 4 > llvm::dwarf::RegisterLocations::getRegisters ( ) const
inline

Definition at line 183 of file DWARFUnwindTable.h.

References _, and Registers.

Referenced by printRegisterLocations().

◆ hasLocations()

bool llvm::dwarf::RegisterLocations::hasLocations ( ) const
inline

Returns true if we have any register locations in this object.

Definition at line 206 of file DWARFUnwindTable.h.

◆ operator==()

bool llvm::dwarf::RegisterLocations::operator== ( const RegisterLocations & RHS) const
inline

Definition at line 210 of file DWARFUnwindTable.h.

References RHS.

◆ removeRegisterLocation()

void llvm::dwarf::RegisterLocations::removeRegisterLocation ( uint32_t RegNum)
inline

Removes any rule for the register in RegNum.

Parameters
RegNumthe register number to remove the location for.

Definition at line 203 of file DWARFUnwindTable.h.

◆ setRegisterLocation()

void llvm::dwarf::RegisterLocations::setRegisterLocation ( uint32_t RegNum,
const UnwindLocation & Location )
inline

Set the location for the register in RegNum to Location.

Parameters
RegNumthe register number to set the location for.
Locationthe UnwindLocation that describes how to unwind the value.

Definition at line 195 of file DWARFUnwindTable.h.

◆ size()

size_t llvm::dwarf::RegisterLocations::size ( ) const
inline

Definition at line 208 of file DWARFUnwindTable.h.


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