LLVM 22.0.0git
FunctionVarLocsBuilder Class Reference

Helper class to build FunctionVarLocs, since that class isn't easy to modify. More...

Public Member Functions

unsigned getNumVariables () const
VariableID insertVariable (DebugVariable V)
 Find or insert V and return the ID.
const DebugVariablegetVariable (VariableID ID) const
 Get a variable from its ID.
const SmallVectorImpl< VarLocInfo > * getWedge (VarLocInsertPt Before) const
 Return ptr to wedge of defs or nullptr if no defs come just before /p Before.
void setWedge (VarLocInsertPt Before, SmallVector< VarLocInfo > &&Wedge)
 Replace the defs that come just before /p Before with /p Wedge.
void addSingleLocVar (DebugVariable Var, DIExpression *Expr, DebugLoc DL, RawLocationWrapper R)
 Add a def for a variable that is valid for its lifetime.
void addVarLoc (VarLocInsertPt Before, DebugVariable Var, DIExpression *Expr, DebugLoc DL, RawLocationWrapper R)
 Add a def to the wedge of defs just before /p Before.

Detailed Description

Helper class to build FunctionVarLocs, since that class isn't easy to modify.

TODO: There's not a great deal of value in the split, it could be worth merging the two classes.

Definition at line 102 of file AssignmentTrackingAnalysis.cpp.

Member Function Documentation

◆ addSingleLocVar()

void FunctionVarLocsBuilder::addSingleLocVar ( DebugVariable Var,
DIExpression * Expr,
DebugLoc DL,
RawLocationWrapper R )
inline

Add a def for a variable that is valid for its lifetime.

Definition at line 139 of file AssignmentTrackingAnalysis.cpp.

References DL, llvm::VarLocInfo::DL, llvm::VarLocInfo::Expr, insertVariable(), llvm::VarLocInfo::Values, and llvm::VarLocInfo::VariableID.

Referenced by buildOverlapMapAndRecordDeclares().

◆ addVarLoc()

void FunctionVarLocsBuilder::addVarLoc ( VarLocInsertPt Before,
DebugVariable Var,
DIExpression * Expr,
DebugLoc DL,
RawLocationWrapper R )
inline

Add a def to the wedge of defs just before /p Before.

Definition at line 150 of file AssignmentTrackingAnalysis.cpp.

References DL, llvm::VarLocInfo::DL, llvm::VarLocInfo::Expr, insertVariable(), llvm::VarLocInfo::Values, and llvm::VarLocInfo::VariableID.

◆ getNumVariables()

unsigned FunctionVarLocsBuilder::getNumVariables ( ) const
inline

Definition at line 112 of file AssignmentTrackingAnalysis.cpp.

Referenced by buildOverlapMapAndRecordDeclares().

◆ getVariable()

const DebugVariable & FunctionVarLocsBuilder::getVariable ( VariableID ID) const
inline

◆ getWedge()

const SmallVectorImpl< VarLocInfo > * FunctionVarLocsBuilder::getWedge ( VarLocInsertPt Before) const
inline

Return ptr to wedge of defs or nullptr if no defs come just before /p Before.

Definition at line 126 of file AssignmentTrackingAnalysis.cpp.

Referenced by removeRedundantDbgLocsUsingBackwardScan(), removeRedundantDbgLocsUsingForwardScan(), and removeUndefDbgLocsFromEntryBlock().

◆ insertVariable()

VariableID FunctionVarLocsBuilder::insertVariable ( DebugVariable V)
inline

Find or insert V and return the ID.

Definition at line 115 of file AssignmentTrackingAnalysis.cpp.

Referenced by addSingleLocVar(), addVarLoc(), and buildOverlapMapAndRecordDeclares().

◆ setWedge()

void FunctionVarLocsBuilder::setWedge ( VarLocInsertPt Before,
SmallVector< VarLocInfo > && Wedge )
inline

Replace the defs that come just before /p Before with /p Wedge.

Definition at line 134 of file AssignmentTrackingAnalysis.cpp.

Referenced by removeRedundantDbgLocsUsingBackwardScan(), removeRedundantDbgLocsUsingForwardScan(), and removeUndefDbgLocsFromEntryBlock().


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