• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-13-stable/contrib/llvm-project/llvm/lib/Target/AMDGPU/

Lines Matching refs:ProgInfo

978 void AMDGPUAsmPrinter::getSIProgramInfo(SIProgramInfo &ProgInfo,
983 ProgInfo.NumArchVGPR = Info.NumVGPR;
984 ProgInfo.NumAccVGPR = Info.NumAGPR;
985 ProgInfo.NumVGPR = Info.getTotalNumVGPRs(STM);
986 ProgInfo.NumSGPR = Info.NumExplicitSGPR;
987 ProgInfo.ScratchSize = Info.PrivateSegmentSize;
988 ProgInfo.VCCUsed = Info.UsesVCC;
989 ProgInfo.FlatUsed = Info.UsesFlatScratch;
990 ProgInfo.DynamicCallStack = Info.HasDynamicallySizedStack || Info.HasRecursion;
992 if (!isUInt<32>(ProgInfo.ScratchSize)) {
994 ProgInfo.ScratchSize, DS_Error);
1004 &STM, ProgInfo.VCCUsed, ProgInfo.FlatUsed);
1010 if (ProgInfo.NumSGPR > MaxAddressableNumSGPRs) {
1015 ProgInfo.NumSGPR, DS_Error,
1019 ProgInfo.NumSGPR = MaxAddressableNumSGPRs - 1;
1024 ProgInfo.NumSGPR += ExtraSGPRs;
1036 ProgInfo.NumSGPR = std::max(ProgInfo.NumSGPR, WaveDispatchNumSGPR);
1037 ProgInfo.NumVGPR = std::max(ProgInfo.NumVGPR, WaveDispatchNumVGPR);
1041 ProgInfo.NumSGPRsForWavesPerEU = std::max(
1042 std::max(ProgInfo.NumSGPR, 1u), STM.getMinNumSGPRs(MFI->getMaxWavesPerEU()));
1043 ProgInfo.NumVGPRsForWavesPerEU = std::max(
1044 std::max(ProgInfo.NumVGPR, 1u), STM.getMinNumVGPRs(MFI->getMaxWavesPerEU()));
1049 if (ProgInfo.NumSGPR > MaxAddressableNumSGPRs) {
1055 ProgInfo.NumSGPR, DS_Error,
1059 ProgInfo.NumSGPR = MaxAddressableNumSGPRs;
1060 ProgInfo.NumSGPRsForWavesPerEU = MaxAddressableNumSGPRs;
1065 ProgInfo.NumSGPR =
1067 ProgInfo.NumSGPRsForWavesPerEU =
1085 ProgInfo.SGPRBlocks = IsaInfo::getNumSGPRBlocks(
1086 &STM, ProgInfo.NumSGPRsForWavesPerEU);
1087 ProgInfo.VGPRBlocks = IsaInfo::getNumVGPRBlocks(
1088 &STM, ProgInfo.NumVGPRsForWavesPerEU);
1094 ProgInfo.FloatMode = getFPMode(Mode);
1096 ProgInfo.IEEEMode = Mode.IEEE;
1099 ProgInfo.DX10Clamp = Mode.DX10Clamp;
1113 ProgInfo.LDSSize = MFI->getLDSSize() + LDSSpillSize;
1114 ProgInfo.LDSBlocks =
1115 alignTo(ProgInfo.LDSSize, 1ULL << LDSAlignShift) >> LDSAlignShift;
1120 // is used by the entire wave. ProgInfo.ScratchSize is the amount of
1122 ProgInfo.ScratchBlocks =
1123 alignTo(ProgInfo.ScratchSize * STM.getWavefrontSize(),
1128 ProgInfo.WgpMode = STM.isCuModeEnabled() ? 0 : 1;
1129 ProgInfo.MemOrdered = 1;
1132 ProgInfo.ComputePGMRSrc1 =
1133 S_00B848_VGPRS(ProgInfo.VGPRBlocks) |
1134 S_00B848_SGPRS(ProgInfo.SGPRBlocks) |
1135 S_00B848_PRIORITY(ProgInfo.Priority) |
1136 S_00B848_FLOAT_MODE(ProgInfo.FloatMode) |
1137 S_00B848_PRIV(ProgInfo.Priv) |
1138 S_00B848_DX10_CLAMP(ProgInfo.DX10Clamp) |
1139 S_00B848_DEBUG_MODE(ProgInfo.DebugMode) |
1140 S_00B848_IEEE_MODE(ProgInfo.IEEEMode) |
1141 S_00B848_WGP_MODE(ProgInfo.WgpMode) |
1142 S_00B848_MEM_ORDERED(ProgInfo.MemOrdered);
1151 ProgInfo.ComputePGMRSrc2 =
1152 S_00B84C_SCRATCH_EN(ProgInfo.ScratchBlocks > 0) |
1163 S_00B84C_LDS_SIZE(STM.isAmdHsaOS() ? 0 : ProgInfo.LDSBlocks) |
1166 ProgInfo.Occupancy = STM.computeOccupancy(MF.getFunction(), ProgInfo.LDSSize,
1167 ProgInfo.NumSGPRsForWavesPerEU,
1168 ProgInfo.NumVGPRsForWavesPerEU);