LLVM 24.0.0git
AMDGPUCoExecSchedStrategy.cpp File Reference

Coexecution-focused scheduling strategy for AMDGPU. More...

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "machine-scheduler"

Functions

static SUnitpickOnlyChoice (SchedBoundary &Zone)
static void allowCoExec (llvm::AMDGPU::CoExecInfo &Info, llvm::AMDGPU::CoExecMaskT ExtraBits, unsigned StartIndex)
 Apply ExtraBits to every slot in Info starting with StartIndex Used by MFMA co-exec rules, because MFMA co-exec slots are incremental, i.e.

Variables

static cl::opt< CarriedLatency > BlockCarriedLatency ("amdgpu-block-carried-latency", cl::Hidden, cl::init(CarriedLatency::Off), cl::desc("Estimate block-carried latency and include it in the effective " "candidate stall cost."), cl::values(clEnumValN(CarriedLatency::Off, "off", "Disabled - do not pad latency."), clEnumValN(CarriedLatency::Fence, "fence", "Only pad latency for memory fence (e.g. those surrounding " "barrier_signal/wait)."), clEnumValN(CarriedLatency::All, "all", "Pad latency for any SU with an incoming ds_load dependency.")))

Detailed Description

Coexecution-focused scheduling strategy for AMDGPU.

Definition in file AMDGPUCoExecSchedStrategy.cpp.

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "machine-scheduler"

Definition at line 22 of file AMDGPUCoExecSchedStrategy.cpp.

Function Documentation

◆ allowCoExec()

void allowCoExec ( llvm::AMDGPU::CoExecInfo & Info,
llvm::AMDGPU::CoExecMaskT ExtraBits,
unsigned StartIndex )
static

Apply ExtraBits to every slot in Info starting with StartIndex Used by MFMA co-exec rules, because MFMA co-exec slots are incremental, i.e.

for every slot N it supports all instructions which were supported by the previous slot N-1 and may support something extra.

Definition at line 68 of file AMDGPUCoExecSchedStrategy.cpp.

Referenced by llvm::AMDGPU::getMFMACoExecInfo().

◆ pickOnlyChoice()

Variable Documentation

◆ BlockCarriedLatency

cl::opt< CarriedLatency > BlockCarriedLatency("amdgpu-block-carried-latency", cl::Hidden, cl::init(CarriedLatency::Off), cl::desc("Estimate block-carried latency and include it in the effective " "candidate stall cost."), cl::values( clEnumValN(CarriedLatency::Off, "off", "Disabled - do not pad latency."), clEnumValN(CarriedLatency::Fence, "fence", "Only pad latency for memory fence (e.g. those surrounding " "barrier_signal/wait)."), clEnumValN( CarriedLatency::All, "all", "Pad latency for any SU with an incoming ds_load dependency."))) ( "amdgpu-block-carried-latency" ,
cl::Hidden ,
cl::init(CarriedLatency::Off) ,
cl::desc("Estimate block-carried latency and include it in the effective " "candidate stall cost.") ,
cl::values( clEnumValN(CarriedLatency::Off, "off", "Disabled - do not pad latency."), clEnumValN(CarriedLatency::Fence, "fence", "Only pad latency for memory fence (e.g. those surrounding " "barrier_signal/wait)."), clEnumValN( CarriedLatency::All, "all", "Pad latency for any SU with an incoming ds_load dependency."))  )
static