LLVM 19.0.0git
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.
 
const ValuegetFunctionArg () 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)
 

Detailed Description

Definition at line 34 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 72 of file SwiftErrorValueTracking.h.

Referenced by llvm::IRTranslator::runOnMachineFunction().

◆ 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(), I, and MBB.

Referenced by llvm::SelectionDAGBuilder::LowerCallTo(), and preassignVRegs().

◆ preassignVRegs()

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

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

References MBB.

Referenced by createEntriesInEntryBlock(), getOrCreateVRegDefAt(), propagateVRegs(), and llvm::IRTranslator::runOnMachineFunction().

◆ setFunction()

void SwiftErrorValueTracking::setFunction ( MachineFunction mf)

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