From: Austin Kerbow Date: Tue, 2 Aug 2022 21:15:00 +0000 (-0700) Subject: [AMDGPU] Add CL option for max-ilp scheduler. X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=3dfa5626434bf1e9f110e63e8224a66004f42eca;p=platform%2Fupstream%2Fllvm.git [AMDGPU] Add CL option for max-ilp scheduler. When compiling for multiple targets the scheduler that is selected via the -misched option is applied globally. This patch adds a target CL option instead. Reviewed By: rampitec Differential Revision: https://reviews.llvm.org/D131022 --- diff --git a/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp b/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp index 643eb0b..103a72b 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp @@ -327,6 +327,11 @@ static cl::opt EnablePromoteKernelArguments( cl::desc("Enable promotion of flat kernel pointer arguments to global"), cl::Hidden, cl::init(true)); +static cl::opt EnableMaxIlpSchedStrategy( + "amdgpu-enable-max-ilp-scheduling-strategy", + cl::desc("Enable scheduling strategy to maximize ILP for a single wave."), + cl::Hidden, cl::init(false)); + extern "C" LLVM_EXTERNAL_VISIBILITY void LLVMInitializeAMDGPUTarget() { // Register the target RegisterTargetMachine X(getTheAMDGPUTarget()); @@ -1161,6 +1166,10 @@ ScheduleDAGInstrs *GCNPassConfig::createMachineScheduler( const GCNSubtarget &ST = C->MF->getSubtarget(); if (ST.enableSIScheduler()) return createSIMachineScheduler(C); + + if (EnableMaxIlpSchedStrategy) + return createGCNMaxILPMachineScheduler(C); + return createGCNMaxOccupancyMachineScheduler(C); } diff --git a/llvm/test/CodeGen/AMDGPU/schedule-ilp.ll b/llvm/test/CodeGen/AMDGPU/schedule-ilp.ll index ea5062c..52fa123 100644 --- a/llvm/test/CodeGen/AMDGPU/schedule-ilp.ll +++ b/llvm/test/CodeGen/AMDGPU/schedule-ilp.ll @@ -1,5 +1,6 @@ ; RUN: llc -march=amdgcn -mcpu=tonga -misched=gcn-iterative-ilp -verify-machineinstrs < %s | FileCheck %s ; RUN: llc -march=amdgcn -mcpu=tonga -misched=gcn-max-ilp -verify-machineinstrs < %s | FileCheck %s +; RUN: llc -march=amdgcn -mcpu=tonga -amdgpu-enable-max-ilp-scheduling-strategy -verify-machineinstrs < %s | FileCheck %s ; CHECK: NumVgprs: {{[0-9][0-9][0-9]$}}