Assignment Tracking (at).

Types

Name

Description

AssignmentInfo

Describes properties of a store that has a static size and offset into a some base storage. Used by the getAssignmentInfo functions.

VarRecord

Helper struct for trackAssignments, below. We don't use the similar DebugVariable class because trackAssignments doesn't (yet?) understand partial variables (fragment info) as input and want to make that clear and explicit using types. In addition, eventually we will want to understand expressions that modify the base address too, which a DebugVariable doesn't capture.

Type Aliases

Name

Description

AssignmentInstRange

A range of instructions.

StorageToVarsMap

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).

Functions

Name

Description

RAUW

Replace all uses (and attachments) of Old with New.

calculateFragmentIntersect

Calculate the fragment of the variable in DAI covered from (Dest + SliceOffsetInBits) to to (Dest + SliceOffsetInBits + SliceSizeInBits)

deleteAll

Remove all Assignment Tracking related intrinsics and metadata from F.

deleteAssignmentMarkers

Delete the llvm.dbg.assign intrinsics linked to Inst.

getAssignmentInfo

getAssignmentInsts

Return a range of instructions (typically just one) that have ID as an attachment. Iterators invalidated by adding or removing DIAssignID metadata to/from any instruction (including by deleting or cloning instructions).

getDVRAssignmentMarkers

Return a range of dbg_assign records for which Inst performs the assignment they encode.

remapAssignID

Replace DIAssignID uses and attachments with IDs from Map. If an ID is unmapped a new ID is generated and added to Map.

trackAssignments

Track assignments to Vars between Start and End.

operator==

Equality operator

operator<

Less‐than operator

Created with MrDocs