Skip to content

Commit a992f29

Browse files
authored
[AMDGPU] Emit amdgpu.max_num_named_barrier resource symbol (#169851)
1 parent 67307c8 commit a992f29

File tree

4 files changed

+22
-8
lines changed

4 files changed

+22
-8
lines changed

llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -534,9 +534,9 @@ bool AMDGPUAsmPrinter::doFinalization(Module &M) {
534534
MCSectionELF *MaxGPRSection =
535535
OutContext.getELFSection(".AMDGPU.gpr_maximums", ELF::SHT_PROGBITS, 0);
536536
OutStreamer->switchSection(MaxGPRSection);
537-
getTargetStreamer()->EmitMCResourceMaximums(RI.getMaxVGPRSymbol(OutContext),
538-
RI.getMaxAGPRSymbol(OutContext),
539-
RI.getMaxSGPRSymbol(OutContext));
537+
getTargetStreamer()->EmitMCResourceMaximums(
538+
RI.getMaxVGPRSymbol(OutContext), RI.getMaxAGPRSymbol(OutContext),
539+
RI.getMaxSGPRSymbol(OutContext), RI.getMaxNamedBarrierSymbol(OutContext));
540540
OutStreamer->popSection();
541541

542542
for (Function &F : M.functions())

llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -302,9 +302,9 @@ void AMDGPUTargetAsmStreamer::EmitMCResourceInfo(
302302
#undef PRINT_RES_INFO
303303
}
304304

305-
void AMDGPUTargetAsmStreamer::EmitMCResourceMaximums(const MCSymbol *MaxVGPR,
306-
const MCSymbol *MaxAGPR,
307-
const MCSymbol *MaxSGPR) {
305+
void AMDGPUTargetAsmStreamer::EmitMCResourceMaximums(
306+
const MCSymbol *MaxVGPR, const MCSymbol *MaxAGPR, const MCSymbol *MaxSGPR,
307+
const MCSymbol *MaxNamedBarrier) {
308308
#define PRINT_RES_INFO(ARG) \
309309
OS << "\t.set "; \
310310
ARG->print(OS, getContext().getAsmInfo()); \
@@ -315,6 +315,7 @@ void AMDGPUTargetAsmStreamer::EmitMCResourceMaximums(const MCSymbol *MaxVGPR,
315315
PRINT_RES_INFO(MaxVGPR);
316316
PRINT_RES_INFO(MaxAGPR);
317317
PRINT_RES_INFO(MaxSGPR);
318+
PRINT_RES_INFO(MaxNamedBarrier);
318319
#undef PRINT_RES_INFO
319320
}
320321

llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,8 @@ class AMDGPUTargetStreamer : public MCTargetStreamer {
6969

7070
virtual void EmitMCResourceMaximums(const MCSymbol *MaxVGPR,
7171
const MCSymbol *MaxAGPR,
72-
const MCSymbol *MaxSGPR) {};
72+
const MCSymbol *MaxSGPR,
73+
const MCSymbol *MaxNamedBarrier) {};
7374

7475
/// \returns True on success, false on failure.
7576
virtual bool EmitISAVersion() { return true; }
@@ -149,7 +150,8 @@ class AMDGPUTargetAsmStreamer final : public AMDGPUTargetStreamer {
149150
const MCSymbol *HasRecursion, const MCSymbol *HasIndirectCall) override;
150151

151152
void EmitMCResourceMaximums(const MCSymbol *MaxVGPR, const MCSymbol *MaxAGPR,
152-
const MCSymbol *MaxSGPR) override;
153+
const MCSymbol *MaxSGPR,
154+
const MCSymbol *MaxNamedBarrier) override;
153155

154156
/// \returns True on success, false on failure.
155157
bool EmitISAVersion() override;

llvm/test/CodeGen/AMDGPU/function-resource-usage.ll

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -674,10 +674,21 @@ entry:
674674
ret void
675675
}
676676

677+
; Test that amdgcn.device.init correctly references amdgpu.max_num_named_barrier
678+
; GCN-LABEL: {{^}}amdgcn.device.init:
679+
; GCN: .set amdgcn.device.init.num_named_barrier, max(0, amdgpu.max_num_named_barrier)
680+
681+
@llvm.global_ctors = appending addrspace(1) global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 1, ptr @ctor_func, ptr null }]
682+
683+
define internal void @ctor_func() {
684+
ret void
685+
}
686+
677687
; Added at the of the .s are the module level maximums
678688
; GCN: .set amdgpu.max_num_vgpr, 50
679689
; GCN: .set amdgpu.max_num_agpr, 0
680690
; GCN: .set amdgpu.max_num_sgpr, 80
691+
; GCN: .set amdgpu.max_num_named_barrier, 0
681692

682693
attributes #0 = { nounwind noinline norecurse }
683694
attributes #1 = { nounwind noinline norecurse }

0 commit comments

Comments
 (0)