-
Notifications
You must be signed in to change notification settings - Fork 13.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[HIP] Claim --offload-compress
for -M
#133456
Conversation
@llvm/pr-subscribers-clang Author: Yaxun (Sam) Liu (yxsamliu) ChangesCmake automatically generates dependency files with all compilation options provided by users. When users use Full diff: https://github.com/llvm/llvm-project/pull/133456.diff 2 Files Affected:
diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp
index 40ecc0aee48b3..47c8bd31f0881 100644
--- a/clang/lib/Driver/ToolChains/Clang.cpp
+++ b/clang/lib/Driver/ToolChains/Clang.cpp
@@ -1026,6 +1026,12 @@ void Clang::AddPreprocessingOptions(Compilation &C, const JobAction &JA,
CmdArgs.push_back("-dependency-file");
CmdArgs.push_back(DepFile);
}
+ // Cmake generates dependency files using all compilation options specified
+ // by users. Claim those not used for dependency files.
+ if (JA.isOffloading(Action::OFK_HIP)) {
+ Args.ClaimAllArgs(options::OPT_offload_compress);
+ Args.ClaimAllArgs(options::OPT_no_offload_compress);
+ }
bool HasTarget = false;
for (const Arg *A : Args.filtered(options::OPT_MT, options::OPT_MQ)) {
diff --git a/clang/test/Driver/hip-options.hip b/clang/test/Driver/hip-options.hip
index 0aabc8ad41904..962676ada9497 100644
--- a/clang/test/Driver/hip-options.hip
+++ b/clang/test/Driver/hip-options.hip
@@ -242,3 +242,9 @@
// NO-WARN-ATOMIC: clang{{.*}} "-triple" "amdgcn-amd-amdhsa" {{.*}} "-Werror=atomic-alignment" {{.*}} "-Wno-error=atomic-alignment"
// NO-WARN-ATOMIC-NOT: clang{{.*}} "-triple" "x86_64-unknown-linux-gnu" {{.*}} "-Werror=atomic-alignment"
// NO-WARN-ATOMIC-NOT: clang{{.*}} "-triple" "x86_64-unknown-linux-gnu" {{.*}} "-Wno-error=atomic-alignment"
+
+// Check --offload-compress does not cause warning.
+// RUN: %clang -### --target=x86_64-unknown-linux-gnu -nogpuinc -nogpulib \
+// RUN: --offload-arch=gfx1100 --offload-compress --offload-host-only -M %s \
+// RUN: 2>&1 | FileCheck -check-prefix=COMPRESS %s
+// COMPRESS-NOT: clang: warning: argument unused during compilation: '--offload-compress'
|
--offloading-compress
for -M
--offload-compress
for -M
@llvm/pr-subscribers-clang-driver Author: Yaxun (Sam) Liu (yxsamliu) ChangesCmake automatically generates dependency files with all compilation options provided by users. When users use Full diff: https://github.com/llvm/llvm-project/pull/133456.diff 2 Files Affected:
diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp
index 40ecc0aee48b3..47c8bd31f0881 100644
--- a/clang/lib/Driver/ToolChains/Clang.cpp
+++ b/clang/lib/Driver/ToolChains/Clang.cpp
@@ -1026,6 +1026,12 @@ void Clang::AddPreprocessingOptions(Compilation &C, const JobAction &JA,
CmdArgs.push_back("-dependency-file");
CmdArgs.push_back(DepFile);
}
+ // Cmake generates dependency files using all compilation options specified
+ // by users. Claim those not used for dependency files.
+ if (JA.isOffloading(Action::OFK_HIP)) {
+ Args.ClaimAllArgs(options::OPT_offload_compress);
+ Args.ClaimAllArgs(options::OPT_no_offload_compress);
+ }
bool HasTarget = false;
for (const Arg *A : Args.filtered(options::OPT_MT, options::OPT_MQ)) {
diff --git a/clang/test/Driver/hip-options.hip b/clang/test/Driver/hip-options.hip
index 0aabc8ad41904..962676ada9497 100644
--- a/clang/test/Driver/hip-options.hip
+++ b/clang/test/Driver/hip-options.hip
@@ -242,3 +242,9 @@
// NO-WARN-ATOMIC: clang{{.*}} "-triple" "amdgcn-amd-amdhsa" {{.*}} "-Werror=atomic-alignment" {{.*}} "-Wno-error=atomic-alignment"
// NO-WARN-ATOMIC-NOT: clang{{.*}} "-triple" "x86_64-unknown-linux-gnu" {{.*}} "-Werror=atomic-alignment"
// NO-WARN-ATOMIC-NOT: clang{{.*}} "-triple" "x86_64-unknown-linux-gnu" {{.*}} "-Wno-error=atomic-alignment"
+
+// Check --offload-compress does not cause warning.
+// RUN: %clang -### --target=x86_64-unknown-linux-gnu -nogpuinc -nogpulib \
+// RUN: --offload-arch=gfx1100 --offload-compress --offload-host-only -M %s \
+// RUN: 2>&1 | FileCheck -check-prefix=COMPRESS %s
+// COMPRESS-NOT: clang: warning: argument unused during compilation: '--offload-compress'
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why does this only cause warnings when it makes dependency files? If we can check whether or not it's HIP, then why isn't any of the HIP argument parsing happening?
Because in normal HIP compilations (compilations not for generating dependency files),
Sorry I did not quite understand this question. Can you elaborate? Thanks. |
I just feel like this should probably go in the HIP toolchain when it translates arguments or something instead of just |
In the compilation that generates the dependency files for HIP, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Didn't notice the indentation, LGTM.
Cmake automatically generate dependency files with all compilation options provided by users. When users use for HIP compilation, it causes warnings when cmake generates dependency files. Claim this option to supress warnings.
674c4ef
to
be4ea80
Compare
Cmake automatically generates dependency files with all compilation options provided by users. When users use
--offload-compress
for HIP compilation, it causes warnings when cmake generates dependency files. Claim this option to suppress warnings.