@@ -1025,27 +1025,6 @@ void AMDGPUAsmPrinter::EmitProgramInfoSI(const MachineFunction &MF,
1025
1025
OutStreamer->emitInt32 (MFI->getNumSpilledVGPRs ());
1026
1026
}
1027
1027
1028
- // Helper function to add common PAL Metadata 3.0+
1029
- static void EmitPALMetadataCommon (AMDGPUPALMetadata *MD,
1030
- const SIProgramInfo &CurrentProgramInfo,
1031
- CallingConv::ID CC, const GCNSubtarget &ST) {
1032
- if (ST.hasIEEEMode ())
1033
- MD->setHwStage (CC, " .ieee_mode" , (bool )CurrentProgramInfo.IEEEMode );
1034
-
1035
- MD->setHwStage (CC, " .wgp_mode" , (bool )CurrentProgramInfo.WgpMode );
1036
- MD->setHwStage (CC, " .mem_ordered" , (bool )CurrentProgramInfo.MemOrdered );
1037
-
1038
- if (AMDGPU::isCompute (CC)) {
1039
- MD->setHwStage (CC, " .trap_present" ,
1040
- (bool )CurrentProgramInfo.TrapHandlerEnable );
1041
- MD->setHwStage (CC, " .excp_en" , CurrentProgramInfo.EXCPEnable );
1042
-
1043
- MD->setHwStage (CC, " .lds_size" ,
1044
- (unsigned )(CurrentProgramInfo.LdsSize *
1045
- getLdsDwGranularity (ST) * sizeof (uint32_t )));
1046
- }
1047
- }
1048
-
1049
1028
// This is the equivalent of EmitProgramInfoSI above, but for when the OS type
1050
1029
// is AMDPAL. It stores each compute/SPI register setting and other PAL
1051
1030
// metadata items into the PALMD::Metadata, combining with any provided by the
@@ -1077,8 +1056,24 @@ void AMDGPUAsmPrinter::EmitPALMetadata(const MachineFunction &MF,
1077
1056
}
1078
1057
} else {
1079
1058
MD->setHwStage (CC, " .debug_mode" , (bool )CurrentProgramInfo.DebugMode );
1080
- MD->setHwStage (CC, " .scratch_en" , (bool )CurrentProgramInfo.ScratchEnable );
1081
- EmitPALMetadataCommon (MD, CurrentProgramInfo, CC, STM);
1059
+ MD->setHwStage (CC, " .ieee_mode" , (bool )CurrentProgramInfo.IEEEMode );
1060
+ MD->setHwStage (CC, " .wgp_mode" , (bool )CurrentProgramInfo.WgpMode );
1061
+ MD->setHwStage (CC, " .mem_ordered" , (bool )CurrentProgramInfo.MemOrdered );
1062
+
1063
+ if (AMDGPU::isCompute (CC)) {
1064
+ MD->setHwStage (CC, " .scratch_en" , (bool )CurrentProgramInfo.ScratchEnable );
1065
+ MD->setHwStage (CC, " .trap_present" ,
1066
+ (bool )CurrentProgramInfo.TrapHandlerEnable );
1067
+
1068
+ // EXCPEnMSB?
1069
+ const unsigned LdsDwGranularity = 128 ;
1070
+ MD->setHwStage (CC, " .lds_size" ,
1071
+ (unsigned )(CurrentProgramInfo.LdsSize * LdsDwGranularity *
1072
+ sizeof (uint32_t )));
1073
+ MD->setHwStage (CC, " .excp_en" , CurrentProgramInfo.EXCPEnable );
1074
+ } else {
1075
+ MD->setHwStage (CC, " .scratch_en" , (bool )CurrentProgramInfo.ScratchEnable );
1076
+ }
1082
1077
}
1083
1078
1084
1079
// ScratchSize is in bytes, 16 aligned.
@@ -1132,15 +1127,10 @@ void AMDGPUAsmPrinter::emitPALFunctionMetadata(const MachineFunction &MF) {
1132
1127
MD->setFunctionScratchSize (FnName, MFI.getStackSize ());
1133
1128
const GCNSubtarget &ST = MF.getSubtarget <GCNSubtarget>();
1134
1129
1135
- if (MD->getPALMajorVersion () < 3 ) {
1136
- // Set compute registers
1137
- MD->setRsrc1 (CallingConv::AMDGPU_CS,
1138
- CurrentProgramInfo.getPGMRSrc1 (CallingConv::AMDGPU_CS, ST));
1139
- MD->setRsrc2 (CallingConv::AMDGPU_CS,
1140
- CurrentProgramInfo.getComputePGMRSrc2 ());
1141
- } else {
1142
- EmitPALMetadataCommon (MD, CurrentProgramInfo, CallingConv::AMDGPU_CS, ST);
1143
- }
1130
+ // Set compute registers
1131
+ MD->setRsrc1 (CallingConv::AMDGPU_CS,
1132
+ CurrentProgramInfo.getPGMRSrc1 (CallingConv::AMDGPU_CS, ST));
1133
+ MD->setRsrc2 (CallingConv::AMDGPU_CS, CurrentProgramInfo.getComputePGMRSrc2 ());
1144
1134
1145
1135
// Set optional info
1146
1136
MD->setFunctionLdsSize (FnName, CurrentProgramInfo.LDSSize );
0 commit comments