[llvm] AMDGPU: Avoid double attribute lookup for register count attributes (PR #127782)
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Wed Feb 19 03:03:07 PST 2025
https://github.com/arsenm created https://github.com/llvm/llvm-project/pull/127782
None
>From 1af1628e611a7e57ae86b0c330d34b753b694164 Mon Sep 17 00:00:00 2001
From: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: Wed, 19 Feb 2025 17:54:13 +0700
Subject: [PATCH] AMDGPU: Avoid double attribute lookup for register count
attributes
---
llvm/lib/Target/AMDGPU/GCNSubtarget.cpp | 13 ++++++-------
1 file changed, 6 insertions(+), 7 deletions(-)
diff --git a/llvm/lib/Target/AMDGPU/GCNSubtarget.cpp b/llvm/lib/Target/AMDGPU/GCNSubtarget.cpp
index b5e8e246825c7..55af5826e90d0 100644
--- a/llvm/lib/Target/AMDGPU/GCNSubtarget.cpp
+++ b/llvm/lib/Target/AMDGPU/GCNSubtarget.cpp
@@ -422,10 +422,10 @@ unsigned GCNSubtarget::getBaseMaxNumSGPRs(
// Check if maximum number of SGPRs was explicitly requested using
// "amdgpu-num-sgpr" attribute.
- if (F.hasFnAttribute("amdgpu-num-sgpr")) {
- unsigned Requested =
- F.getFnAttributeAsParsedInteger("amdgpu-num-sgpr", MaxNumSGPRs);
+ unsigned Requested =
+ F.getFnAttributeAsParsedInteger("amdgpu-num-sgpr", MaxNumSGPRs);
+ if (Requested != MaxNumSGPRs) {
// Make sure requested value does not violate subtarget's specifications.
if (Requested && (Requested <= ReservedNumSGPRs))
Requested = 0;
@@ -504,10 +504,9 @@ unsigned GCNSubtarget::getBaseMaxNumVGPRs(
// Check if maximum number of VGPRs was explicitly requested using
// "amdgpu-num-vgpr" attribute.
- if (F.hasFnAttribute("amdgpu-num-vgpr")) {
- unsigned Requested =
- F.getFnAttributeAsParsedInteger("amdgpu-num-vgpr", MaxNumVGPRs);
-
+ unsigned Requested =
+ F.getFnAttributeAsParsedInteger("amdgpu-num-vgpr", MaxNumVGPRs);
+ if (Requested != MaxNumVGPRs) {
if (hasGFX90AInsts())
Requested *= 2;
More information about the llvm-commits
mailing list