[clang] [Clang][Driver][HIP] Fix test for HIP as it was failing (PR #126585)

2025-02-10 Thread Sharjeel Khan via cfe-commits

Sharjeel-Khan wrote:

```
FAIL: Clang :: Driver/dep-file-flag-with-multiple-offload-archs.hip (10874 of 
21886)
 TEST 'Clang :: 
Driver/dep-file-flag-with-multiple-offload-archs.hip' FAILED 

Exit Code: 1

Command Output (stderr):
--
RUN: at line 1: /b/f/w/src/git/out/stage2/bin/clang -### -nogpuinc -nogpulib 
--offload-arch=gfx1030 --offload-arch=gfx1100 --offload-arch=gfx1101 -MD -MF 
tmp.d 
/b/f/w/src/git/out/llvm-project/clang/test/Driver/dep-file-flag-with-multiple-offload-archs.hip
 2>&1 | /b/f/w/src/git/out/stage2/bin/FileCheck 
/b/f/w/src/git/out/llvm-project/clang/test/Driver/dep-file-flag-with-multiple-offload-archs.hip
+ /b/f/w/src/git/out/stage2/bin/clang -### -nogpuinc -nogpulib 
--offload-arch=gfx1030 --offload-arch=gfx1100 --offload-arch=gfx1101 -MD -MF 
tmp.d 
/b/f/w/src/git/out/llvm-project/clang/test/Driver/dep-file-flag-with-multiple-offload-archs.hip
+ /b/f/w/src/git/out/stage2/bin/FileCheck 
/b/f/w/src/git/out/llvm-project/clang/test/Driver/dep-file-flag-with-multiple-offload-archs.hip
/[b/f/w/src/git/out/llvm-project/clang/test/Driver/dep-file-flag-with-multiple-offload-archs.hip:3](https://cs.corp.google.com/piper///depot/google3/b/f/w/src/git/out/llvm-project/clang/test/Driver/dep-file-flag-with-multiple-offload-archs.hip?l=3):11:
 error: CHECK: expected string not found in input
// CHECK: Build config:
  ^
:1:1: note: scanning from here
Android (3531, -pgo, -bolt, -lto, +mlgo, ANDROID_LLVM_NEXT, based on r) 
clang version 21.0.0 (https://android.googlesource.com/toolchain/llvm-project 
c6b13a28717455028bf48bcb20f723ad3bbff783)
^
:3:9: note: possible intended match here
Thread model: posix
^

Input file: 
Check file: 
/b/f/w/src/git/out/llvm-project/clang/test/Driver/dep-file-flag-with-multiple-offload-archs.hip

-dump-input=help explains the following input dump.

Input was:
<<
   1: Android (3531, -pgo, -bolt, -lto, +mlgo, ANDROID_LLVM_NEXT, based 
on r) clang version 21.0.0 
(https://android.googlesource.com/toolchain/llvm-project 
c6b13a28717455028bf48bcb20f723ad3bbff783) 
check:3'0 
X~~~
 error: no match found
   2: Target: x86_64-unknown-linux-gnu 
check:3'0 ~
   3: Thread model: posix 
check:3'0 
check:3'1 ?possible intended match
   4: InstalledDir: /b/f/w/src/git/out/stage2/bin 
check:3'0 
   5:  "/b/f/w/src/git/out/stage2/bin/clang-21" "-cc1" "-triple" 
"amdgcn-amd-amdhsa" "-aux-triple" "x86_64-unknown-linux-gnu" 
"-Werror=atomic-alignment" "-emit-obj" "-dumpdir" "a-" "-disable-free" 
"-clear-ast-before-backend" "-disable-llvm-verifier" "-discard-value-names" 
"-main-file-name" "dep-file-flag-with-multiple-offload-archs.hip" 
"-mrelocation-model" "pic" "-pic-level" "2" "-fhalf-no-semantic-interposition" 
"-mframe-pointer=all" "-fno-rounding-math" "-mconstructor-aliases" 
"-aux-target-cpu" "x86-64" "-fcuda-is-device" "-fno-threadsafe-statics" 
"-mllvm" "-amdgpu-internalize-symbols" "-fcuda-allow-variadic-functions" 
"-fvisibility=hidden" "-fapply-global-visibility-to-externs" "-target-cpu" 
"gfx1030" "-debugger-tuning=gdb" 
"-fdebug-compilation-dir=/b/f/w/src/git/out/stage2/tools/clang/test/Driver" 
"-resource-dir" "/b/f/w/src/git/out/stage2/lib/clang/21" "-MT" 
"dep-file-flag-with-multiple-offload-archs.o" "-sys-header-deps" 
"-internal-isystem" "/b/f/w/src/git/out/stage2/lib/clang/21" 
"-internal-isystem" "/b/f/w/src/git/out/stage2/lib/clang/21/include" 
"-internal-isystem" "/usr/local/include" "-internal-isystem" 
"/usr/lib/gcc/x86_64-linux-gnu/11/../../../../x86_64-linux-gnu/include" 
"-internal-externc-isystem" "/usr/include/x86_64-linux-gnu" 
"-internal-externc-isystem" "/include" "-internal-externc-isystem" 
"/usr/include" "-internal-isystem" 
"/b/f/w/src/git/out/stage2/lib/clang/21/include" "-internal-isystem" 
"/usr/local/include" "-internal-isystem" 
"/usr/lib/gcc/x86_64-linux-gnu/11/../../../../x86_64-linux-gnu/include" 
"-internal-externc-isystem" "/usr/include/x86_64-linux-gnu" 
"-internal-externc-isystem" "/include" "-internal-externc-isystem" 
"/usr/include" "-fdeprecated-macro" "-fno-autolink" "-ferror-limit" "19" 
"-fhip-new-launch-api" "-nogpulib" "-fgnuc-version=4.2.1" 
"-fskip-odr-check-in-gmf" "-fcxx-exceptions" "-fexceptions" 
"-cuid=1ec88a05ae863c20" "-fcuda-allow-variadic-functions" "-faddrsig" 
"-D__GCC_HAVE_DWARF2_CFI_ASM=1" "-o" 
"/tmp/lit-tmp-sr1puvw5/dep-file-flag-with-multiple-offload-archs-gfx1030-bae164.o"
 "-x" "hip" 
"/b/f/w/src/git/out/llvm-project/clang/test/Driver/dep-file-flag-with-multiple-offload-archs.hip"
 
check:3'0 
~~~

[clang] [Clang][Driver][HIP] Fix test for HIP as it was failing (PR #126585)

2025-02-10 Thread Sharjeel Khan via cfe-commits

Sharjeel-Khan wrote:

@lalaniket8 This was your PR so I want to make sure this is okay with you

https://github.com/llvm/llvm-project/pull/126585
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Clang][Driver][HIP] Fix test for HIP as it was failing (PR #126585)

2025-02-10 Thread Sharjeel Khan via cfe-commits

https://github.com/Sharjeel-Khan edited 
https://github.com/llvm/llvm-project/pull/126585
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Clang][Driver][HIP] Fix test for HIP as it was failing (PR #126585)

2025-02-10 Thread Sharjeel Khan via cfe-commits

https://github.com/Sharjeel-Khan created 
https://github.com/llvm/llvm-project/pull/126585

This PR #125646 added this test and it was failing in Android's compiler. I 
removed the "Build config" check and it passes now.

>From f8b2aa2393ae9cc5329790a78dc995017968a8a1 Mon Sep 17 00:00:00 2001
From: Sharjeel Khan 
Date: Mon, 10 Feb 2025 19:30:06 +
Subject: [PATCH] Fix test for HIP as it was failing

This PR #125646 added this test and it was failing in Android's
compiler. I removed the Build config because we do not have it and it
passes now.
---
 clang/test/Driver/dep-file-flag-with-multiple-offload-archs.hip | 1 -
 1 file changed, 1 deletion(-)

diff --git a/clang/test/Driver/dep-file-flag-with-multiple-offload-archs.hip 
b/clang/test/Driver/dep-file-flag-with-multiple-offload-archs.hip
index 79a52f0bc898127..cf92af03b84285c 100644
--- a/clang/test/Driver/dep-file-flag-with-multiple-offload-archs.hip
+++ b/clang/test/Driver/dep-file-flag-with-multiple-offload-archs.hip
@@ -1,6 +1,5 @@
 // RUN: %clang -### -nogpuinc -nogpulib --offload-arch=gfx1030 
--offload-arch=gfx1100 --offload-arch=gfx1101 -MD -MF tmp.d %s 2>&1 | FileCheck 
%s
 
-// CHECK: Build config:
 // CHECK-NOT: {{.*}}clang{{.*}}"-target-cpu" "gfx1030"{{.*}}"-dependency-file" 
"tmp.d"
 // CHECK: {{.*}}lld{{.*}}"-plugin-opt=mcpu=gfx1030"
 // CHECK-NOT: {{.*}}clang{{.*}}"-target-cpu" "gfx1100"{{.*}}"-dependency-file" 
"tmp.d"

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Clang][Driver][HIP] Fix test for HIP as it was failing (PR #126585)

2025-02-10 Thread Sharjeel Khan via cfe-commits

https://github.com/Sharjeel-Khan updated 
https://github.com/llvm/llvm-project/pull/126585

>From f8b2aa2393ae9cc5329790a78dc995017968a8a1 Mon Sep 17 00:00:00 2001
From: Sharjeel Khan 
Date: Mon, 10 Feb 2025 19:30:06 +
Subject: [PATCH 1/2] Fix test for HIP as it was failing

This PR #125646 added this test and it was failing in Android's
compiler. I removed the Build config because we do not have it and it
passes now.
---
 clang/test/Driver/dep-file-flag-with-multiple-offload-archs.hip | 1 -
 1 file changed, 1 deletion(-)

diff --git a/clang/test/Driver/dep-file-flag-with-multiple-offload-archs.hip 
b/clang/test/Driver/dep-file-flag-with-multiple-offload-archs.hip
index 79a52f0bc898127..cf92af03b84285c 100644
--- a/clang/test/Driver/dep-file-flag-with-multiple-offload-archs.hip
+++ b/clang/test/Driver/dep-file-flag-with-multiple-offload-archs.hip
@@ -1,6 +1,5 @@
 // RUN: %clang -### -nogpuinc -nogpulib --offload-arch=gfx1030 
--offload-arch=gfx1100 --offload-arch=gfx1101 -MD -MF tmp.d %s 2>&1 | FileCheck 
%s
 
-// CHECK: Build config:
 // CHECK-NOT: {{.*}}clang{{.*}}"-target-cpu" "gfx1030"{{.*}}"-dependency-file" 
"tmp.d"
 // CHECK: {{.*}}lld{{.*}}"-plugin-opt=mcpu=gfx1030"
 // CHECK-NOT: {{.*}}clang{{.*}}"-target-cpu" "gfx1100"{{.*}}"-dependency-file" 
"tmp.d"

>From cf287b93702b17b5312e9caaf7ed56c47d997a7c Mon Sep 17 00:00:00 2001
From: Sharjeel Khan 
Date: Tue, 11 Feb 2025 05:51:34 +
Subject: [PATCH 2/2] Add --target=x86_64-linux-gnu to test

---
 clang/test/Driver/dep-file-flag-with-multiple-offload-archs.hip | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/clang/test/Driver/dep-file-flag-with-multiple-offload-archs.hip 
b/clang/test/Driver/dep-file-flag-with-multiple-offload-archs.hip
index cf92af03b84285c..370e8dfaa546f24 100644
--- a/clang/test/Driver/dep-file-flag-with-multiple-offload-archs.hip
+++ b/clang/test/Driver/dep-file-flag-with-multiple-offload-archs.hip
@@ -1,4 +1,4 @@
-// RUN: %clang -### -nogpuinc -nogpulib --offload-arch=gfx1030 
--offload-arch=gfx1100 --offload-arch=gfx1101 -MD -MF tmp.d %s 2>&1 | FileCheck 
%s
+// RUN: %clang -### -nogpuinc -nogpulib  --offload-arch=gfx1030 
--offload-arch=gfx1100 --offload-arch=gfx1101 --target=x86_64-linux-gnu -MD -MF 
tmp.d %s 2>&1 | FileCheck %s
 
 // CHECK-NOT: {{.*}}clang{{.*}}"-target-cpu" "gfx1030"{{.*}}"-dependency-file" 
"tmp.d"
 // CHECK: {{.*}}lld{{.*}}"-plugin-opt=mcpu=gfx1030"

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Clang][Driver][HIP] Fix test for HIP as it was failing (PR #126585)

2025-02-10 Thread Sharjeel Khan via cfe-commits

https://github.com/Sharjeel-Khan updated 
https://github.com/llvm/llvm-project/pull/126585

>From f8b2aa2393ae9cc5329790a78dc995017968a8a1 Mon Sep 17 00:00:00 2001
From: Sharjeel Khan 
Date: Mon, 10 Feb 2025 19:30:06 +
Subject: [PATCH 1/2] Fix test for HIP as it was failing

This PR #125646 added this test and it was failing in Android's
compiler. I removed the Build config because we do not have it and it
passes now.
---
 clang/test/Driver/dep-file-flag-with-multiple-offload-archs.hip | 1 -
 1 file changed, 1 deletion(-)

diff --git a/clang/test/Driver/dep-file-flag-with-multiple-offload-archs.hip 
b/clang/test/Driver/dep-file-flag-with-multiple-offload-archs.hip
index 79a52f0bc898127..cf92af03b84285c 100644
--- a/clang/test/Driver/dep-file-flag-with-multiple-offload-archs.hip
+++ b/clang/test/Driver/dep-file-flag-with-multiple-offload-archs.hip
@@ -1,6 +1,5 @@
 // RUN: %clang -### -nogpuinc -nogpulib --offload-arch=gfx1030 
--offload-arch=gfx1100 --offload-arch=gfx1101 -MD -MF tmp.d %s 2>&1 | FileCheck 
%s
 
-// CHECK: Build config:
 // CHECK-NOT: {{.*}}clang{{.*}}"-target-cpu" "gfx1030"{{.*}}"-dependency-file" 
"tmp.d"
 // CHECK: {{.*}}lld{{.*}}"-plugin-opt=mcpu=gfx1030"
 // CHECK-NOT: {{.*}}clang{{.*}}"-target-cpu" "gfx1100"{{.*}}"-dependency-file" 
"tmp.d"

>From 9b246c78d28f96b4e8ed47f799d4b44433a1f5f1 Mon Sep 17 00:00:00 2001
From: Sharjeel Khan 
Date: Tue, 11 Feb 2025 05:51:34 +
Subject: [PATCH 2/2] Add --target=x86_64-linux-gnu to test

---
 clang/test/Driver/dep-file-flag-with-multiple-offload-archs.hip | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/clang/test/Driver/dep-file-flag-with-multiple-offload-archs.hip 
b/clang/test/Driver/dep-file-flag-with-multiple-offload-archs.hip
index cf92af03b84285c..f17e56acfb7f743 100644
--- a/clang/test/Driver/dep-file-flag-with-multiple-offload-archs.hip
+++ b/clang/test/Driver/dep-file-flag-with-multiple-offload-archs.hip
@@ -1,4 +1,4 @@
-// RUN: %clang -### -nogpuinc -nogpulib --offload-arch=gfx1030 
--offload-arch=gfx1100 --offload-arch=gfx1101 -MD -MF tmp.d %s 2>&1 | FileCheck 
%s
+// RUN: %clang -### -nogpuinc -nogpulib --offload-arch=gfx1030 
--offload-arch=gfx1100 --offload-arch=gfx1101 --target=x86_64-linux-gnu -MD -MF 
tmp.d %s 2>&1 | FileCheck %s
 
 // CHECK-NOT: {{.*}}clang{{.*}}"-target-cpu" "gfx1030"{{.*}}"-dependency-file" 
"tmp.d"
 // CHECK: {{.*}}lld{{.*}}"-plugin-opt=mcpu=gfx1030"

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Clang][Driver][HIP] Fix test for HIP as it was failing (PR #126585)

2025-02-10 Thread Sharjeel Khan via cfe-commits


@@ -1,6 +1,5 @@
 // RUN: %clang -### -nogpuinc -nogpulib --offload-arch=gfx1030 
--offload-arch=gfx1100 --offload-arch=gfx1101 -MD -MF tmp.d %s 2>&1 | FileCheck 
%s

Sharjeel-Khan wrote:

I added --target=x86_64-linux-gnu to the command. I just need a review so I can 
merge it.

https://github.com/llvm/llvm-project/pull/126585
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Driver] Warn when using msan on Android (PR #122540)

2025-01-11 Thread Sharjeel Khan via cfe-commits

https://github.com/Sharjeel-Khan updated 
https://github.com/llvm/llvm-project/pull/122540

>From c8d2c210a98fe0c96d758d538d50fcc0ca61a9ff Mon Sep 17 00:00:00 2001
From: Sharjeel Khan 
Date: Fri, 10 Jan 2025 20:07:52 +
Subject: [PATCH 1/3] Warn when using msan on Android

Msan is not supported on Android as mentioned in google/sanitizers#1381.
We proactively give the warning saying it is unsupported to fix 
android/ndk#1958.
---
 clang/lib/Driver/SanitizerArgs.cpp | 10 ++
 clang/test/Driver/fsanitize.c  |  5 +
 2 files changed, 15 insertions(+)

diff --git a/clang/lib/Driver/SanitizerArgs.cpp 
b/clang/lib/Driver/SanitizerArgs.cpp
index a0d6919c6dc8d0..04b39d29e7342f 100644
--- a/clang/lib/Driver/SanitizerArgs.cpp
+++ b/clang/lib/Driver/SanitizerArgs.cpp
@@ -530,6 +530,16 @@ SanitizerArgs::SanitizerArgs(const ToolChain &TC,
   }
   Add &= Supported;
 
+  // Msan is not supported on Android
+  if ((Add & SanitizerKind::Memory) && TC.getTriple().isAndroid()) {
+if (DiagnoseErrors) {
+  D.Diag(diag::warn_drv_unsupported_option_for_target)
+  << "-fsanitize=memory" << Triple.str();
+}
+DiagnosedKinds |= SanitizerKind::Memory;
+Add &= ~SanitizerKind::Memory;
+  }
+
   // Test for -fno-rtti + explicit -fsanitizer=vptr before expanding groups
   // so we don't error out if -fno-rtti and -fsanitize=undefined were
   // passed.
diff --git a/clang/test/Driver/fsanitize.c b/clang/test/Driver/fsanitize.c
index 1d3caec748d77a..55b51ed29b0e65 100644
--- a/clang/test/Driver/fsanitize.c
+++ b/clang/test/Driver/fsanitize.c
@@ -399,6 +399,11 @@
 // RUN: %clang --target=arm-linux-androideabi %s -### 2>&1 | FileCheck %s 
--check-prefix=CHECK-ANDROID-NO-ASAN
 // CHECK-ANDROID-NO-ASAN: "-mrelocation-model" "pic"
 
+// RUN: %clang --target=aarch64-linux-android -fsanitize=memory %s -### 2>&1 | 
FileCheck %s --check-prefix=CHECK-MSAN-ANDROID
+// RUN: %clang --target=i386-linux-android -fsanitize=memory %s -### 2>&1 | 
FileCheck %s --check-prefix=CHECK-MSAN-ANDROID
+// RUN: %clang --target=x86_64-linux-android -fsanitize=memory %s -### 2>&1 | 
FileCheck %s --check-prefix=CHECK-MSAN-ANDROID
+// CHECK-MSAN-ANDROID: ignoring '-fsanitize=memory' option as it is not 
currently supported for target
+
 // RUN: %clang --target=x86_64-linux-gnu %s -fsanitize=undefined -### 2>&1 | 
FileCheck %s --check-prefix=CHECK-RECOVER-UBSAN
 // RUN: %clang --target=x86_64-linux-gnu %s -fsanitize=undefined 
-fsanitize-recover -### 2>&1 | FileCheck %s --check-prefix=CHECK-RECOVER-UBSAN
 // RUN: %clang --target=x86_64-linux-gnu %s -fsanitize=undefined 
-fsanitize-recover=all -### 2>&1 | FileCheck %s 
--check-prefix=CHECK-RECOVER-UBSAN

>From 035c7d9936a33926ccca10d9670879d3b913496e Mon Sep 17 00:00:00 2001
From: Sharjeel Khan 
Date: Fri, 10 Jan 2025 22:31:33 +
Subject: [PATCH 2/3] Fixed format for SanitizerArgs

---
 clang/lib/Driver/SanitizerArgs.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/clang/lib/Driver/SanitizerArgs.cpp 
b/clang/lib/Driver/SanitizerArgs.cpp
index 04b39d29e7342f..25bfd5eadae8c9 100644
--- a/clang/lib/Driver/SanitizerArgs.cpp
+++ b/clang/lib/Driver/SanitizerArgs.cpp
@@ -534,7 +534,7 @@ SanitizerArgs::SanitizerArgs(const ToolChain &TC,
   if ((Add & SanitizerKind::Memory) && TC.getTriple().isAndroid()) {
 if (DiagnoseErrors) {
   D.Diag(diag::warn_drv_unsupported_option_for_target)
-  << "-fsanitize=memory" << Triple.str();
+  << "-fsanitize=memory" << Triple.str();
 }
 DiagnosedKinds |= SanitizerKind::Memory;
 Add &= ~SanitizerKind::Memory;

>From 3e42b05457a735365ef8e17c4da8e8d3a530c607 Mon Sep 17 00:00:00 2001
From: Sharjeel Khan 
Date: Sat, 11 Jan 2025 20:50:28 +
Subject: [PATCH 3/3] Move the check into Linux.cpp

---
 clang/lib/Driver/SanitizerArgs.cpp| 10 --
 clang/lib/Driver/ToolChains/Linux.cpp |  4 +++-
 clang/test/Driver/fsanitize.c |  8 
 3 files changed, 7 insertions(+), 15 deletions(-)

diff --git a/clang/lib/Driver/SanitizerArgs.cpp 
b/clang/lib/Driver/SanitizerArgs.cpp
index 25bfd5eadae8c9..a0d6919c6dc8d0 100644
--- a/clang/lib/Driver/SanitizerArgs.cpp
+++ b/clang/lib/Driver/SanitizerArgs.cpp
@@ -530,16 +530,6 @@ SanitizerArgs::SanitizerArgs(const ToolChain &TC,
   }
   Add &= Supported;
 
-  // Msan is not supported on Android
-  if ((Add & SanitizerKind::Memory) && TC.getTriple().isAndroid()) {
-if (DiagnoseErrors) {
-  D.Diag(diag::warn_drv_unsupported_option_for_target)
-  << "-fsanitize=memory" << Triple.str();
-}
-DiagnosedKinds |= SanitizerKind::Memory;
-Add &= ~SanitizerKind::Memory;
-  }
-
   // Test for -fno-rtti + explicit -fsanitizer=vptr before expanding groups
   // so we don't error out if -fno-rtti and -fsanitize=undefined were
   // passed.
diff --git a/clang/lib/Driver/ToolChains/Li

[clang] Warn when using msan on Android (PR #122540)

2025-01-10 Thread Sharjeel Khan via cfe-commits

https://github.com/Sharjeel-Khan created 
https://github.com/llvm/llvm-project/pull/122540

Msan is not supported on Android as mentioned in google/sanitizers#1381. We 
proactively give the warning saying it is unsupported to fix android/ndk#1958.

>From 4a1f619925d0b2e1003ffb69c5bcc2a28aba63c3 Mon Sep 17 00:00:00 2001
From: Sharjeel Khan 
Date: Fri, 10 Jan 2025 20:07:52 +
Subject: [PATCH] Error when using msan on Android

Msan is not supported on Android as mentioned in google/sanitizers#1381.
We proactively give the warning saying it is unsupported to fix 
android/ndk#1958.
---
 clang/lib/Driver/SanitizerArgs.cpp | 10 ++
 clang/test/Driver/fsanitize.c  |  5 +
 2 files changed, 15 insertions(+)

diff --git a/clang/lib/Driver/SanitizerArgs.cpp 
b/clang/lib/Driver/SanitizerArgs.cpp
index a0d6919c6dc8d0..04b39d29e7342f 100644
--- a/clang/lib/Driver/SanitizerArgs.cpp
+++ b/clang/lib/Driver/SanitizerArgs.cpp
@@ -530,6 +530,16 @@ SanitizerArgs::SanitizerArgs(const ToolChain &TC,
   }
   Add &= Supported;
 
+  // Msan is not supported on Android
+  if ((Add & SanitizerKind::Memory) && TC.getTriple().isAndroid()) {
+if (DiagnoseErrors) {
+  D.Diag(diag::warn_drv_unsupported_option_for_target)
+  << "-fsanitize=memory" << Triple.str();
+}
+DiagnosedKinds |= SanitizerKind::Memory;
+Add &= ~SanitizerKind::Memory;
+  }
+
   // Test for -fno-rtti + explicit -fsanitizer=vptr before expanding groups
   // so we don't error out if -fno-rtti and -fsanitize=undefined were
   // passed.
diff --git a/clang/test/Driver/fsanitize.c b/clang/test/Driver/fsanitize.c
index 1d3caec748d77a..55b51ed29b0e65 100644
--- a/clang/test/Driver/fsanitize.c
+++ b/clang/test/Driver/fsanitize.c
@@ -399,6 +399,11 @@
 // RUN: %clang --target=arm-linux-androideabi %s -### 2>&1 | FileCheck %s 
--check-prefix=CHECK-ANDROID-NO-ASAN
 // CHECK-ANDROID-NO-ASAN: "-mrelocation-model" "pic"
 
+// RUN: %clang --target=aarch64-linux-android -fsanitize=memory %s -### 2>&1 | 
FileCheck %s --check-prefix=CHECK-MSAN-ANDROID
+// RUN: %clang --target=i386-linux-android -fsanitize=memory %s -### 2>&1 | 
FileCheck %s --check-prefix=CHECK-MSAN-ANDROID
+// RUN: %clang --target=x86_64-linux-android -fsanitize=memory %s -### 2>&1 | 
FileCheck %s --check-prefix=CHECK-MSAN-ANDROID
+// CHECK-MSAN-ANDROID: ignoring '-fsanitize=memory' option as it is not 
currently supported for target
+
 // RUN: %clang --target=x86_64-linux-gnu %s -fsanitize=undefined -### 2>&1 | 
FileCheck %s --check-prefix=CHECK-RECOVER-UBSAN
 // RUN: %clang --target=x86_64-linux-gnu %s -fsanitize=undefined 
-fsanitize-recover -### 2>&1 | FileCheck %s --check-prefix=CHECK-RECOVER-UBSAN
 // RUN: %clang --target=x86_64-linux-gnu %s -fsanitize=undefined 
-fsanitize-recover=all -### 2>&1 | FileCheck %s 
--check-prefix=CHECK-RECOVER-UBSAN

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] Warn when using msan on Android (PR #122540)

2025-01-10 Thread Sharjeel Khan via cfe-commits

https://github.com/Sharjeel-Khan updated 
https://github.com/llvm/llvm-project/pull/122540

>From c8d2c210a98fe0c96d758d538d50fcc0ca61a9ff Mon Sep 17 00:00:00 2001
From: Sharjeel Khan 
Date: Fri, 10 Jan 2025 20:07:52 +
Subject: [PATCH 1/2] Warn when using msan on Android

Msan is not supported on Android as mentioned in google/sanitizers#1381.
We proactively give the warning saying it is unsupported to fix 
android/ndk#1958.
---
 clang/lib/Driver/SanitizerArgs.cpp | 10 ++
 clang/test/Driver/fsanitize.c  |  5 +
 2 files changed, 15 insertions(+)

diff --git a/clang/lib/Driver/SanitizerArgs.cpp 
b/clang/lib/Driver/SanitizerArgs.cpp
index a0d6919c6dc8d0..04b39d29e7342f 100644
--- a/clang/lib/Driver/SanitizerArgs.cpp
+++ b/clang/lib/Driver/SanitizerArgs.cpp
@@ -530,6 +530,16 @@ SanitizerArgs::SanitizerArgs(const ToolChain &TC,
   }
   Add &= Supported;
 
+  // Msan is not supported on Android
+  if ((Add & SanitizerKind::Memory) && TC.getTriple().isAndroid()) {
+if (DiagnoseErrors) {
+  D.Diag(diag::warn_drv_unsupported_option_for_target)
+  << "-fsanitize=memory" << Triple.str();
+}
+DiagnosedKinds |= SanitizerKind::Memory;
+Add &= ~SanitizerKind::Memory;
+  }
+
   // Test for -fno-rtti + explicit -fsanitizer=vptr before expanding groups
   // so we don't error out if -fno-rtti and -fsanitize=undefined were
   // passed.
diff --git a/clang/test/Driver/fsanitize.c b/clang/test/Driver/fsanitize.c
index 1d3caec748d77a..55b51ed29b0e65 100644
--- a/clang/test/Driver/fsanitize.c
+++ b/clang/test/Driver/fsanitize.c
@@ -399,6 +399,11 @@
 // RUN: %clang --target=arm-linux-androideabi %s -### 2>&1 | FileCheck %s 
--check-prefix=CHECK-ANDROID-NO-ASAN
 // CHECK-ANDROID-NO-ASAN: "-mrelocation-model" "pic"
 
+// RUN: %clang --target=aarch64-linux-android -fsanitize=memory %s -### 2>&1 | 
FileCheck %s --check-prefix=CHECK-MSAN-ANDROID
+// RUN: %clang --target=i386-linux-android -fsanitize=memory %s -### 2>&1 | 
FileCheck %s --check-prefix=CHECK-MSAN-ANDROID
+// RUN: %clang --target=x86_64-linux-android -fsanitize=memory %s -### 2>&1 | 
FileCheck %s --check-prefix=CHECK-MSAN-ANDROID
+// CHECK-MSAN-ANDROID: ignoring '-fsanitize=memory' option as it is not 
currently supported for target
+
 // RUN: %clang --target=x86_64-linux-gnu %s -fsanitize=undefined -### 2>&1 | 
FileCheck %s --check-prefix=CHECK-RECOVER-UBSAN
 // RUN: %clang --target=x86_64-linux-gnu %s -fsanitize=undefined 
-fsanitize-recover -### 2>&1 | FileCheck %s --check-prefix=CHECK-RECOVER-UBSAN
 // RUN: %clang --target=x86_64-linux-gnu %s -fsanitize=undefined 
-fsanitize-recover=all -### 2>&1 | FileCheck %s 
--check-prefix=CHECK-RECOVER-UBSAN

>From 035c7d9936a33926ccca10d9670879d3b913496e Mon Sep 17 00:00:00 2001
From: Sharjeel Khan 
Date: Fri, 10 Jan 2025 22:31:33 +
Subject: [PATCH 2/2] Fixed format for SanitizerArgs

---
 clang/lib/Driver/SanitizerArgs.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/clang/lib/Driver/SanitizerArgs.cpp 
b/clang/lib/Driver/SanitizerArgs.cpp
index 04b39d29e7342f..25bfd5eadae8c9 100644
--- a/clang/lib/Driver/SanitizerArgs.cpp
+++ b/clang/lib/Driver/SanitizerArgs.cpp
@@ -534,7 +534,7 @@ SanitizerArgs::SanitizerArgs(const ToolChain &TC,
   if ((Add & SanitizerKind::Memory) && TC.getTriple().isAndroid()) {
 if (DiagnoseErrors) {
   D.Diag(diag::warn_drv_unsupported_option_for_target)
-  << "-fsanitize=memory" << Triple.str();
+  << "-fsanitize=memory" << Triple.str();
 }
 DiagnosedKinds |= SanitizerKind::Memory;
 Add &= ~SanitizerKind::Memory;

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] Warn when using msan on Android (PR #122540)

2025-01-10 Thread Sharjeel Khan via cfe-commits

https://github.com/Sharjeel-Khan updated 
https://github.com/llvm/llvm-project/pull/122540

>From c8d2c210a98fe0c96d758d538d50fcc0ca61a9ff Mon Sep 17 00:00:00 2001
From: Sharjeel Khan 
Date: Fri, 10 Jan 2025 20:07:52 +
Subject: [PATCH] Warn when using msan on Android

Msan is not supported on Android as mentioned in google/sanitizers#1381.
We proactively give the warning saying it is unsupported to fix 
android/ndk#1958.
---
 clang/lib/Driver/SanitizerArgs.cpp | 10 ++
 clang/test/Driver/fsanitize.c  |  5 +
 2 files changed, 15 insertions(+)

diff --git a/clang/lib/Driver/SanitizerArgs.cpp 
b/clang/lib/Driver/SanitizerArgs.cpp
index a0d6919c6dc8d0..04b39d29e7342f 100644
--- a/clang/lib/Driver/SanitizerArgs.cpp
+++ b/clang/lib/Driver/SanitizerArgs.cpp
@@ -530,6 +530,16 @@ SanitizerArgs::SanitizerArgs(const ToolChain &TC,
   }
   Add &= Supported;
 
+  // Msan is not supported on Android
+  if ((Add & SanitizerKind::Memory) && TC.getTriple().isAndroid()) {
+if (DiagnoseErrors) {
+  D.Diag(diag::warn_drv_unsupported_option_for_target)
+  << "-fsanitize=memory" << Triple.str();
+}
+DiagnosedKinds |= SanitizerKind::Memory;
+Add &= ~SanitizerKind::Memory;
+  }
+
   // Test for -fno-rtti + explicit -fsanitizer=vptr before expanding groups
   // so we don't error out if -fno-rtti and -fsanitize=undefined were
   // passed.
diff --git a/clang/test/Driver/fsanitize.c b/clang/test/Driver/fsanitize.c
index 1d3caec748d77a..55b51ed29b0e65 100644
--- a/clang/test/Driver/fsanitize.c
+++ b/clang/test/Driver/fsanitize.c
@@ -399,6 +399,11 @@
 // RUN: %clang --target=arm-linux-androideabi %s -### 2>&1 | FileCheck %s 
--check-prefix=CHECK-ANDROID-NO-ASAN
 // CHECK-ANDROID-NO-ASAN: "-mrelocation-model" "pic"
 
+// RUN: %clang --target=aarch64-linux-android -fsanitize=memory %s -### 2>&1 | 
FileCheck %s --check-prefix=CHECK-MSAN-ANDROID
+// RUN: %clang --target=i386-linux-android -fsanitize=memory %s -### 2>&1 | 
FileCheck %s --check-prefix=CHECK-MSAN-ANDROID
+// RUN: %clang --target=x86_64-linux-android -fsanitize=memory %s -### 2>&1 | 
FileCheck %s --check-prefix=CHECK-MSAN-ANDROID
+// CHECK-MSAN-ANDROID: ignoring '-fsanitize=memory' option as it is not 
currently supported for target
+
 // RUN: %clang --target=x86_64-linux-gnu %s -fsanitize=undefined -### 2>&1 | 
FileCheck %s --check-prefix=CHECK-RECOVER-UBSAN
 // RUN: %clang --target=x86_64-linux-gnu %s -fsanitize=undefined 
-fsanitize-recover -### 2>&1 | FileCheck %s --check-prefix=CHECK-RECOVER-UBSAN
 // RUN: %clang --target=x86_64-linux-gnu %s -fsanitize=undefined 
-fsanitize-recover=all -### 2>&1 | FileCheck %s 
--check-prefix=CHECK-RECOVER-UBSAN

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Driver] Warn when using msan on Android (PR #122540)

2025-01-11 Thread Sharjeel Khan via cfe-commits

Sharjeel-Khan wrote:

I can do it by moving these checks into Toolchains/Linux.cpp so it triggers 
that code: 
https://github.com/llvm/llvm-project/blob/2914ba1c01fdc496082197abf7cd35e2af526634/clang/lib/Driver/ToolChains/Linux.cpp#L809-L865.
Is this a good solution?

https://github.com/llvm/llvm-project/pull/122540
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Driver][ARM] Fix hardcoding of NEON FPU for armv8 (PR #122969)

2025-01-14 Thread Sharjeel Khan via cfe-commits

https://github.com/Sharjeel-Khan edited 
https://github.com/llvm/llvm-project/pull/122969
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Driver][ARM] Fix hardcoding of NEON FPU for armv8 (PR #122969)

2025-01-14 Thread Sharjeel Khan via cfe-commits

https://github.com/Sharjeel-Khan updated 
https://github.com/llvm/llvm-project/pull/122969

>From ebbb016b161165fff8335213e89dbbf8135a5329 Mon Sep 17 00:00:00 2001
From: Sharjeel Khan 
Date: Tue, 14 Jan 2025 19:02:31 +
Subject: [PATCH] Fix hardcoding of NEON FPU for armv8

Android hardcoded NEON FPU for ARM version ">=" 7. This hardcoding was
pessimizing ARMv8 code as it was locking it to NEON FPU instead of
something more powerful.
---
 clang/lib/Driver/ToolChains/Arch/ARM.cpp |  2 +-
 clang/test/Driver/arm-mfpu.c | 19 +++
 2 files changed, 20 insertions(+), 1 deletion(-)

diff --git a/clang/lib/Driver/ToolChains/Arch/ARM.cpp 
b/clang/lib/Driver/ToolChains/Arch/ARM.cpp
index b8181ce6dc012a..2fb16d2e41320f 100644
--- a/clang/lib/Driver/ToolChains/Arch/ARM.cpp
+++ b/clang/lib/Driver/ToolChains/Arch/ARM.cpp
@@ -647,7 +647,7 @@ llvm::ARM::FPUKind arm::getARMTargetFeatures(const Driver 
&D,
 (void)getARMFPUFeatures(D, WaFPU->first, Args, WaFPU->second, Features);
   } else if (FPUArg) {
 FPUKind = getARMFPUFeatures(D, FPUArg, Args, FPUArg->getValue(), Features);
-  } else if (Triple.isAndroid() && getARMSubArchVersionNumber(Triple) >= 7) {
+  } else if (Triple.isAndroid() && getARMSubArchVersionNumber(Triple) == 7) {
 const char *AndroidFPU = "neon";
 FPUKind = llvm::ARM::parseFPU(AndroidFPU);
 if (!llvm::ARM::getFPUFeatures(FPUKind, Features))
diff --git a/clang/test/Driver/arm-mfpu.c b/clang/test/Driver/arm-mfpu.c
index 1b174be388124d..babfa16741ad70 100644
--- a/clang/test/Driver/arm-mfpu.c
+++ b/clang/test/Driver/arm-mfpu.c
@@ -409,6 +409,25 @@
 // CHECK-ARM7-ANDROID-FP-DEFAULT-NOT: "-target-feature" "+sha2"
 // CHECK-ARM7-ANDROID-FP-DEFAULT-NOT: "-target-feature" "+aes"
 
+// RUN: %clang -target armv8-linux-androideabi21 %s -### -c 2>&1 \
+// RUN:   | FileCheck --check-prefix=CHECK-ARM8-ANDROID-FP-DEFAULT %s
+// CHECK-ARM8-ANDROID-FP-DEFAULT-DAG: "-target-feature" "+soft-float-abi"
+// CHECK-ARM8-ANDROID-FP-DEFAULT-DAG: "-target-feature" "+vfp3"
+// CHECK-ARM8-ANDROID-FP-DEFAULT-DAG: "-target-feature" "+vfp4"
+// CHECK-ARM8-ANDROID-FP-DEFAULT-DAG: "-target-feature" "+fp-armv8"
+// CHECK-ARM8-ANDROID-FP-DEFAULT-DAG: "-target-feature" "+aes"
+// CHECK-ARM8-ANDROID-FP-DEFAULT-DAG: "-target-feature" "+sha2"
+// CHECK-ARM8-ANDROID-FP-DEFAULT-NOT: "-target-feature" "+neon"
+
+// RUN: %clang -target armv8-linux-android %s -### -c 2>&1 \
+// RUN:   | FileCheck --check-prefix=CHECK-ARM8-ANDROID-DEFAULT %s
+// CHECK-ARM8-ANDROID-DEFAULT-DAG: "-target-feature" "+vfp3"
+// CHECK-ARM8-ANDROID-DEFAULT-DAG: "-target-feature" "+vfp4"
+// CHECK-ARM8-ANDROID-DEFAULT-DAG: "-target-feature" "+fp-armv8"
+// CHECK-ARM8-ANDROID-DEFAULT-DAG: "-target-feature" "+aes"
+// CHECK-ARM8-ANDROID-DEFAULT-DAG: "-target-feature" "+sha2"
+// CHECK-ARM8-ANDROID-DEFAULT-NOT: "-target-feature" "+neon"
+
 // RUN: %clang -target armv7-linux-androideabi21 %s -mfpu=vfp3-d16 -### -c 
2>&1 \
 // RUN:   | FileCheck --check-prefix=CHECK-ARM7-ANDROID-FP-D16 %s
 // CHECK-ARM7-ANDROID-FP-D16-NOT: "-target-feature" "+soft-float"

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Driver] Fix hardcoding of NEON FPU for armv8 (PR #122969)

2025-01-14 Thread Sharjeel Khan via cfe-commits

https://github.com/Sharjeel-Khan created 
https://github.com/llvm/llvm-project/pull/122969

Android hardcoded NEON FPU for armv7 that is now causing issues with 32-bit 
builds for armv8.


>From 1115ca7a28c092d4fc68ef5481cc58a1655d458d Mon Sep 17 00:00:00 2001
From: Sharjeel Khan 
Date: Tue, 14 Jan 2025 19:02:31 +
Subject: [PATCH] Fix hardcoding of NEON FPU for armv8

Android hardcoded NEON FPU for armv7 that is now causing issues with
32-bit builds for armv8.
---
 clang/lib/Driver/ToolChains/Arch/ARM.cpp |  2 +-
 clang/test/Driver/arm-mfpu.c | 19 +++
 2 files changed, 20 insertions(+), 1 deletion(-)

diff --git a/clang/lib/Driver/ToolChains/Arch/ARM.cpp 
b/clang/lib/Driver/ToolChains/Arch/ARM.cpp
index b8181ce6dc012a..2fb16d2e41320f 100644
--- a/clang/lib/Driver/ToolChains/Arch/ARM.cpp
+++ b/clang/lib/Driver/ToolChains/Arch/ARM.cpp
@@ -647,7 +647,7 @@ llvm::ARM::FPUKind arm::getARMTargetFeatures(const Driver 
&D,
 (void)getARMFPUFeatures(D, WaFPU->first, Args, WaFPU->second, Features);
   } else if (FPUArg) {
 FPUKind = getARMFPUFeatures(D, FPUArg, Args, FPUArg->getValue(), Features);
-  } else if (Triple.isAndroid() && getARMSubArchVersionNumber(Triple) >= 7) {
+  } else if (Triple.isAndroid() && getARMSubArchVersionNumber(Triple) == 7) {
 const char *AndroidFPU = "neon";
 FPUKind = llvm::ARM::parseFPU(AndroidFPU);
 if (!llvm::ARM::getFPUFeatures(FPUKind, Features))
diff --git a/clang/test/Driver/arm-mfpu.c b/clang/test/Driver/arm-mfpu.c
index 1b174be388124d..babfa16741ad70 100644
--- a/clang/test/Driver/arm-mfpu.c
+++ b/clang/test/Driver/arm-mfpu.c
@@ -409,6 +409,25 @@
 // CHECK-ARM7-ANDROID-FP-DEFAULT-NOT: "-target-feature" "+sha2"
 // CHECK-ARM7-ANDROID-FP-DEFAULT-NOT: "-target-feature" "+aes"
 
+// RUN: %clang -target armv8-linux-androideabi21 %s -### -c 2>&1 \
+// RUN:   | FileCheck --check-prefix=CHECK-ARM8-ANDROID-FP-DEFAULT %s
+// CHECK-ARM8-ANDROID-FP-DEFAULT-DAG: "-target-feature" "+soft-float-abi"
+// CHECK-ARM8-ANDROID-FP-DEFAULT-DAG: "-target-feature" "+vfp3"
+// CHECK-ARM8-ANDROID-FP-DEFAULT-DAG: "-target-feature" "+vfp4"
+// CHECK-ARM8-ANDROID-FP-DEFAULT-DAG: "-target-feature" "+fp-armv8"
+// CHECK-ARM8-ANDROID-FP-DEFAULT-DAG: "-target-feature" "+aes"
+// CHECK-ARM8-ANDROID-FP-DEFAULT-DAG: "-target-feature" "+sha2"
+// CHECK-ARM8-ANDROID-FP-DEFAULT-NOT: "-target-feature" "+neon"
+
+// RUN: %clang -target armv8-linux-android %s -### -c 2>&1 \
+// RUN:   | FileCheck --check-prefix=CHECK-ARM8-ANDROID-DEFAULT %s
+// CHECK-ARM8-ANDROID-DEFAULT-DAG: "-target-feature" "+vfp3"
+// CHECK-ARM8-ANDROID-DEFAULT-DAG: "-target-feature" "+vfp4"
+// CHECK-ARM8-ANDROID-DEFAULT-DAG: "-target-feature" "+fp-armv8"
+// CHECK-ARM8-ANDROID-DEFAULT-DAG: "-target-feature" "+aes"
+// CHECK-ARM8-ANDROID-DEFAULT-DAG: "-target-feature" "+sha2"
+// CHECK-ARM8-ANDROID-DEFAULT-NOT: "-target-feature" "+neon"
+
 // RUN: %clang -target armv7-linux-androideabi21 %s -mfpu=vfp3-d16 -### -c 
2>&1 \
 // RUN:   | FileCheck --check-prefix=CHECK-ARM7-ANDROID-FP-D16 %s
 // CHECK-ARM7-ANDROID-FP-D16-NOT: "-target-feature" "+soft-float"

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Driver] Fix hardcoding of NEON FPU for armv8 (PR #122969)

2025-01-14 Thread Sharjeel Khan via cfe-commits

https://github.com/Sharjeel-Khan edited 
https://github.com/llvm/llvm-project/pull/122969
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Driver] Fix hardcoding of NEON FPU for armv8 (PR #122969)

2025-01-14 Thread Sharjeel Khan via cfe-commits

https://github.com/Sharjeel-Khan edited 
https://github.com/llvm/llvm-project/pull/122969
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Driver][ARM] Change Android's NEON FPU hardcoding to "== 7" as it pessimizes future ArmV8 code (PR #122969)

2025-01-15 Thread Sharjeel Khan via cfe-commits

https://github.com/Sharjeel-Khan edited 
https://github.com/llvm/llvm-project/pull/122969
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Driver][ARM] Change Android's NEON FPU hardcoding to "== 7" as it pessimizes future ArmV8 code (PR #122969)

2025-01-15 Thread Sharjeel Khan via cfe-commits

Sharjeel-Khan wrote:

Thanks, I updated the PR description. Do you mind merging it @DavidSpickett? I 
still do not have commit access.  

https://github.com/llvm/llvm-project/pull/122969
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Driver][ARM] Change Android's NEON FPU hardcoding to "== 7" as it pessimizes future ArmV8 code (PR #122969)

2025-01-15 Thread Sharjeel Khan via cfe-commits

https://github.com/Sharjeel-Khan updated 
https://github.com/llvm/llvm-project/pull/122969

>From ebbb016b161165fff8335213e89dbbf8135a5329 Mon Sep 17 00:00:00 2001
From: Sharjeel Khan 
Date: Tue, 14 Jan 2025 19:02:31 +
Subject: [PATCH] Fix hardcoding of NEON FPU for armv8

Android hardcoded NEON FPU for ARM version ">=" 7. This hardcoding was
pessimizing ARMv8 code as it was locking it to NEON FPU instead of
something more powerful.
---
 clang/lib/Driver/ToolChains/Arch/ARM.cpp |  2 +-
 clang/test/Driver/arm-mfpu.c | 19 +++
 2 files changed, 20 insertions(+), 1 deletion(-)

diff --git a/clang/lib/Driver/ToolChains/Arch/ARM.cpp 
b/clang/lib/Driver/ToolChains/Arch/ARM.cpp
index b8181ce6dc012a..2fb16d2e41320f 100644
--- a/clang/lib/Driver/ToolChains/Arch/ARM.cpp
+++ b/clang/lib/Driver/ToolChains/Arch/ARM.cpp
@@ -647,7 +647,7 @@ llvm::ARM::FPUKind arm::getARMTargetFeatures(const Driver 
&D,
 (void)getARMFPUFeatures(D, WaFPU->first, Args, WaFPU->second, Features);
   } else if (FPUArg) {
 FPUKind = getARMFPUFeatures(D, FPUArg, Args, FPUArg->getValue(), Features);
-  } else if (Triple.isAndroid() && getARMSubArchVersionNumber(Triple) >= 7) {
+  } else if (Triple.isAndroid() && getARMSubArchVersionNumber(Triple) == 7) {
 const char *AndroidFPU = "neon";
 FPUKind = llvm::ARM::parseFPU(AndroidFPU);
 if (!llvm::ARM::getFPUFeatures(FPUKind, Features))
diff --git a/clang/test/Driver/arm-mfpu.c b/clang/test/Driver/arm-mfpu.c
index 1b174be388124d..babfa16741ad70 100644
--- a/clang/test/Driver/arm-mfpu.c
+++ b/clang/test/Driver/arm-mfpu.c
@@ -409,6 +409,25 @@
 // CHECK-ARM7-ANDROID-FP-DEFAULT-NOT: "-target-feature" "+sha2"
 // CHECK-ARM7-ANDROID-FP-DEFAULT-NOT: "-target-feature" "+aes"
 
+// RUN: %clang -target armv8-linux-androideabi21 %s -### -c 2>&1 \
+// RUN:   | FileCheck --check-prefix=CHECK-ARM8-ANDROID-FP-DEFAULT %s
+// CHECK-ARM8-ANDROID-FP-DEFAULT-DAG: "-target-feature" "+soft-float-abi"
+// CHECK-ARM8-ANDROID-FP-DEFAULT-DAG: "-target-feature" "+vfp3"
+// CHECK-ARM8-ANDROID-FP-DEFAULT-DAG: "-target-feature" "+vfp4"
+// CHECK-ARM8-ANDROID-FP-DEFAULT-DAG: "-target-feature" "+fp-armv8"
+// CHECK-ARM8-ANDROID-FP-DEFAULT-DAG: "-target-feature" "+aes"
+// CHECK-ARM8-ANDROID-FP-DEFAULT-DAG: "-target-feature" "+sha2"
+// CHECK-ARM8-ANDROID-FP-DEFAULT-NOT: "-target-feature" "+neon"
+
+// RUN: %clang -target armv8-linux-android %s -### -c 2>&1 \
+// RUN:   | FileCheck --check-prefix=CHECK-ARM8-ANDROID-DEFAULT %s
+// CHECK-ARM8-ANDROID-DEFAULT-DAG: "-target-feature" "+vfp3"
+// CHECK-ARM8-ANDROID-DEFAULT-DAG: "-target-feature" "+vfp4"
+// CHECK-ARM8-ANDROID-DEFAULT-DAG: "-target-feature" "+fp-armv8"
+// CHECK-ARM8-ANDROID-DEFAULT-DAG: "-target-feature" "+aes"
+// CHECK-ARM8-ANDROID-DEFAULT-DAG: "-target-feature" "+sha2"
+// CHECK-ARM8-ANDROID-DEFAULT-NOT: "-target-feature" "+neon"
+
 // RUN: %clang -target armv7-linux-androideabi21 %s -mfpu=vfp3-d16 -### -c 
2>&1 \
 // RUN:   | FileCheck --check-prefix=CHECK-ARM7-ANDROID-FP-D16 %s
 // CHECK-ARM7-ANDROID-FP-D16-NOT: "-target-feature" "+soft-float"

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Driver][ARM] Change Android's NEON FPU hardcoding to "== 7" as it pessimizes future ArmV8 code (PR #122969)

2025-01-15 Thread Sharjeel Khan via cfe-commits

https://github.com/Sharjeel-Khan edited 
https://github.com/llvm/llvm-project/pull/122969
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits