llvm::SwiftErrorValueTracking

Tracks swifterror values as virtual registers during code generation.

Synopsis

Declared in <llvm/CodeGen/SwiftErrorValueTracking.h>

class SwiftErrorValueTracking;

Description

Implements a limited mem2reg-like analysis to promote uses of function arguments and allocas marked with swifterror from memory into virtual registers.

Member Functions

NameDescription
createEntriesInEntryBlock Create initial definitions of swifterror values in the entry block of the current function.
getFunctionArg Get the (unique) function argument that was marked swifterror.
getOrCreateVReg Get or create the swifterror value virtual register in VRegDefMap for this basic block.
getOrCreateVRegDefAt Get or create the swifterror value virtual register for a def of a swifterror by an instruction.
getOrCreateVRegUseAt Get or create the swifterror value virtual register for a use of a swifterror by an instruction.
preassignVRegs Preassign virtual registers to swifterror defs and uses in an IR range.
propagateVRegs Propagate assigned swifterror vregs through a function, synthesizing PHI nodes when needed to maintain consistency.
setCurrentVReg Set the swifterror virtual register in the VRegDefMap for this basic block.
setFunction Initialize data structures for specified new function.