reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
922 ProgInfo.NumArchVGPR = Info.NumVGPR; 923 ProgInfo.NumAccVGPR = Info.NumAGPR; 924 ProgInfo.NumVGPR = Info.getTotalNumVGPRs(STM); 925 ProgInfo.NumSGPR = Info.NumExplicitSGPR; 926 ProgInfo.ScratchSize = Info.PrivateSegmentSize; 927 ProgInfo.VCCUsed = Info.UsesVCC; 928 ProgInfo.FlatUsed = Info.UsesFlatScratch; 929 ProgInfo.DynamicCallStack = Info.HasDynamicallySizedStack || Info.HasRecursion; 931 if (!isUInt<32>(ProgInfo.ScratchSize)) { 933 ProgInfo.ScratchSize, DS_Error); 943 &STM, ProgInfo.VCCUsed, ProgInfo.FlatUsed); 943 &STM, ProgInfo.VCCUsed, ProgInfo.FlatUsed); 949 if (ProgInfo.NumSGPR > MaxAddressableNumSGPRs) { 954 ProgInfo.NumSGPR, DS_Error, 958 ProgInfo.NumSGPR = MaxAddressableNumSGPRs - 1; 963 ProgInfo.NumSGPR += ExtraSGPRs; 975 ProgInfo.NumSGPR = std::max(ProgInfo.NumSGPR, WaveDispatchNumSGPR); 975 ProgInfo.NumSGPR = std::max(ProgInfo.NumSGPR, WaveDispatchNumSGPR); 976 ProgInfo.NumVGPR = std::max(ProgInfo.NumVGPR, WaveDispatchNumVGPR); 976 ProgInfo.NumVGPR = std::max(ProgInfo.NumVGPR, WaveDispatchNumVGPR); 980 ProgInfo.NumSGPRsForWavesPerEU = std::max( 981 std::max(ProgInfo.NumSGPR, 1u), STM.getMinNumSGPRs(MFI->getMaxWavesPerEU())); 982 ProgInfo.NumVGPRsForWavesPerEU = std::max( 983 std::max(ProgInfo.NumVGPR, 1u), STM.getMinNumVGPRs(MFI->getMaxWavesPerEU())); 988 if (ProgInfo.NumSGPR > MaxAddressableNumSGPRs) { 994 ProgInfo.NumSGPR, DS_Error, 998 ProgInfo.NumSGPR = MaxAddressableNumSGPRs; 999 ProgInfo.NumSGPRsForWavesPerEU = MaxAddressableNumSGPRs; 1004 ProgInfo.NumSGPR = 1006 ProgInfo.NumSGPRsForWavesPerEU = 1024 ProgInfo.SGPRBlocks = IsaInfo::getNumSGPRBlocks( 1025 &STM, ProgInfo.NumSGPRsForWavesPerEU); 1026 ProgInfo.VGPRBlocks = IsaInfo::getNumVGPRBlocks( 1027 &STM, ProgInfo.NumVGPRsForWavesPerEU); 1031 ProgInfo.FloatMode = getFPMode(MF); 1034 ProgInfo.IEEEMode = Mode.IEEE; 1037 ProgInfo.DX10Clamp = Mode.DX10Clamp; 1051 ProgInfo.LDSSize = MFI->getLDSSize() + LDSSpillSize; 1052 ProgInfo.LDSBlocks = 1053 alignTo(ProgInfo.LDSSize, 1ULL << LDSAlignShift) >> LDSAlignShift; 1060 ProgInfo.ScratchBlocks = 1061 alignTo(ProgInfo.ScratchSize * STM.getWavefrontSize(), 1066 ProgInfo.WgpMode = STM.isCuModeEnabled() ? 0 : 1; 1067 ProgInfo.MemOrdered = 1; 1070 ProgInfo.ComputePGMRSrc1 = 1071 S_00B848_VGPRS(ProgInfo.VGPRBlocks) | 1072 S_00B848_SGPRS(ProgInfo.SGPRBlocks) | 1073 S_00B848_PRIORITY(ProgInfo.Priority) | 1074 S_00B848_FLOAT_MODE(ProgInfo.FloatMode) | 1075 S_00B848_PRIV(ProgInfo.Priv) | 1076 S_00B848_DX10_CLAMP(ProgInfo.DX10Clamp) | 1077 S_00B848_DEBUG_MODE(ProgInfo.DebugMode) | 1078 S_00B848_IEEE_MODE(ProgInfo.IEEEMode) | 1079 S_00B848_WGP_MODE(ProgInfo.WgpMode) | 1080 S_00B848_MEM_ORDERED(ProgInfo.MemOrdered); 1089 ProgInfo.ComputePGMRSrc2 = 1090 S_00B84C_SCRATCH_EN(ProgInfo.ScratchBlocks > 0) | 1101 S_00B84C_LDS_SIZE(STM.isAmdHsaOS() ? 0 : ProgInfo.LDSBlocks) | 1104 ProgInfo.Occupancy = STM.computeOccupancy(MF, ProgInfo.LDSSize, 1104 ProgInfo.Occupancy = STM.computeOccupancy(MF, ProgInfo.LDSSize, 1105 ProgInfo.NumSGPRsForWavesPerEU, 1106 ProgInfo.NumVGPRsForWavesPerEU);