Skip to content

Commit f56e083

Browse files
committed
[clang][offload] - Update offload runtime and driver for lib/llvm move
Change-Id: I0477710855e66e82be35fac197b59ee7c6550d89
1 parent 113d1ca commit f56e083

File tree

5 files changed

+29
-6
lines changed

5 files changed

+29
-6
lines changed

clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -550,7 +550,7 @@ void AMDGPUOpenMPToolChain::AddClangSystemIncludeArgs(const ArgList &DriverArgs,
550550
CC1Args.push_back("-internal-isystem");
551551
CC1Args.push_back(DriverArgs.MakeArgString(D.Dir + "/../include"));
552552
CC1Args.push_back("-internal-isystem");
553-
CC1Args.push_back(DriverArgs.MakeArgString(D.Dir + "/../../include"));
553+
CC1Args.push_back(DriverArgs.MakeArgString(D.Dir + "/../../../include"));
554554

555555
HostTC.AddClangSystemIncludeArgs(DriverArgs, CC1Args);
556556

clang/lib/Driver/ToolChains/CommonArgs.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1238,8 +1238,15 @@ void tools::addOpenMPRuntimeSpecificRPath(const ToolChain &TC,
12381238
CmdArgs.push_back("-rpath");
12391239
CmdArgs.push_back(Args.MakeArgString(TC.getCompilerRTPath()));
12401240
}
1241+
12411242
CmdArgs.push_back("-rpath");
12421243
CmdArgs.push_back(Args.MakeArgString(CandidateRPath.c_str()));
1244+
std::string rocmPath = Args.getLastArgValue(clang::driver::options::OPT_rocm_path_EQ).str();
1245+
if (rocmPath.size() != 0){
1246+
rocmPath = rocmPath + "/lib";
1247+
CmdArgs.push_back("-rpath");
1248+
CmdArgs.push_back(Args.MakeArgString(rocmPath.c_str()));
1249+
}
12431250
if (llvm::find_if(CmdArgs, [](StringRef str) {
12441251
return !str.compare("--enable-new-dtags");
12451252
}) == CmdArgs.end())

llvm/runtimes/CMakeLists.txt

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -502,19 +502,25 @@ if(build_runtimes)
502502
list(APPEND extra_cmake_args "-DCMAKE_PROGRAM_PATH=${CMAKE_PROGRAM_PATH}")
503503
endif()
504504

505-
if("openmp" IN_LIST LLVM_ENABLE_RUNTIMES)
506-
if(DEFINED LIBOMPTARGET_EXTERNAL_PROJECT_HSA_PATH AND DEFINED LIBOMPTARGET_EXTERNAL_PROJECT_THUNK_PATH)
505+
if("offload" IN_LIST LLVM_ENABLE_RUNTIMES)
506+
if(DEFINED LIBOMPTARGET_EXTERNAL_PROJECT_HSA_PATH AND
507+
DEFINED LIBOMPTARGET_EXTERNAL_PROJECT_THUNK_PATH AND
508+
DEFINED LIBOMPTARGET_EXTERNAL_PROJECT_ROCM_DEVICE_LIBS_PATH)
507509
ExternalProject_Add(roct
508510
SOURCE_DIR ${LIBOMPTARGET_EXTERNAL_PROJECT_THUNK_PATH}
509511
DEPENDS clang llvm-link lld opt llvm-objcopy
510512
INSTALL_COMMAND ""
511-
CMAKE_ARGS -DCMAKE_PREFIX_PATH=${CMAKE_BINARY_DIR}/lib/cmake)
513+
CMAKE_ARGS -DCMAKE_PREFIX_PATH=${CMAKE_BINARY_DIR}/lib/cmake)
512514
ExternalProject_Add(rocr-runtime
513515
SOURCE_DIR ${LIBOMPTARGET_EXTERNAL_PROJECT_HSA_PATH}
514516
DEPENDS clang llvm-link lld opt llvm-objcopy roct
515517
INSTALL_COMMAND ""
516-
CMAKE_ARGS -DBUILD_SHARED_LIBS=ON -DCMAKE_PREFIX_PATH=${CMAKE_BINARY_DIR}/lib/cmake -DIMAGE_SUPPORT=OFF -DLLVM_RUNTIME_OPENMP=ON -DHSAKMT_SRC_PATH=${LIBOMPTARGET_EXTERNAL_PROJECT_THUNK_PATH})
518+
CMAKE_ARGS -DBUILD_SHARED_LIBS=ON -DCMAKE_PREFIX_PATH=${CMAKE_BINARY_DIR}/lib/cmake -DIMAGE_SUPPORT=OFF -DLLVM_RUNTIME_OPENMP=ON -DHSAKMT_SRC_PATH=${LIBOMPTARGET_EXTERNAL_PROJECT_THUNK_PATH})
517519
set(HSA_DEP rocr-runtime)
520+
ExternalProject_Add(rocm-device-libs
521+
SOURCE_DIR ${LIBOMPTARGET_EXTERNAL_PROJECT_ROCM_DEVICE_LIBS_PATH}
522+
DEPENDS clang llvm-link lld opt llvm-objcopy
523+
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${ROCM_DEVICE_LIBS_INSTALL_PREFIX_PATH} -DCMAKE_PREFIX_PATH=${CMAKE_BINARY_DIR}/lib/cmake -DROCM_DEVICE_LIBS_BITCODE_INSTALL_LOC_NEW=${ROCM_DEVICE_LIBS_BITCODE_INSTALL_LOC} -DROCM_DEVICE_LIBS_BITCODE_INSTALL_LOC_OLD=amdgcn)
518524
endif()
519525
if("AMDGPU" IN_LIST LLVM_TARGETS_TO_BUILD)
520526
set(AMDGPU_ARCH_DEP amdgpu-arch)

offload/CMakeLists.txt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,14 @@
44
cmake_minimum_required(VERSION 3.20.0)
55
set(LLVM_SUBPROJECT_TITLE "liboffload")
66

7+
if(DEFINED LIBOMP_SHARED_LINKER_FLAGS)
8+
set(CMAKE_SHARED_LINKER_FLAGS "${LIBOMP_SHARED_LINKER_FLAGS}")
9+
endif()
10+
11+
if(DEFINED LIBOMP_INSTALL_RPATH)
12+
set(CMAKE_INSTALL_RPATH "${LIBOMP_INSTALL_RPATH}")
13+
endif()
14+
715
if ("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}")
816
set(OPENMP_STANDALONE_BUILD TRUE)
917
project(offload C CXX ASM)

offload/hostexec/CMakeLists.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ if(DEFINED HSA_RUNTIME)
3333
elseif(${hsa-runtime64_FOUND})
3434
message(STATUS "Building hostexec for AMDGCN linked against libhsa")
3535
set(HSA_INCLUDE ${hsa-runtime64_DIR}/../../../include/hsa)
36+
get_target_property(HSA_INCLUDE hsa-runtime64::hsa-runtime64 INTERFACE_INCLUDE_DIRECTORIES)
3637
set(HOSTEXEC_EXTRA_SOURCE)
3738
set(HOSTEXEC_DEP_LIBRARIES hsa-runtime64::hsa-runtime64)
3839
else()
@@ -163,7 +164,8 @@ foreach(archname ${HOSTRPC_ARCHS})
163164
foreach(mcpu ${mcpus})
164165
if (${archname} STREQUAL "amdgcn")
165166
find_package(AMDDeviceLibs REQUIRED CONFIG
166-
HINTS ${CMAKE_BINARY_DIR}/../../tools/rocm-device-libs
167+
HINTS ${CMAKE_BINARY_DIR}/../../tools/rocm-device-libs
168+
${CMAKE_BINARY_DIR}/../rocm-device-libs-prefix/src/rocm-device-libs-build
167169
${CMAKE_INSTALL_PREFIX}
168170
PATHS /opt/rocm
169171
)

0 commit comments

Comments
 (0)