LLVM: llvm::at Namespace Reference (original) (raw)
Assignment Tracking (at). More...
| Classes | |
|---|---|
| struct | AssignmentInfo |
| Describes properties of a store that has a static size and offset into a some base storage. More... | |
| struct | VarRecord |
| Helper struct for trackAssignments, below. More... |
| Typedefs | |
|---|---|
| using | AssignmentInstRange |
| A range of instructions. | |
| using | StorageToVarsMap |
| Map of backing storage to a set of variables that are stored to it. |
| Functions | |
|---|---|
| LLVM_ABI AssignmentInstRange | getAssignmentInsts (DIAssignID *ID) |
| Return a range of instructions (typically just one) that have ID as an attachment. | |
| AssignmentInstRange | getAssignmentInsts (const DbgVariableRecord *DVR) |
| SmallVector< DbgVariableRecord * > | getDVRAssignmentMarkers (const Instruction *Inst) |
| Return a range of dbg_assign records for which Inst performs the assignment they encode. | |
| LLVM_ABI void | deleteAssignmentMarkers (const Instruction *Inst) |
| Delete the llvm.dbg.assign intrinsics linked to Inst. | |
| LLVM_ABI void | RAUW (DIAssignID *Old, DIAssignID *New) |
| Replace all uses (and attachments) of Old with New. | |
| LLVM_ABI void | deleteAll (Function *F) |
| Remove all Assignment Tracking related intrinsics and metadata from F. | |
| LLVM_ABI bool | 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 | remapAssignID (DenseMap< DIAssignID *, DIAssignID * > &Map, Instruction &I) |
| Replace DIAssignID uses and attachments with IDs from Map. | |
| LLVM_ABI void | 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< AssignmentInfo > | getAssignmentInfo (const DataLayout &DL, const MemIntrinsic *I) |
| LLVM_ABI std::optional< AssignmentInfo > | getAssignmentInfo (const DataLayout &DL, const StoreInst *SI) |
| LLVM_ABI std::optional< AssignmentInfo > | getAssignmentInfo (const DataLayout &DL, const AllocaInst *AI) |
Assignment Tracking (at).
◆ AssignmentInstRange
Initial value:
A range adaptor for a pair of iterators.
A range of instructions.
Definition at line 178 of file DebugInfo.h.
◆ StorageToVarsMap
Initial value:
Map of backing storage to a set of variables that are stored to it.
TODO: Backing storage shouldn't be limited to allocas only. Some local variables have their storage allocated by the calling function (addresses passed in with sret & byval parameters).
Definition at line 278 of file DebugInfo.h.
◆ calculateFragmentIntersect()
◆ deleteAll()
| void llvm::at::deleteAll | ( | Function * | F | ) |
|---|
◆ deleteAssignmentMarkers()
◆ getAssignmentInfo() [1/3]
◆ getAssignmentInfo() [2/3]
◆ getAssignmentInfo() [3/3]
◆ getAssignmentInsts() [1/2]
◆ getAssignmentInsts() [2/2]
◆ getDVRAssignmentMarkers()
◆ RAUW()
◆ remapAssignID()
◆ trackAssignments()
Track assignments to Vars between Start and End.
Definition at line 2157 of file DebugInfo.cpp.
References assert(), llvm::cast_or_null(), DL, llvm::dyn_cast(), emitDbgAssign(), llvm::errs(), llvm::PoisonValue::get(), getAssignmentInfo(), llvm::DIAssignID::getDistinct(), llvm::Type::getInt1Ty(), I, LLVM_DEBUG, MI, and Poison.
Referenced by trackInlinedStores().