LLVM: llvm::SwiftErrorValueTracking Class Reference (original) (raw)

#include "[llvm/CodeGen/SwiftErrorValueTracking.h](SwiftErrorValueTracking%5F8h%5Fsource.html)"

Public Member Functions
void setFunction (MachineFunction &MF)
Initialize data structures for specified new function.
const Value * getFunctionArg () const
Get the (unique) function argument that was marked swifterror, or nullptr if this function has no swifterror args.
Register getOrCreateVReg (const MachineBasicBlock *, const Value *)
Get or create the swifterror value virtual register in VRegDefMap for this basic block.
void setCurrentVReg (const MachineBasicBlock *MBB, const Value *, Register)
Set the swifterror virtual register in the VRegDefMap for this basic block.
Register getOrCreateVRegDefAt (const Instruction *, const MachineBasicBlock *, const Value *)
Get or create the swifterror value virtual register for a def of a swifterror by an instruction.
Register getOrCreateVRegUseAt (const Instruction *, const MachineBasicBlock *, const Value *)
Get or create the swifterror value virtual register for a use of a swifterror by an instruction.
bool createEntriesInEntryBlock (DebugLoc DbgLoc)
Create initial definitions of swifterror values in the entry block of the current function.
void propagateVRegs ()
Propagate assigned swifterror vregs through a function, synthesizing PHI nodes when needed to maintain consistency.
void preassignVRegs (MachineBasicBlock *MBB, BasicBlock::const_iterator Begin, BasicBlock::const_iterator End)

Definition at line 34 of file SwiftErrorValueTracking.h.

createEntriesInEntryBlock()

bool SwiftErrorValueTracking::createEntriesInEntryBlock ( DebugLoc DbgLoc )

getFunctionArg()

const Value * llvm::SwiftErrorValueTracking::getFunctionArg ( ) const inline

Get the (unique) function argument that was marked swifterror, or nullptr if this function has no swifterror args.

Definition at line 72 of file SwiftErrorValueTracking.h.

getOrCreateVReg()

getOrCreateVRegDefAt()

getOrCreateVRegUseAt()

preassignVRegs()

propagateVRegs()

void SwiftErrorValueTracking::propagateVRegs ( )

Propagate assigned swifterror vregs through a function, synthesizing PHI nodes when needed to maintain consistency.

Propagate swifterror values through the machine function CFG.

Definition at line 146 of file SwiftErrorValueTracking.cpp.

References llvm::MachineInstrBuilder::addReg(), llvm::any_of(), assert(), llvm::ReversePostOrderTraversal< GraphT, GT >::begin(), llvm::BuildMI(), llvm::cast(), llvm::dwarf_linker::DebugLoc, DL, llvm::SmallVectorTemplateCommon< T, typename >::empty(), llvm::ReversePostOrderTraversal< GraphT, GT >::end(), llvm::MDNode::get(), llvm::MachineBasicBlock::getFirstNonPHI(), llvm::MachineBasicBlock::getNumber(), getOrCreateVReg(), llvm::InnerAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs... >::Key, llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::isa(), MBB, MRI, PHI, llvm::SmallVectorTemplateBase< T, bool >::push_back(), Register, setCurrentVReg(), and llvm::SmallVectorTemplateCommon< T, typename >::size().

setCurrentVReg()

setFunction()


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