LLVM  9.0.0svn
Public Member Functions | List of all members
llvm::SwiftErrorValueTracking Class Reference

#include "llvm/CodeGen/SwiftErrorValueTracking.h"

Public Member Functions

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

Detailed Description

Definition at line 35 of file SwiftErrorValueTracking.h.

Member Function Documentation

◆ 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 73 of file SwiftErrorValueTracking.h.

References createEntriesInEntryBlock(), getOrCreateVReg(), getOrCreateVRegDefAt(), getOrCreateVRegUseAt(), preassignVRegs(), propagateVRegs(), and setCurrentVReg().

◆ getOrCreateVReg()

unsigned SwiftErrorValueTracking::getOrCreateVReg ( const MachineBasicBlock MBB,
const Value Val 
)

◆ getOrCreateVRegDefAt()

unsigned SwiftErrorValueTracking::getOrCreateVRegDefAt ( const Instruction I,
const MachineBasicBlock MBB,
const Value Val 
)

◆ getOrCreateVRegUseAt()

unsigned SwiftErrorValueTracking::getOrCreateVRegUseAt ( const Instruction I,
const MachineBasicBlock MBB,
const Value Val 
)

Get or create the swifterror value virtual register for a use of a swifterror by an instruction.

Definition at line 64 of file SwiftErrorValueTracking.cpp.

References getOrCreateVReg(), and I.

Referenced by getFunctionArg().

◆ preassignVRegs()

void SwiftErrorValueTracking::preassignVRegs ( MachineBasicBlock MBB,
BasicBlock::const_iterator  Begin,
BasicBlock::const_iterator  End 
)

Definition at line 258 of file SwiftErrorValueTracking.cpp.

Referenced by getFunctionArg().

◆ propagateVRegs()

void SwiftErrorValueTracking::propagateVRegs ( )

◆ setCurrentVReg()

void SwiftErrorValueTracking::setCurrentVReg ( const MachineBasicBlock MBB,
const Value Val,
unsigned  VReg 
)

Set the swifterror virtual register in the VRegDefMap for this basic block.

Definition at line 44 of file SwiftErrorValueTracking.cpp.

Referenced by createEntriesInEntryBlock(), getFunctionArg(), getOrCreateVRegDefAt(), and propagateVRegs().

◆ setFunction()

void SwiftErrorValueTracking::setFunction ( MachineFunction mf)

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