@@ -368,6 +368,7 @@ void AMDGPUAsmPrinter::validateMCResourceInfo(Function &F) {
368
368
369
369
using RIK = MCResourceInfo::ResourceInfoKind;
370
370
const GCNSubtarget &STM = TM.getSubtarget <GCNSubtarget>(F);
371
+ MCSymbol *FnSym = TM.getSymbol (&F);
371
372
372
373
auto TryGetMCExprValue = [](const MCExpr *Value, uint64_t &Res) -> bool {
373
374
int64_t Val;
@@ -381,7 +382,7 @@ void AMDGPUAsmPrinter::validateMCResourceInfo(Function &F) {
381
382
const uint64_t MaxScratchPerWorkitem =
382
383
STM.getMaxWaveScratchSize () / STM.getWavefrontSize ();
383
384
MCSymbol *ScratchSizeSymbol =
384
- RI.getSymbol (F. getName (), RIK::RIK_PrivateSegSize, OutContext);
385
+ RI.getSymbol (FnSym-> getName (), RIK::RIK_PrivateSegSize, OutContext);
385
386
uint64_t ScratchSize;
386
387
if (ScratchSizeSymbol->isVariable () &&
387
388
TryGetMCExprValue (ScratchSizeSymbol->getVariableValue (), ScratchSize) &&
@@ -394,7 +395,7 @@ void AMDGPUAsmPrinter::validateMCResourceInfo(Function &F) {
394
395
// Validate addressable scalar registers (i.e., prior to added implicit
395
396
// SGPRs).
396
397
MCSymbol *NumSGPRSymbol =
397
- RI.getSymbol (F. getName (), RIK::RIK_NumSGPR, OutContext);
398
+ RI.getSymbol (FnSym-> getName (), RIK::RIK_NumSGPR, OutContext);
398
399
if (STM.getGeneration () >= AMDGPUSubtarget::VOLCANIC_ISLANDS &&
399
400
!STM.hasSGPRInitBug ()) {
400
401
unsigned MaxAddressableNumSGPRs = STM.getAddressableNumSGPRs ();
@@ -411,9 +412,9 @@ void AMDGPUAsmPrinter::validateMCResourceInfo(Function &F) {
411
412
}
412
413
413
414
MCSymbol *VCCUsedSymbol =
414
- RI.getSymbol (F. getName (), RIK::RIK_UsesVCC, OutContext);
415
+ RI.getSymbol (FnSym-> getName (), RIK::RIK_UsesVCC, OutContext);
415
416
MCSymbol *FlatUsedSymbol =
416
- RI.getSymbol (F. getName (), RIK::RIK_UsesFlatScratch, OutContext);
417
+ RI.getSymbol (FnSym-> getName (), RIK::RIK_UsesFlatScratch, OutContext);
417
418
uint64_t VCCUsed, FlatUsed, NumSgpr;
418
419
419
420
if (NumSGPRSymbol->isVariable () && VCCUsedSymbol->isVariable () &&
@@ -440,9 +441,9 @@ void AMDGPUAsmPrinter::validateMCResourceInfo(Function &F) {
440
441
}
441
442
442
443
MCSymbol *NumVgprSymbol =
443
- RI.getSymbol (F. getName (), RIK::RIK_NumVGPR, OutContext);
444
+ RI.getSymbol (FnSym-> getName (), RIK::RIK_NumVGPR, OutContext);
444
445
MCSymbol *NumAgprSymbol =
445
- RI.getSymbol (F. getName (), RIK::RIK_NumAGPR, OutContext);
446
+ RI.getSymbol (FnSym-> getName (), RIK::RIK_NumAGPR, OutContext);
446
447
uint64_t NumVgpr, NumAgpr;
447
448
448
449
MachineModuleInfo &MMI =
@@ -705,15 +706,20 @@ bool AMDGPUAsmPrinter::runOnMachineFunction(MachineFunction &MF) {
705
706
{
706
707
using RIK = MCResourceInfo::ResourceInfoKind;
707
708
getTargetStreamer ()->EmitMCResourceInfo (
708
- RI.getSymbol (MF.getName (), RIK::RIK_NumVGPR, OutContext),
709
- RI.getSymbol (MF.getName (), RIK::RIK_NumAGPR, OutContext),
710
- RI.getSymbol (MF.getName (), RIK::RIK_NumSGPR, OutContext),
711
- RI.getSymbol (MF.getName (), RIK::RIK_PrivateSegSize, OutContext),
712
- RI.getSymbol (MF.getName (), RIK::RIK_UsesVCC, OutContext),
713
- RI.getSymbol (MF.getName (), RIK::RIK_UsesFlatScratch, OutContext),
714
- RI.getSymbol (MF.getName (), RIK::RIK_HasDynSizedStack, OutContext),
715
- RI.getSymbol (MF.getName (), RIK::RIK_HasRecursion, OutContext),
716
- RI.getSymbol (MF.getName (), RIK::RIK_HasIndirectCall, OutContext));
709
+ RI.getSymbol (CurrentFnSym->getName (), RIK::RIK_NumVGPR, OutContext),
710
+ RI.getSymbol (CurrentFnSym->getName (), RIK::RIK_NumAGPR, OutContext),
711
+ RI.getSymbol (CurrentFnSym->getName (), RIK::RIK_NumSGPR, OutContext),
712
+ RI.getSymbol (CurrentFnSym->getName (), RIK::RIK_PrivateSegSize,
713
+ OutContext),
714
+ RI.getSymbol (CurrentFnSym->getName (), RIK::RIK_UsesVCC, OutContext),
715
+ RI.getSymbol (CurrentFnSym->getName (), RIK::RIK_UsesFlatScratch,
716
+ OutContext),
717
+ RI.getSymbol (CurrentFnSym->getName (), RIK::RIK_HasDynSizedStack,
718
+ OutContext),
719
+ RI.getSymbol (CurrentFnSym->getName (), RIK::RIK_HasRecursion,
720
+ OutContext),
721
+ RI.getSymbol (CurrentFnSym->getName (), RIK::RIK_HasIndirectCall,
722
+ OutContext));
717
723
}
718
724
719
725
if (isVerbose ()) {
@@ -726,18 +732,19 @@ bool AMDGPUAsmPrinter::runOnMachineFunction(MachineFunction &MF) {
726
732
OutStreamer->emitRawComment (" Function info:" , false );
727
733
728
734
emitCommonFunctionComments (
729
- RI.getSymbol (MF. getName (), RIK::RIK_NumVGPR, OutContext)
735
+ RI.getSymbol (CurrentFnSym-> getName (), RIK::RIK_NumVGPR, OutContext)
730
736
->getVariableValue (),
731
- STM.hasMAIInsts ()
732
- ? RI. getSymbol (MF. getName (), RIK::RIK_NumAGPR, OutContext)
733
- ->getVariableValue ()
734
- : nullptr ,
737
+ STM.hasMAIInsts () ? RI. getSymbol (CurrentFnSym-> getName (),
738
+ RIK::RIK_NumAGPR, OutContext)
739
+ ->getVariableValue ()
740
+ : nullptr ,
735
741
RI.createTotalNumVGPRs (MF, Ctx),
736
742
RI.createTotalNumSGPRs (
737
743
MF,
738
744
MF.getSubtarget <GCNSubtarget>().getTargetID ().isXnackOnOrAny (),
739
745
Ctx),
740
- RI.getSymbol (MF.getName (), RIK::RIK_PrivateSegSize, OutContext)
746
+ RI.getSymbol (CurrentFnSym->getName (), RIK::RIK_PrivateSegSize,
747
+ OutContext)
741
748
->getVariableValue (),
742
749
getFunctionCodeSize (MF), MFI);
743
750
return false ;
@@ -943,7 +950,7 @@ void AMDGPUAsmPrinter::getSIProgramInfo(SIProgramInfo &ProgInfo,
943
950
944
951
auto GetSymRefExpr =
945
952
[&](MCResourceInfo::ResourceInfoKind RIK) -> const MCExpr * {
946
- MCSymbol *Sym = RI.getSymbol (MF. getName (), RIK, OutContext);
953
+ MCSymbol *Sym = RI.getSymbol (CurrentFnSym-> getName (), RIK, OutContext);
947
954
return MCSymbolRefExpr::create (Sym, Ctx);
948
955
};
949
956
0 commit comments