class SDDbgInfo

Declaration

class SDDbgInfo { /* full declaration omitted */ };

Description

Keeps track of dbg_value information through SDISel. We do not build SDNodes for these so as not to perturb the generated code; instead the info is kept off to the side in this structure. Each SDNode may have one or more associated dbg_value entries. This information is kept in DbgValMap. Byval parameters are handled separately because they don't use alloca's, which busts the normal mechanism. There is good reason for handling all parameters separately: they may not have code generated for them, they should always go at the beginning of the function regardless of other code motion, and debug info for them is potentially useful even if the parameter is unused. Right now only byval parameters are handled separately.

Declared at: llvm/include/llvm/CodeGen/SelectionDAG.h:154

Member Variables

private llvm::BumpPtrAllocator Alloc
private SmallVector<llvm::SDDbgValue*, 32> DbgValues
private SmallVector<llvm::SDDbgValue*, 32> ByvalParmDbgValues
private SmallVector<llvm::SDDbgLabel*, 4> DbgLabels
private llvm::SDDbgInfo::DbgValMapType DbgValMap

Method Overview

  • public llvm::SDDbgInfo::DbgIterator ByvalParmDbgBegin()
  • public llvm::SDDbgInfo::DbgIterator ByvalParmDbgEnd()
  • public llvm::SDDbgInfo::DbgIterator DbgBegin()
  • public llvm::SDDbgInfo::DbgIterator DbgEnd()
  • public llvm::SDDbgInfo::DbgLabelIterator DbgLabelBegin()
  • public llvm::SDDbgInfo::DbgLabelIterator DbgLabelEnd()
  • public SDDbgInfo()
  • public SDDbgInfo(const llvm::SDDbgInfo &)
  • public void add(llvm::SDDbgValue * V, bool isParameter)
  • public void add(llvm::SDDbgLabel * L)
  • public void clear()
  • public bool empty() const
  • public void erase(const llvm::SDNode * Node)
  • public llvm::BumpPtrAllocator & getAlloc()
  • public ArrayRef<llvm::SDDbgValue *> getSDDbgValues(const llvm::SDNode * Node) const

Methods

llvm::SDDbgInfo::DbgIterator ByvalParmDbgBegin()

Declared at: llvm/include/llvm/CodeGen/SelectionDAG.h:201

llvm::SDDbgInfo::DbgIterator ByvalParmDbgEnd()

Declared at: llvm/include/llvm/CodeGen/SelectionDAG.h:202

llvm::SDDbgInfo::DbgIterator DbgBegin()

Declared at: llvm/include/llvm/CodeGen/SelectionDAG.h:199

llvm::SDDbgInfo::DbgIterator DbgEnd()

Declared at: llvm/include/llvm/CodeGen/SelectionDAG.h:200

llvm::SDDbgInfo::DbgLabelIterator DbgLabelBegin()

Declared at: llvm/include/llvm/CodeGen/SelectionDAG.h:203

llvm::SDDbgInfo::DbgLabelIterator DbgLabelEnd()

Declared at: llvm/include/llvm/CodeGen/SelectionDAG.h:204

SDDbgInfo()

Declared at: llvm/include/llvm/CodeGen/SelectionDAG.h:163

SDDbgInfo(const llvm::SDDbgInfo&)

Declared at: llvm/include/llvm/CodeGen/SelectionDAG.h:164

Parameters

const llvm::SDDbgInfo&

void add(llvm::SDDbgValue* V, bool isParameter)

Declared at: llvm/include/llvm/CodeGen/SelectionDAG.h:167

Parameters

llvm::SDDbgValue* V
bool isParameter

void add(llvm::SDDbgLabel* L)

Declared at: llvm/include/llvm/CodeGen/SelectionDAG.h:169

Parameters

llvm::SDDbgLabel* L

void clear()

Declared at: llvm/include/llvm/CodeGen/SelectionDAG.h:175

bool empty() const

Declared at: llvm/include/llvm/CodeGen/SelectionDAG.h:185

void erase(const llvm::SDNode* Node)

Description

Invalidate all DbgValues attached to the node and remove it from the Node-to-DbgValues map.

Declared at: llvm/include/llvm/CodeGen/SelectionDAG.h:173

Parameters

const llvm::SDNode* Node

llvm::BumpPtrAllocator& getAlloc()

Declared at: llvm/include/llvm/CodeGen/SelectionDAG.h:183

ArrayRef<llvm::SDDbgValue*> getSDDbgValues(
    const llvm::SDNode* Node) const

Declared at: llvm/include/llvm/CodeGen/SelectionDAG.h:189

Parameters

const llvm::SDNode* Node