LLVM  10.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...
 
Register 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 *, Register)
 Set the swifterror virtual register in the VRegDefMap for this basic block. More...
 
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. More...
 
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. 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 36 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 74 of file SwiftErrorValueTracking.h.

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

◆ getOrCreateVReg()

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

◆ getOrCreateVRegDefAt()

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

◆ getOrCreateVRegUseAt()

Register 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 65 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 259 of file SwiftErrorValueTracking.cpp.

Referenced by getFunctionArg().

◆ propagateVRegs()

void SwiftErrorValueTracking::propagateVRegs ( )

◆ setCurrentVReg()

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

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

Definition at line 45 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: