|
LLVM 24.0.0git
|
Coexecution-focused scheduling strategy for AMDGPU. More...
#include "AMDGPUCoExecSchedStrategy.h"#include "AMDGPUIGroupLP.h"#include "GCNHazardRecognizer.h"#include "llvm/Support/Debug.h"Go to the source code of this file.
Macros | |
| #define | DEBUG_TYPE "machine-scheduler" |
Functions | |
| static SUnit * | pickOnlyChoice (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."))) |
Coexecution-focused scheduling strategy for AMDGPU.
Definition in file AMDGPUCoExecSchedStrategy.cpp.
| #define DEBUG_TYPE "machine-scheduler" |
Definition at line 22 of file AMDGPUCoExecSchedStrategy.cpp.
|
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().
|
static |
Definition at line 55 of file AMDGPUCoExecSchedStrategy.cpp.
References llvm::ReadyQueue::empty(), llvm::SchedBoundary::Pending, and llvm::SchedBoundary::pickOnlyChoice().
Referenced by llvm::AMDGPUCoExecSchedStrategy::pickNode(), llvm::GCNSchedStrategy::pickNode(), and llvm::GCNSchedStrategy::pickNodeBidirectional().
|
static |
Referenced by llvm::CandidateHeuristics::getCarriedLatency().