79 lines
2.9 KiB
Diff
79 lines
2.9 KiB
Diff
ROCm 6.0.0 and 6.0.2 releases use mix between LLVM 17 and 18
|
|
forked as https://github.com/RadeonOpenCompute/llvm-project
|
|
which makes some libraries compatible with LLVM 17,
|
|
while other require LLVM 18.
|
|
|
|
Backports:
|
|
* https://github.com/ROCm/llvm-project/commit/6cbc4dc91dfeb1cf2295cb350866e0b3a07dfee4
|
|
* https://github.com/ROCm/llvm-project/commit/179ec2e67bf882c6bccb27f81db3d80f7eb9946e
|
|
* https://github.com/ROCm/llvm-project/commit/ee123c3d1706bc4346511b1a9032020782576350
|
|
--- a/src/comgr-compiler.cpp
|
|
+++ b/src/comgr-compiler.cpp
|
|
@@ -205,7 +205,11 @@ bool AssemblerInvocation::createFromArgs(AssemblerInvocation &Opts,
|
|
// Parse the arguments.
|
|
const OptTable &OptTbl = getDriverOptTable();
|
|
|
|
+#if LLVM_VERSION_MAJOR == 17
|
|
const unsigned IncludedFlagsBitmask = options::CC1AsOption;
|
|
+#else
|
|
+ llvm::opt::Visibility IncludedFlagsBitmask(options::CC1AsOption);
|
|
+#endif
|
|
unsigned MissingArgIndex, MissingArgCount;
|
|
InputArgList Args = OptTbl.ParseArgs(Argv, MissingArgIndex, MissingArgCount,
|
|
IncludedFlagsBitmask);
|
|
@@ -1041,11 +1045,15 @@ amd_comgr_status_t AMDGPUCompiler::addCompilationFlags() {
|
|
Args.push_back("cl");
|
|
Args.push_back("-std=cl1.2");
|
|
Args.push_back("-cl-no-stdinc");
|
|
+ Args.push_back("-mllvm");
|
|
+ Args.push_back("-amdgpu-internalize-symbols");
|
|
break;
|
|
case AMD_COMGR_LANGUAGE_OPENCL_2_0:
|
|
Args.push_back("cl");
|
|
Args.push_back("-std=cl2.0");
|
|
Args.push_back("-cl-no-stdinc");
|
|
+ Args.push_back("-mllvm");
|
|
+ Args.push_back("-amdgpu-internalize-symbols");
|
|
break;
|
|
case AMD_COMGR_LANGUAGE_HIP:
|
|
Args.push_back("hip");
|
|
@@ -1605,6 +1613,9 @@ amd_comgr_status_t AMDGPUCompiler::assembleToRelocatable() {
|
|
Args.push_back("-x");
|
|
Args.push_back("assembler");
|
|
|
|
+ // -nogpulib option not needed for assembling to relocatable
|
|
+ NoGpuLib = false;
|
|
+
|
|
return processFiles(AMD_COMGR_DATA_KIND_RELOCATABLE, ".o");
|
|
}
|
|
|
|
--- a/src/comgr-metadata.cpp
|
|
+++ b/src/comgr-metadata.cpp
|
|
@@ -1087,7 +1087,12 @@ amd_comgr_status_t lookUpCodeObject(DataObject *DataP,
|
|
}
|
|
|
|
BinaryStreamReader Reader(StringRef(DataP->Data, DataP->Size),
|
|
- support::little);
|
|
+#if LLVM_VERSION_MAJOR == 17
|
|
+ support::little
|
|
+#else
|
|
+ llvm::endianness::little
|
|
+#endif
|
|
+ );
|
|
|
|
StringRef Magic;
|
|
if (auto EC = Reader.readFixedString(Magic, OffloadBundleMagicLen)) {
|
|
--- a/test/compile_log_remarks_test.c
|
|
+++ b/test/compile_log_remarks_test.c
|
|
@@ -107,7 +107,11 @@ int main(int argc, char *argv[]) {
|
|
AMD_COMGR_DATA_KIND_SOURCE, 1);
|
|
|
|
checkLogs("AMD_COMGR_ACTION_CODEGEN_BC_TO_ASSEMBLY", DataSetAsm,
|
|
+#if LLVM_VERSION_MAJOR == 17
|
|
"remark: <unknown>:0:0: 8 stack bytes in function "
|
|
+#else
|
|
+ "remark: <unknown>:0:0: 8 stack bytes in function 'f' "
|
|
+#endif
|
|
"[-Rpass-analysis=prologepilog]");
|
|
|
|
Status = amd_comgr_destroy_data_set(DataSetCl);
|