[clang] Reland "[HIP] Use original file path for CUID" (#108771) (PR #111885)
Yaxun Liu via cfe-commits
cfe-commits at lists.llvm.org
Thu Feb 13 08:35:53 PST 2025
https://github.com/yxsamliu updated https://github.com/llvm/llvm-project/pull/111885
>From 2b90f311fef72514783d2d0840f76493c36a5d39 Mon Sep 17 00:00:00 2001
From: "Yaxun (Sam) Liu" <yaxun.liu at amd.com>
Date: Wed, 25 Sep 2024 14:31:54 -0400
Subject: [PATCH] Reland "[HIP] Use original file path for CUID" (#108771)
This patch fixes the buildbots failure of lit tests on MacOS.
Since clang driver options depend on toolchain, we cannot
hardcode CUID hash. On MacOS there is an extra -mlinker-version=
option.
---
clang/lib/Driver/Driver.cpp | 5 +----
clang/test/Driver/hip-cuid-hash.hip | 15 +++++++++++----
2 files changed, 12 insertions(+), 8 deletions(-)
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index 50941d2aaa429..2a70c17433231 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -226,10 +226,7 @@ std::string CUIDOptions::getCUID(StringRef InputFile,
else if (UseCUID == Kind::Hash) {
llvm::MD5 Hasher;
llvm::MD5::MD5Result Hash;
- SmallString<256> RealPath;
- llvm::sys::fs::real_path(InputFile, RealPath,
- /*expand_tilde=*/true);
- Hasher.update(RealPath);
+ Hasher.update(InputFile);
for (auto *A : Args) {
if (A->getOption().matches(options::OPT_INPUT))
continue;
diff --git a/clang/test/Driver/hip-cuid-hash.hip b/clang/test/Driver/hip-cuid-hash.hip
index 103a1cbf26d50..a4167d664537e 100644
--- a/clang/test/Driver/hip-cuid-hash.hip
+++ b/clang/test/Driver/hip-cuid-hash.hip
@@ -1,13 +1,20 @@
// Check CUID generated by hash.
// The same CUID is generated for the same file with the same options.
+// This test requires relative paths for input files. Since the test may be
+// done out of source tree, create the local directory structure and copy the
+// input file from the source tree into that directory.
+// RUN: mkdir -p %t/Inputs/hip_multiple_inputs
+// RUN: cp %S/Inputs/hip_multiple_inputs/a.cu %t/Inputs/hip_multiple_inputs/a.cu
+// RUN: cd %t
+
// RUN: %clang -### -x hip --target=x86_64-unknown-linux-gnu --no-offload-new-driver \
// RUN: --offload-arch=gfx906 -c -nogpuinc -nogpulib -fuse-cuid=hash \
-// RUN: %S/Inputs/hip_multiple_inputs/a.cu >%t.out 2>&1
+// RUN: Inputs/hip_multiple_inputs/a.cu >%t.out 2>&1
// RUN: %clang -### -x hip --target=x86_64-unknown-linux-gnu --no-offload-new-driver \
// RUN: --offload-arch=gfx906 -c -nogpuinc -nogpulib -fuse-cuid=hash \
-// RUN: %S/Inputs/hip_multiple_inputs/a.cu >>%t.out 2>&1
+// RUN: Inputs/hip_multiple_inputs/a.cu >>%t.out 2>&1
// RUN: FileCheck %s -check-prefixes=SAME -input-file %t.out
@@ -16,11 +23,11 @@
// RUN: %clang -### -x hip --target=x86_64-unknown-linux-gnu -DX=1 --no-offload-new-driver \
// RUN: --offload-arch=gfx906 -c -nogpuinc -nogpulib -fuse-cuid=hash \
-// RUN: %S/Inputs/hip_multiple_inputs/a.cu >%t.out 2>&1
+// RUN: Inputs/hip_multiple_inputs/a.cu >%t.out 2>&1
// RUN: %clang -### -x hip --target=x86_64-unknown-linux-gnu -DX=2 --no-offload-new-driver \
// RUN: --offload-arch=gfx906 -c -nogpuinc -nogpulib -fuse-cuid=hash \
-// RUN: %S/Inputs/../Inputs/hip_multiple_inputs/a.cu >>%t.out 2>&1
+// RUN: Inputs/../Inputs/hip_multiple_inputs/a.cu >>%t.out 2>&1
// RUN: FileCheck %s -check-prefixes=DIFF -input-file %t.out
More information about the cfe-commits
mailing list