17#ifndef LLVM_LIB_TARGET_AMDGPU_MCA_AMDGPUCUSTOMBEHAVIOUR_H
18#define LLVM_LIB_TARGET_AMDGPU_MCA_AMDGPUCUSTOMBEHAVIOUR_H
28 void processWaitCnt(std::unique_ptr<Instruction> &Inst,
const MCInst &MCI);
37 const MCInst &MCI)
override;
57 std::vector<WaitCntInfo> InstrWaitCntInfo;
66 void generateWaitCntInfo();
68 bool hasModifiersSet(
const std::unique_ptr<Instruction> &Inst,
73 bool isAlwaysGDS(
uint16_t Opcode)
const;
84 void computeWaitCnt(
const InstRef &
IR,
unsigned &Vmcnt,
unsigned &Expcnt,
85 unsigned &Lgkmcnt,
unsigned &Vscnt);
This file defines the base class CustomBehaviour which can be inherited from by specific targets (ex.
Legalize the Machine IR a function s Machine IR
This file defines the SmallVector class.
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
Instances of this class represent a single low-level machine instruction.
Describe properties that are true of each instruction in the target description file.
Interface to description of machine instruction set.
Generic base class for all target subtargets.
unsigned checkCustomHazard(ArrayRef< InstRef > IssuedInst, const InstRef &IR) override
This method is used to determine if an instruction should be allowed to be dispatched.
~AMDGPUCustomBehaviour()=default
void postProcessInstruction(std::unique_ptr< Instruction > &Inst, const MCInst &MCI) override
This method can be overriden by targets to modify the mca::Instruction object after it has been lower...
AMDGPUInstrPostProcess(const MCSubtargetInfo &STI, const MCInstrInfo &MCII)
~AMDGPUInstrPostProcess()=default
Class which can be overriden by targets to enforce instruction dependencies and behaviours that aren'...
const mca::SourceMgr & SrcMgr
const MCSubtargetInfo & STI
An InstRef contains both a SourceMgr index and Instruction pair.
Class which can be overriden by targets to modify the mca::Instruction objects before the pipeline st...
const MCSubtargetInfo & STI
This is an optimization pass for GlobalISel generic memory operations.
Abstracting the input code sequence (a sequence of MCInst) and assigning unique identifiers to every ...