LLVM  13.0.0git
Typedefs | Functions
GCNHazardRecognizer.cpp File Reference
#include "GCNHazardRecognizer.h"
#include "GCNSubtarget.h"
#include "MCTargetDesc/AMDGPUMCTargetDesc.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/ScheduleDAG.h"
#include "llvm/Support/TargetParser.h"
Include dependency graph for GCNHazardRecognizer.cpp:

Go to the source code of this file.

Typedefs

typedef function_ref< bool(const MachineInstr &, int WaitStates)> IsExpiredFn
 

Functions

static bool shouldRunLdsBranchVmemWARHazardFixup (const MachineFunction &MF, const GCNSubtarget &ST)
 
static bool isDivFMas (unsigned Opcode)
 
static bool isSGetReg (unsigned Opcode)
 
static bool isSSetReg (unsigned Opcode)
 
static bool isRWLane (unsigned Opcode)
 
static bool isRFE (unsigned Opcode)
 
static bool isSMovRel (unsigned Opcode)
 
static bool isDGEMM (unsigned Opcode)
 
static bool isXDL (const GCNSubtarget &ST, const MachineInstr &MI)
 
static bool isSendMsgTraceDataOrGDS (const SIInstrInfo &TII, const MachineInstr &MI)
 
static bool isPermlane (const MachineInstr &MI)
 
static unsigned getHWReg (const SIInstrInfo *TII, const MachineInstr &RegInstr)
 
static void insertNoopsInBundle (MachineInstr *MI, const SIInstrInfo &TII, unsigned Quantity)
 
static int getWaitStatesSince (GCNHazardRecognizer::IsHazardFn IsHazard, const MachineBasicBlock *MBB, MachineBasicBlock::const_reverse_instr_iterator I, int WaitStates, IsExpiredFn IsExpired, DenseSet< const MachineBasicBlock * > &Visited)
 
static int getWaitStatesSince (GCNHazardRecognizer::IsHazardFn IsHazard, const MachineInstr *MI, IsExpiredFn IsExpired)
 
static void addRegUnits (const SIRegisterInfo &TRI, BitVector &BV, MCRegister Reg)
 
static void addRegsToSet (const SIRegisterInfo &TRI, iterator_range< MachineInstr::const_mop_iterator > Ops, BitVector &Set)
 
static bool breaksSMEMSoftClause (MachineInstr *MI)
 
static bool breaksVMEMSoftClause (MachineInstr *MI)
 

Typedef Documentation

◆ IsExpiredFn

typedef function_ref<bool(const MachineInstr &, int WaitStates)> IsExpiredFn

Definition at line 394 of file GCNHazardRecognizer.cpp.

Function Documentation

◆ addRegsToSet()

static void addRegsToSet ( const SIRegisterInfo TRI,
iterator_range< MachineInstr::const_mop_iterator Ops,
BitVector Set 
)
static

Definition at line 499 of file GCNHazardRecognizer.cpp.

References addRegUnits(), and TRI.

◆ addRegUnits()

static void addRegUnits ( const SIRegisterInfo TRI,
BitVector BV,
MCRegister  Reg 
)
static

◆ breaksSMEMSoftClause()

static bool breaksSMEMSoftClause ( MachineInstr MI)
static

Definition at line 514 of file GCNHazardRecognizer.cpp.

References llvm::SIInstrInfo::isSMRD(), and MI.

◆ breaksVMEMSoftClause()

static bool breaksVMEMSoftClause ( MachineInstr MI)
static

◆ getHWReg()

static unsigned getHWReg ( const SIInstrInfo TII,
const MachineInstr RegInstr 
)
static

◆ getWaitStatesSince() [1/2]

static int getWaitStatesSince ( GCNHazardRecognizer::IsHazardFn  IsHazard,
const MachineBasicBlock MBB,
MachineBasicBlock::const_reverse_instr_iterator  I,
int  WaitStates,
IsExpiredFn  IsExpired,
DenseSet< const MachineBasicBlock * > &  Visited 
)
static

◆ getWaitStatesSince() [2/2]

static int getWaitStatesSince ( GCNHazardRecognizer::IsHazardFn  IsHazard,
const MachineInstr MI,
IsExpiredFn  IsExpired 
)
static

Definition at line 435 of file GCNHazardRecognizer.cpp.

References getWaitStatesSince(), and MI.

◆ insertNoopsInBundle()

static void insertNoopsInBundle ( MachineInstr MI,
const SIInstrInfo TII,
unsigned  Quantity 
)
static

◆ isDGEMM()

static bool isDGEMM ( unsigned  Opcode)
static

Definition at line 94 of file GCNHazardRecognizer.cpp.

Referenced by isXDL().

◆ isDivFMas()

static bool isDivFMas ( unsigned  Opcode)
static

◆ isPermlane()

static bool isPermlane ( const MachineInstr MI)
static

Definition at line 139 of file GCNHazardRecognizer.cpp.

References MI.

◆ isRFE()

static bool isRFE ( unsigned  Opcode)
static

◆ isRWLane()

static bool isRWLane ( unsigned  Opcode)
static

◆ isSendMsgTraceDataOrGDS()

static bool isSendMsgTraceDataOrGDS ( const SIInstrInfo TII,
const MachineInstr MI 
)
static

◆ isSGetReg()

static bool isSGetReg ( unsigned  Opcode)
static

◆ isSMovRel()

static bool isSMovRel ( unsigned  Opcode)
static

◆ isSSetReg()

static bool isSSetReg ( unsigned  Opcode)
static

◆ isXDL()

static bool isXDL ( const GCNSubtarget ST,
const MachineInstr MI 
)
static

Definition at line 101 of file GCNHazardRecognizer.cpp.

References isDGEMM(), llvm::SIInstrInfo::isMAI(), and MI.

◆ shouldRunLdsBranchVmemWARHazardFixup()

static bool shouldRunLdsBranchVmemWARHazardFixup ( const MachineFunction MF,
const GCNSubtarget ST 
)
static