@@ -368,6 +368,7 @@ void AMDGPUAsmPrinter::validateMCResourceInfo(Function &F) {
368368
369369 using RIK = MCResourceInfo::ResourceInfoKind;
370370 const GCNSubtarget &STM = TM.getSubtarget <GCNSubtarget>(F);
371+ MCSymbol *FnSym = TM.getSymbol (&F);
371372
372373 auto TryGetMCExprValue = [](const MCExpr *Value, uint64_t &Res) -> bool {
373374 int64_t Val;
@@ -381,7 +382,7 @@ void AMDGPUAsmPrinter::validateMCResourceInfo(Function &F) {
381382 const uint64_t MaxScratchPerWorkitem =
382383 STM.getMaxWaveScratchSize () / STM.getWavefrontSize ();
383384 MCSymbol *ScratchSizeSymbol =
384- RI.getSymbol (F. getName (), RIK::RIK_PrivateSegSize, OutContext);
385+ RI.getSymbol (FnSym-> getName (), RIK::RIK_PrivateSegSize, OutContext);
385386 uint64_t ScratchSize;
386387 if (ScratchSizeSymbol->isVariable () &&
387388 TryGetMCExprValue (ScratchSizeSymbol->getVariableValue (), ScratchSize) &&
@@ -394,7 +395,7 @@ void AMDGPUAsmPrinter::validateMCResourceInfo(Function &F) {
394395 // Validate addressable scalar registers (i.e., prior to added implicit
395396 // SGPRs).
396397 MCSymbol *NumSGPRSymbol =
397- RI.getSymbol (F. getName (), RIK::RIK_NumSGPR, OutContext);
398+ RI.getSymbol (FnSym-> getName (), RIK::RIK_NumSGPR, OutContext);
398399 if (STM.getGeneration () >= AMDGPUSubtarget::VOLCANIC_ISLANDS &&
399400 !STM.hasSGPRInitBug ()) {
400401 unsigned MaxAddressableNumSGPRs = STM.getAddressableNumSGPRs ();
@@ -411,9 +412,9 @@ void AMDGPUAsmPrinter::validateMCResourceInfo(Function &F) {
411412 }
412413
413414 MCSymbol *VCCUsedSymbol =
414- RI.getSymbol (F. getName (), RIK::RIK_UsesVCC, OutContext);
415+ RI.getSymbol (FnSym-> getName (), RIK::RIK_UsesVCC, OutContext);
415416 MCSymbol *FlatUsedSymbol =
416- RI.getSymbol (F. getName (), RIK::RIK_UsesFlatScratch, OutContext);
417+ RI.getSymbol (FnSym-> getName (), RIK::RIK_UsesFlatScratch, OutContext);
417418 uint64_t VCCUsed, FlatUsed, NumSgpr;
418419
419420 if (NumSGPRSymbol->isVariable () && VCCUsedSymbol->isVariable () &&
@@ -440,9 +441,9 @@ void AMDGPUAsmPrinter::validateMCResourceInfo(Function &F) {
440441 }
441442
442443 MCSymbol *NumVgprSymbol =
443- RI.getSymbol (F. getName (), RIK::RIK_NumVGPR, OutContext);
444+ RI.getSymbol (FnSym-> getName (), RIK::RIK_NumVGPR, OutContext);
444445 MCSymbol *NumAgprSymbol =
445- RI.getSymbol (F. getName (), RIK::RIK_NumAGPR, OutContext);
446+ RI.getSymbol (FnSym-> getName (), RIK::RIK_NumAGPR, OutContext);
446447 uint64_t NumVgpr, NumAgpr;
447448
448449 MachineModuleInfo &MMI =
@@ -705,15 +706,20 @@ bool AMDGPUAsmPrinter::runOnMachineFunction(MachineFunction &MF) {
705706 {
706707 using RIK = MCResourceInfo::ResourceInfoKind;
707708 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));
717723 }
718724
719725 if (isVerbose ()) {
@@ -726,18 +732,19 @@ bool AMDGPUAsmPrinter::runOnMachineFunction(MachineFunction &MF) {
726732 OutStreamer->emitRawComment (" Function info:" , false );
727733
728734 emitCommonFunctionComments (
729- RI.getSymbol (MF. getName (), RIK::RIK_NumVGPR, OutContext)
735+ RI.getSymbol (CurrentFnSym-> getName (), RIK::RIK_NumVGPR, OutContext)
730736 ->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 ,
735741 RI.createTotalNumVGPRs (MF, Ctx),
736742 RI.createTotalNumSGPRs (
737743 MF,
738744 MF.getSubtarget <GCNSubtarget>().getTargetID ().isXnackOnOrAny (),
739745 Ctx),
740- RI.getSymbol (MF.getName (), RIK::RIK_PrivateSegSize, OutContext)
746+ RI.getSymbol (CurrentFnSym->getName (), RIK::RIK_PrivateSegSize,
747+ OutContext)
741748 ->getVariableValue (),
742749 getFunctionCodeSize (MF), MFI);
743750 return false ;
@@ -943,7 +950,7 @@ void AMDGPUAsmPrinter::getSIProgramInfo(SIProgramInfo &ProgInfo,
943950
944951 auto GetSymRefExpr =
945952 [&](MCResourceInfo::ResourceInfoKind RIK) -> const MCExpr * {
946- MCSymbol *Sym = RI.getSymbol (MF. getName (), RIK, OutContext);
953+ MCSymbol *Sym = RI.getSymbol (CurrentFnSym-> getName (), RIK, OutContext);
947954 return MCSymbolRefExpr::create (Sym, Ctx);
948955 };
949956
0 commit comments