LLVM 22.0.0git
DebugInfo.h File Reference

Go to the source code of this file.

Classes

class  llvm::DebugInfoFinder
 Utility to find all debug info in a module. More...
struct  llvm::at::VarRecord
 Helper struct for trackAssignments, below. More...
struct  llvm::DenseMapInfo< at::VarRecord >
struct  llvm::at::AssignmentInfo
 Describes properties of a store that has a static size and offset into a some base storage. More...
class  llvm::AssignmentTrackingPass
 Convert @llvm.dbg.declare intrinsics into sets of @llvm.dbg.assign intrinsics by treating stores to the dbg.declare'd address as assignments to the variable. More...

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
namespace  llvm::at
 Assignment Tracking (at).

Typedefs

using llvm::at::AssignmentInstRange
 A range of instructions.
using llvm::at::StorageToVarsMap
 Map of backing storage to a set of variables that are stored to it.

Functions

LLVM_ABI TinyPtrVector< DbgVariableRecord * > llvm::findDVRDeclares (Value *V)
 Finds dbg.declare records declaring local variables as living in the memory that 'V' points to.
LLVM_ABI TinyPtrVector< DbgVariableRecord * > llvm::findDVRValues (Value *V)
 As above, for DVRValues.
LLVM_ABI void llvm::findDbgUsers (Value *V, SmallVectorImpl< DbgVariableRecord * > &DbgVariableRecords)
 Finds the debug info records describing a value.
LLVM_ABI void llvm::findDbgValues (Value *V, SmallVectorImpl< DbgVariableRecord * > &DbgVariableRecords)
 Finds the dbg.values describing a value.
LLVM_ABI DISubprogramllvm::getDISubprogram (const MDNode *Scope)
 Find subprogram that is enclosing this scope.
LLVM_ABI DebugLoc llvm::getDebugValueLoc (DbgVariableRecord *DVR)
 Produce a DebugLoc to use for each dbg.declare that is promoted to a dbg.value.
LLVM_ABI bool llvm::StripDebugInfo (Module &M)
 Strip debug info in the module if it exists.
LLVM_ABI bool llvm::stripDebugInfo (Function &F)
LLVM_ABI bool llvm::stripNonLineTableDebugInfo (Module &M)
 Downgrade the debug info in a module to contain only line table information.
LLVM_ABI void llvm::updateLoopMetadataDebugLocations (Instruction &I, function_ref< Metadata *(Metadata *)> Updater)
 Update the debug locations contained within the MD_loop metadata attached to the instruction I, if one exists.
LLVM_ABI unsigned llvm::getDebugMetadataVersionFromModule (const Module &M)
 Return Debug Info Metadata Version by checking module flags.
LLVM_ABI AssignmentInstRange llvm::at::getAssignmentInsts (DIAssignID *ID)
 Return a range of instructions (typically just one) that have ID as an attachment.
AssignmentInstRange llvm::at::getAssignmentInsts (const DbgVariableRecord *DVR)
SmallVector< DbgVariableRecord * > llvm::at::getDVRAssignmentMarkers (const Instruction *Inst)
 Return a range of dbg_assign records for which Inst performs the assignment they encode.
LLVM_ABI void llvm::at::deleteAssignmentMarkers (const Instruction *Inst)
 Delete the llvm.dbg.assign intrinsics linked to Inst.
LLVM_ABI void llvm::at::RAUW (DIAssignID *Old, DIAssignID *New)
 Replace all uses (and attachments) of Old with New.
LLVM_ABI void llvm::at::deleteAll (Function *F)
 Remove all Assignment Tracking related intrinsics and metadata from F.
LLVM_ABI bool llvm::at::calculateFragmentIntersect (const DataLayout &DL, const Value *Dest, uint64_t SliceOffsetInBits, uint64_t SliceSizeInBits, const DbgVariableRecord *DVRAssign, std::optional< DIExpression::FragmentInfo > &Result)
 Calculate the fragment of the variable in DAI covered from (Dest + SliceOffsetInBits) to to (Dest + SliceOffsetInBits + SliceSizeInBits)
LLVM_ABI void llvm::at::remapAssignID (DenseMap< DIAssignID *, DIAssignID * > &Map, Instruction &I)
 Replace DIAssignID uses and attachments with IDs from Map.
LLVM_ABI void llvm::at::trackAssignments (Function::iterator Start, Function::iterator End, const StorageToVarsMap &Vars, const DataLayout &DL, bool DebugPrints=false)
 Track assignments to Vars between Start and End.
LLVM_ABI std::optional< AssignmentInfollvm::at::getAssignmentInfo (const DataLayout &DL, const MemIntrinsic *I)
LLVM_ABI std::optional< AssignmentInfollvm::at::getAssignmentInfo (const DataLayout &DL, const StoreInst *SI)
LLVM_ABI std::optional< AssignmentInfollvm::at::getAssignmentInfo (const DataLayout &DL, const AllocaInst *AI)
LLVM_ABI bool llvm::isAssignmentTrackingEnabled (const Module &M)
 Return true if assignment tracking is enabled for module M.