LLVM 24.0.0git
llvm::LiveDebugVariables Class Reference

#include "llvm/CodeGen/LiveDebugVariables.h"

Classes

class  LDVImpl

Public Member Functions

LLVM_ABI LiveDebugVariables ()
 Implementation of the LiveDebugVariables pass.
LLVM_ABI ~LiveDebugVariables ()
LLVM_ABI LiveDebugVariables (LiveDebugVariables &&)
LLVM_ABI void analyze (MachineFunction &MF, LiveIntervals *LIS)
LLVM_ABI void splitRegister (Register OldReg, ArrayRef< Register > NewRegs, LiveIntervals &LIS)
 splitRegister - Move any user variables in OldReg to the live ranges in NewRegs where they are live.
LLVM_ABI void canonicalizeIndexes (const SlotIndexes &SI)
 canonicalizeIndexes - Replace every SlotIndex held by this analysis that refers to an erased instruction.
LLVM_ABI void emitDebugValues (VirtRegMap *VRM)
 emitDebugValues - Emit new DBG_VALUE instructions reflecting the changes that happened during register allocation.
void dump () const
 dump - Print data structures to dbgs().
LLVM_ABI void print (raw_ostream &OS) const
LLVM_ABI void releaseMemory ()
LLVM_ABI bool invalidate (MachineFunction &MF, const PreservedAnalyses &PA, MachineFunctionAnalysisManager::Invalidator &Inv)

Detailed Description

Definition at line 36 of file LiveDebugVariables.h.

Constructor & Destructor Documentation

◆ LiveDebugVariables() [1/2]

llvm::LiveDebugVariables::LiveDebugVariables ( )
default

Implementation of the LiveDebugVariables pass.

References LLVM_ABI.

Referenced by LiveDebugVariables().

◆ ~LiveDebugVariables()

llvm::LiveDebugVariables::~LiveDebugVariables ( )
default

References LLVM_ABI.

◆ LiveDebugVariables() [2/2]

llvm::LiveDebugVariables::LiveDebugVariables ( LiveDebugVariables && )
default

References LiveDebugVariables(), and LLVM_ABI.

Member Function Documentation

◆ analyze()

◆ canonicalizeIndexes()

void LiveDebugVariables::canonicalizeIndexes ( const SlotIndexes & SI)

canonicalizeIndexes - Replace every SlotIndex held by this analysis that refers to an erased instruction.

Described locations do not change, as a stale index already resolves to the same position at the point of use, but intervals resolving to one position now emit a single DBG_VALUE rather than identical consecutive ones.

Definition at line 1684 of file LiveDebugVariables.cpp.

Referenced by llvm::LiveDebugVariables::LDVImpl::emitDebugValues().

◆ dump()

LLVM_DUMP_METHOD void LiveDebugVariables::dump ( ) const

dump - Print data structures to dbgs().

Definition at line 2145 of file LiveDebugVariables.cpp.

References llvm::dbgs(), LLVM_DUMP_METHOD, and print().

◆ emitDebugValues()

void LiveDebugVariables::emitDebugValues ( VirtRegMap * VRM)

emitDebugValues - Emit new DBG_VALUE instructions reflecting the changes that happened during register allocation.

Parameters
VRMRename virtual registers according to map.

Definition at line 2139 of file LiveDebugVariables.cpp.

◆ invalidate()

bool LiveDebugVariables::invalidate ( MachineFunction & MF,
const PreservedAnalyses & PA,
MachineFunctionAnalysisManager::Invalidator & Inv )

Definition at line 1359 of file LiveDebugVariables.cpp.

References llvm::PreservedAnalyses::getChecker().

◆ print()

void LiveDebugVariables::print ( raw_ostream & OS) const

◆ releaseMemory()

void LiveDebugVariables::releaseMemory ( )

Definition at line 1354 of file LiveDebugVariables.cpp.

◆ splitRegister()

void LiveDebugVariables::splitRegister ( Register OldReg,
ArrayRef< Register > NewRegs,
LiveIntervals & LIS )

splitRegister - Move any user variables in OldReg to the live ranges in NewRegs where they are live.

Mark the values as unavailable where no new register is live.

Definition at line 1564 of file LiveDebugVariables.cpp.


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