Lines Matching refs:ProgInfo
683 void AMDGPUAsmPrinter::getSIProgramInfo(SIProgramInfo &ProgInfo, in getSIProgramInfo() argument
689 ProgInfo.NumArchVGPR = Info.NumVGPR; in getSIProgramInfo()
690 ProgInfo.NumAccVGPR = Info.NumAGPR; in getSIProgramInfo()
691 ProgInfo.NumVGPR = Info.getTotalNumVGPRs(STM); in getSIProgramInfo()
692 ProgInfo.AccumOffset = alignTo(std::max(1, Info.NumVGPR), 4) / 4 - 1; in getSIProgramInfo()
693 ProgInfo.TgSplit = STM.isTgSplitEnabled(); in getSIProgramInfo()
694 ProgInfo.NumSGPR = Info.NumExplicitSGPR; in getSIProgramInfo()
695 ProgInfo.ScratchSize = Info.PrivateSegmentSize; in getSIProgramInfo()
696 ProgInfo.VCCUsed = Info.UsesVCC; in getSIProgramInfo()
697 ProgInfo.FlatUsed = Info.UsesFlatScratch; in getSIProgramInfo()
698 ProgInfo.DynamicCallStack = Info.HasDynamicallySizedStack || Info.HasRecursion; in getSIProgramInfo()
702 if (ProgInfo.ScratchSize > MaxScratchPerWorkitem) { in getSIProgramInfo()
704 ProgInfo.ScratchSize, in getSIProgramInfo()
715 &STM, ProgInfo.VCCUsed, ProgInfo.FlatUsed, in getSIProgramInfo()
722 if (ProgInfo.NumSGPR > MaxAddressableNumSGPRs) { in getSIProgramInfo()
726 MF.getFunction(), "addressable scalar registers", ProgInfo.NumSGPR, in getSIProgramInfo()
729 ProgInfo.NumSGPR = MaxAddressableNumSGPRs - 1; in getSIProgramInfo()
734 ProgInfo.NumSGPR += ExtraSGPRs; in getSIProgramInfo()
805 ProgInfo.NumSGPR = std::max(ProgInfo.NumSGPR, WaveDispatchNumSGPR); in getSIProgramInfo()
806 ProgInfo.NumArchVGPR = std::max(ProgInfo.NumVGPR, WaveDispatchNumVGPR); in getSIProgramInfo()
807 ProgInfo.NumVGPR = in getSIProgramInfo()
808 Info.getTotalNumVGPRs(STM, Info.NumAGPR, ProgInfo.NumArchVGPR); in getSIProgramInfo()
813 ProgInfo.NumSGPRsForWavesPerEU = std::max( in getSIProgramInfo()
814 std::max(ProgInfo.NumSGPR, 1u), STM.getMinNumSGPRs(MFI->getMaxWavesPerEU())); in getSIProgramInfo()
815 ProgInfo.NumVGPRsForWavesPerEU = std::max( in getSIProgramInfo()
816 std::max(ProgInfo.NumVGPR, 1u), STM.getMinNumVGPRs(MFI->getMaxWavesPerEU())); in getSIProgramInfo()
821 if (ProgInfo.NumSGPR > MaxAddressableNumSGPRs) { in getSIProgramInfo()
826 ProgInfo.NumSGPR, MaxAddressableNumSGPRs, in getSIProgramInfo()
829 ProgInfo.NumSGPR = MaxAddressableNumSGPRs; in getSIProgramInfo()
830 ProgInfo.NumSGPRsForWavesPerEU = MaxAddressableNumSGPRs; in getSIProgramInfo()
835 ProgInfo.NumSGPR = in getSIProgramInfo()
837 ProgInfo.NumSGPRsForWavesPerEU = in getSIProgramInfo()
858 ProgInfo.SGPRBlocks = IsaInfo::getNumSGPRBlocks( in getSIProgramInfo()
859 &STM, ProgInfo.NumSGPRsForWavesPerEU); in getSIProgramInfo()
860 ProgInfo.VGPRBlocks = IsaInfo::getNumVGPRBlocks( in getSIProgramInfo()
861 &STM, ProgInfo.NumVGPRsForWavesPerEU); in getSIProgramInfo()
867 ProgInfo.FloatMode = getFPMode(Mode); in getSIProgramInfo()
869 ProgInfo.IEEEMode = Mode.IEEE; in getSIProgramInfo()
872 ProgInfo.DX10Clamp = Mode.DX10Clamp; in getSIProgramInfo()
883 ProgInfo.SGPRSpill = MFI->getNumSpilledSGPRs(); in getSIProgramInfo()
884 ProgInfo.VGPRSpill = MFI->getNumSpilledVGPRs(); in getSIProgramInfo()
886 ProgInfo.LDSSize = MFI->getLDSSize(); in getSIProgramInfo()
887 ProgInfo.LDSBlocks = in getSIProgramInfo()
888 alignTo(ProgInfo.LDSSize, 1ULL << LDSAlignShift) >> LDSAlignShift; in getSIProgramInfo()
896 ProgInfo.ScratchBlocks = divideCeil( in getSIProgramInfo()
897 ProgInfo.ScratchSize * STM.getWavefrontSize(), 1ULL << ScratchAlignShift); in getSIProgramInfo()
900 ProgInfo.WgpMode = STM.isCuModeEnabled() ? 0 : 1; in getSIProgramInfo()
901 ProgInfo.MemOrdered = 1; in getSIProgramInfo()
916 ProgInfo.ScratchEnable = in getSIProgramInfo()
917 ProgInfo.ScratchBlocks > 0 || ProgInfo.DynamicCallStack; in getSIProgramInfo()
918 ProgInfo.UserSGPR = MFI->getNumUserSGPRs(); in getSIProgramInfo()
920 ProgInfo.TrapHandlerEnable = in getSIProgramInfo()
922 ProgInfo.TGIdXEnable = MFI->hasWorkGroupIDX(); in getSIProgramInfo()
923 ProgInfo.TGIdYEnable = MFI->hasWorkGroupIDY(); in getSIProgramInfo()
924 ProgInfo.TGIdZEnable = MFI->hasWorkGroupIDZ(); in getSIProgramInfo()
925 ProgInfo.TGSizeEnable = MFI->hasWorkGroupInfo(); in getSIProgramInfo()
926 ProgInfo.TIdIGCompCount = TIDIGCompCnt; in getSIProgramInfo()
927 ProgInfo.EXCPEnMSB = 0; in getSIProgramInfo()
929 ProgInfo.LdsSize = STM.isAmdHsaOS() ? 0 : ProgInfo.LDSBlocks; in getSIProgramInfo()
930 ProgInfo.EXCPEnable = 0; in getSIProgramInfo()
933 AMDHSA_BITS_SET(ProgInfo.ComputePGMRSrc3GFX90A, in getSIProgramInfo()
935 ProgInfo.AccumOffset); in getSIProgramInfo()
936 AMDHSA_BITS_SET(ProgInfo.ComputePGMRSrc3GFX90A, in getSIProgramInfo()
938 ProgInfo.TgSplit); in getSIProgramInfo()
941 ProgInfo.Occupancy = STM.computeOccupancy(MF.getFunction(), ProgInfo.LDSSize, in getSIProgramInfo()
942 ProgInfo.NumSGPRsForWavesPerEU, in getSIProgramInfo()
943 ProgInfo.NumVGPRsForWavesPerEU); in getSIProgramInfo()
946 if (ProgInfo.Occupancy < MinWEU) { in getSIProgramInfo()
952 ", final occupancy is " + Twine(ProgInfo.Occupancy)); in getSIProgramInfo()