LLVM: lib/CodeGen/LiveDebugVariables.cpp File Reference (original) (raw)

Go to the source code of this file.

Namespaces
namespace llvm
This is an optimization pass for GlobalISel generic memory operations.
Macros
#define DEBUG_TYPE "livedebugvars"
Typedefs
using LocMap = IntervalMap<SlotIndex, DbgVariableValue, 4>
Map of where a user value is live to that value.
using SpillOffsetMap = DenseMap<unsigned, unsigned>
Map of stack slot offsets for spilled locations.
using BlockSkipInstsMap
Cache to save the location where it can be used as the starting position as input for calling MachineBasicBlock::SkipPHIsLabelsAndDebug.
Enumerations
enum : unsigned { UndefLocNo = ~0U }
Functions
STATISTIC (NumInsertedDebugValues, "Number of DBG_VALUEs inserted")
STATISTIC (NumInsertedDebugLabels, "Number of DBG_LABELs inserted")
INITIALIZE_PASS_BEGIN (LiveDebugVariablesWrapperLegacy, DEBUG_TYPE, "Debug Variable Analysis", false, false) INITIALIZE_PASS_END(LiveDebugVariablesWrapperLegacy
static void printDebugLoc (const DebugLoc &DL, raw_ostream &CommentOS, const LLVMContext &Ctx)
static void printExtendedName (raw_ostream &OS, const DINode *Node, const DILocation *DL)
static void removeDebugInstrs (MachineFunction &mf)
static MachineBasicBlock::iterator findInsertLocation (MachineBasicBlock *MBB, SlotIndex Idx, LiveIntervals &LIS, BlockSkipInstsMap &BBSkipInstsMap)
Find an iterator for inserting a DBG_VALUE instruction.
static MachineBasicBlock::iterator findNextInsertLocation (MachineBasicBlock *MBB, MachineBasicBlock::iterator I, SlotIndex StopIdx, ArrayRef< MachineOperand > LocMOs, LiveIntervals &LIS, const TargetRegisterInfo &TRI)
Find an iterator for inserting the next DBG_VALUE instruction (or end if no more insert locations found).

DEBUG_TYPE

#define DEBUG_TYPE "livedebugvars"

BlockSkipInstsMap

LocMap

SpillOffsetMap

Map of stack slot offsets for spilled locations.

Non-spilled locations are not added to the map.

Definition at line 269 of file LiveDebugVariables.cpp.

anonymous enum

findInsertLocation()

Find an iterator for inserting a DBG_VALUE instruction.

Definition at line 1636 of file LiveDebugVariables.cpp.

References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find(), llvm::SlotIndex::getBaseIndex(), llvm::LiveIntervals::getInstructionFromIndex(), llvm::LiveIntervals::getMBBStartIdx(), llvm::SlotIndex::getPrevIndex(), I, MBB, MI, and llvm::skipDebugInstructionsForward().

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

findNextInsertLocation()

Find an iterator for inserting the next DBG_VALUE instruction (or end if no more insert locations found).

Definition at line 1683 of file LiveDebugVariables.cpp.

References llvm::any_of(), llvm::SmallVectorTemplateCommon< T, typename >::empty(), llvm::LiveIntervals::getInstructionIndex(), llvm::MachineOperand::getReg(), I, llvm::SlotIndex::isEarlierEqualInstr(), llvm::LiveIntervals::isNotInMIMap(), llvm::MachineOperand::isReg(), MBB, llvm::SmallVectorTemplateBase< T, bool >::push_back(), Reg, and TRI.

INITIALIZE_PASS_BEGIN()

printDebugLoc()

printExtendedName()

removeDebugInstrs()

STATISTIC() [1/2]

STATISTIC ( NumInsertedDebugLabels ,
"Number of DBG_LABELs inserted" )

STATISTIC() [2/2]

STATISTIC ( NumInsertedDebugValues ,
"Number of DBG_VALUEs inserted" )

Analysis

DEBUG_TYPE

EnableLDV

cl::opt< bool > EnableLDV("live-debug-variables", cl::init(true), cl::desc("Enable the live debug variables pass"), cl::Hidden) ( "live-debug-variables" , cl::init(true) , cl::desc("Enable the live debug variables pass") , cl::Hidden ) static

false