15#ifndef LLVM_CODEGEN_SWIFTERRORVALUETRACKING_H
16#define LLVM_CODEGEN_SWIFTERRORVALUETRACKING_H
58 const Value *SwiftErrorArg =
nullptr;
64 SwiftErrorValues SwiftErrorVals;
This file defines the DenseMap class.
This file defines the SmallVector class.
InstListType::const_iterator const_iterator
Representation of each machine instruction.
Wrapper class representing virtual and physical registers.
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.
LLVM_ABI bool createEntriesInEntryBlock(DebugLoc DbgLoc)
Create initial definitions of swifterror values in the entry block of the current function.
LLVM_ABI void setFunction(MachineFunction &MF)
Initialize data structures for specified new function.
LLVM_ABI Register getOrCreateVReg(const MachineBasicBlock *, const Value *)
Get or create the swifterror value virtual register in VRegDefMap for this basic block.
LLVM_ABI void setCurrentVReg(const MachineBasicBlock *MBB, const Value *, Register)
Set the swifterror virtual register in the VRegDefMap for this basic block.
LLVM_ABI 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.
LLVM_ABI void preassignVRegs(MachineBasicBlock *MBB, BasicBlock::const_iterator Begin, BasicBlock::const_iterator End)
LLVM_ABI 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.
const Value * getFunctionArg() const
Get the (unique) function argument that was marked swifterror, or nullptr if this function has no swi...
LLVM_ABI void propagateVRegs()
Propagate assigned swifterror vregs through a function, synthesizing PHI nodes when needed to maintai...
TargetInstrInfo - Interface to description of machine instruction set.
This class defines information used to lower LLVM code to legal SelectionDAG operators that the targe...
LLVM Value Representation.
This is an optimization pass for GlobalISel generic memory operations.