LLVM 22.0.0git
CodeGenCommonISel.cpp File Reference

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "codegen-common"

Functions

static bool MIIsInTerminatorSequence (const MachineInstr &MI)
 Given that the input MI is before a partial terminator sequence TSeq, return true if M + TSeq also a partial terminator sequence.
static MachineOperandgetSalvageOpsForCopy (const MachineRegisterInfo &MRI, MachineInstr &Copy)
static MachineOperandgetSalvageOpsForTrunc (const MachineRegisterInfo &MRI, MachineInstr &Trunc, SmallVectorImpl< uint64_t > &Ops)
static MachineOperandsalvageDebugInfoImpl (const MachineRegisterInfo &MRI, MachineInstr &MI, SmallVectorImpl< uint64_t > &Ops)

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "codegen-common"

Definition at line 22 of file CodeGenCommonISel.cpp.

Function Documentation

◆ getSalvageOpsForCopy()

MachineOperand * getSalvageOpsForCopy ( const MachineRegisterInfo & MRI,
MachineInstr & Copy )
static

Definition at line 218 of file CodeGenCommonISel.cpp.

References assert(), and MRI.

Referenced by salvageDebugInfoImpl().

◆ getSalvageOpsForTrunc()

◆ MIIsInTerminatorSequence()

bool MIIsInTerminatorSequence ( const MachineInstr & MI)
static

Given that the input MI is before a partial terminator sequence TSeq, return true if M + TSeq also a partial terminator sequence.

A Terminator sequence is a sequence of MachineInstrs which at this point in lowering copy vregs into physical registers, which are then passed into terminator instructors so we can satisfy ABI constraints. A partial terminator sequence is an improper subset of a terminator sequence (i.e. it may be the whole terminator sequence).

Definition at line 53 of file CodeGenCommonISel.cpp.

References assert(), llvm::MachineOperand::getReg(), llvm::MachineOperand::isDef(), llvm::Register::isPhysical(), llvm::MachineOperand::isReg(), and MI.

Referenced by llvm::findSplitPointForStackProtector().

◆ salvageDebugInfoImpl()