LLVM  16.0.0git
Macros | Functions
CodeGenCommonISel.cpp File Reference
#include "llvm/CodeGen/CodeGenCommonISel.h"
#include "llvm/Analysis/BranchProbabilityInfo.h"
#include "llvm/CodeGen/MachineBasicBlock.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/TargetInstrInfo.h"
#include "llvm/CodeGen/TargetOpcodes.h"
#include "llvm/IR/DebugInfoMetadata.h"
Include dependency graph for CodeGenCommonISel.cpp:

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. More...
 
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()

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

Definition at line 204 of file CodeGenCommonISel.cpp.

References assert().

Referenced by salvageDebugInfoImpl().

◆ getSalvageOpsForTrunc()

static MachineOperand* getSalvageOpsForTrunc ( const MachineRegisterInfo MRI,
MachineInstr Trunc,
SmallVectorImpl< uint64_t > &  Ops 
)
static

◆ MIIsInTerminatorSequence()

static 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::isPhysicalRegister(), llvm::MachineOperand::isReg(), and MI.

Referenced by llvm::findSplitPointForStackProtector().

◆ salvageDebugInfoImpl()

static MachineOperand* salvageDebugInfoImpl ( const MachineRegisterInfo MRI,
MachineInstr MI,
SmallVectorImpl< uint64_t > &  Ops 
)
static

Definition at line 230 of file CodeGenCommonISel.cpp.

References getSalvageOpsForCopy(), getSalvageOpsForTrunc(), MI, and MRI.