[llvm] b9d079d - [clang][test] Refine clang machine-function-split tests.

Han Shen via llvm-commits llvm-commits at lists.llvm.org
Fri Aug 18 18:06:36 PDT 2023


Author: Han Shen
Date: 2023-08-18T18:05:47-07:00
New Revision: b9d079d6188b50730e0a67267b7fee36008435ce

URL: https://github.com/llvm/llvm-project/commit/b9d079d6188b50730e0a67267b7fee36008435ce
DIFF: https://github.com/llvm/llvm-project/commit/b9d079d6188b50730e0a67267b7fee36008435ce.diff

LOG: [clang][test] Refine clang machine-function-split tests.

This CL includes two changes:
1. moved clang backend-warnings test cases from Driver/ to CodeGen/.
2. removed multiple `cd "$(dirname "%t")"` and replaced with `-o %t`.

Reviewed By: maskray (Fangrui Song)
Differential Revision: https://reviews.llvm.org/D157565

Added: 
    clang/test/CodeGen/fsplit-machine-functions.c

Modified: 
    clang/test/Driver/fsplit-machine-functions-with-cuda-nvptx.c
    clang/test/Driver/fsplit-machine-functions.c
    llvm/test/CodeGen/Generic/machine-function-splitter.ll

Removed: 
    


################################################################################
diff  --git a/clang/test/CodeGen/fsplit-machine-functions.c b/clang/test/CodeGen/fsplit-machine-functions.c
new file mode 100644
index 00000000000000..dd8e4ff333f20d
--- /dev/null
+++ b/clang/test/CodeGen/fsplit-machine-functions.c
@@ -0,0 +1,25 @@
+// REQUIRES: x86-registered-target
+// REQUIRES: arm-registered-target
+// REQUIRES: nvptx-registered-target
+
+// Check -fsplit-machine-functions passed to cuda device causes a warning.
+// RUN: %clang_cc1 -triple nvptx-unknown-unknown -target-cpu sm_70 \
+// RUN:     -fcuda-is-device -x cuda -fsplit-machine-functions -S %s \
+// RUN:     -o %t 2>&1 | FileCheck %s --check-prefix=MFS1
+// MFS1: warning: -fsplit-machine-functions is not valid for nvptx
+
+// Check -fsplit-machine-functions passed to X86 does not cause any warning.
+// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -fsplit-machine-functions \
+// RUN:     -o %t -S %s && { echo "empty output causes FileCheck to fail" ; } \
+// RUN:     2>&1 | FileCheck %s --check-prefix=MFS2
+// MFS2-NOT: warning:
+
+// Check -fsplit-machine-functions passed to ARM does cause a warning.
+// RUN: %clang_cc1 -triple arm-unknown-linux-gnueabi \
+// RUN:     -fsplit-machine-functions -S %s -o %t \
+// RUN:     2>&1 | FileCheck -check-prefix=MFS3 %s
+// MFS3: warning: -fsplit-machine-functions is not valid for arm
+
+int foo() {
+  return 13;
+}

diff  --git a/clang/test/Driver/fsplit-machine-functions-with-cuda-nvptx.c b/clang/test/Driver/fsplit-machine-functions-with-cuda-nvptx.c
index f2b09e13d80b68..aab1179b3e731e 100644
--- a/clang/test/Driver/fsplit-machine-functions-with-cuda-nvptx.c
+++ b/clang/test/Driver/fsplit-machine-functions-with-cuda-nvptx.c
@@ -1,68 +1,28 @@
-// REQUIRES: system-linux
 // REQUIRES: x86-registered-target
 // REQUIRES: nvptx-registered-target
-// REQUIRES: shell
 
 // Check that -fsplit-machine-functions is passed to both x86 and cuda
 // compilation and does not cause driver error.
-// RUN:   cd "$(dirname "%t")" ; \
-// RUN:   %clang -### --target=x86_64-unknown-linux-gnu -nogpulib -nogpuinc \
+// RUN: %clang -### --target=x86_64-unknown-linux-gnu -nogpulib -nogpuinc \
 // RUN:     --cuda-gpu-arch=sm_70 -x cuda -fsplit-machine-functions -S %s \
 // RUN:     2>&1 | FileCheck %s --check-prefix=MFS1
 // MFS1: "-target-cpu" "x86-64"{{.*}}"-fsplit-machine-functions"
 // MFS1: "-target-cpu" "sm_70"{{.*}}"-fsplit-machine-functions"
 
-// Check that -fsplit-machine-functions is passed to cuda and it
-// causes a warning.
-// RUN:   cd "$(dirname "%t")" ; \
-// RUN:   %clang --target=x86_64-unknown-linux-gnu -nogpulib -nogpuinc \
-// RUN:     --cuda-gpu-arch=sm_70 -x cuda -fsplit-machine-functions -S %s \
-// RUN:     2>&1 | FileCheck %s --check-prefix=MFS2
-// MFS2: warning: -fsplit-machine-functions is not valid for nvptx
-
 // Check that -Xarch_host -fsplit-machine-functions is passed only to
 // native compilation.
-// RUN:   cd "$(dirname "%t")" ; \
-// RUN:   %clang -### --target=x86_64-unknown-linux-gnu -nogpulib -nogpuinc \
+// RUN: %clang -### --target=x86_64-unknown-linux-gnu -nogpulib -nogpuinc \
 // RUN:     --cuda-gpu-arch=sm_70 -x cuda -Xarch_host \
 // RUN:     -fsplit-machine-functions -S %s \
-// RUN:     2>&1 | FileCheck %s --check-prefix=MFS3
-// MFS3:     "-target-cpu" "x86-64"{{.*}}"-fsplit-machine-functions"
-// MFS3-NOT: "-target-cpu" "sm_70"{{.*}}"-fsplit-machine-functions"
-
-// Check that -Xarch_host -fsplit-machine-functions does not cause any warning.
-// RUN:   cd "$(dirname "%t")" ; \
-// RUN:   %clang --target=x86_64-unknown-linux-gnu -nogpulib -nogpuinc \
-// RUN      --cuda-gpu-arch=sm_70 -x cuda -Xarch_host \
-// RUN      -fsplit-machine-functions -S %s || { echo \
-// RUN      "warning: -fsplit-machine-functions is not valid for" ; } \
-// RUN      2>&1 | FileCheck %s --check-prefix=MFS4
-// MFS4-NOT: warning: -fsplit-machine-functions is not valid for
-
-// Check that -Xarch_device -fsplit-machine-functions does cause the warning.
-// RUN:   cd "$(dirname "%t")" ; \
-// RUN:   %clang --target=x86_64-unknown-linux-gnu -nogpulib -nogpuinc \
-// RUN:     --cuda-gpu-arch=sm_70 -x cuda -Xarch_device \
-// RUN:     -fsplit-machine-functions -S %s 2>&1 | \
-// RUN:     FileCheck %s --check-prefix=MFS5
-// MFS5: warning: -fsplit-machine-functions is not valid for
+// RUN:     2>&1 | FileCheck %s --check-prefix=MFS2
+// MFS2:     "-target-cpu" "x86-64"{{.*}}"-fsplit-machine-functions"
+// MFS2-NOT: "-target-cpu" "sm_70"{{.*}}"-fsplit-machine-functions"
 
 // Check that -fsplit-machine-functions -Xarch_device
 // -fno-split-machine-functions only passes MFS to x86
-// RUN:   cd "$(dirname "%t")" ; \
-// RUN:   %clang -### --target=x86_64-unknown-linux-gnu -nogpulib -nogpuinc \
-// RUN:     --cuda-gpu-arch=sm_70 -x cuda -fsplit-machine-functions \
-// RUN:     -Xarch_device -fno-split-machine-functions -S %s \
-// RUN:     2>&1 | FileCheck %s --check-prefix=MFS6
-// MFS6:     "-target-cpu" "x86-64"{{.*}}"-fsplit-machine-functions"
-// MFS6-NOT: "-target-cpu" "sm_70"{{.*}}"-fsplit-machine-functions"
-
-// Check that -fsplit-machine-functions -Xarch_device
-// -fno-split-machine-functions has no warnings
-// RUN:   cd "$(dirname "%t")" ; \
-// RUN:   %clang --target=x86_64-unknown-linux-gnu -nogpulib -nogpuinc \
+// RUN: %clang -### --target=x86_64-unknown-linux-gnu -nogpulib -nogpuinc \
 // RUN:     --cuda-gpu-arch=sm_70 -x cuda -fsplit-machine-functions \
 // RUN:     -Xarch_device -fno-split-machine-functions -S %s \
-// RUN:     || { echo "warning: -fsplit-machine-functions is not valid for"; } \
-// RUN:     2>&1 | FileCheck %s --check-prefix=MFS7
-// MFS7-NOT: warning: -fsplit-machine-functions is not valid for
+// RUN:     2>&1 | FileCheck %s --check-prefix=MFS3
+// MFS3:     "-target-cpu" "x86-64"{{.*}}"-fsplit-machine-functions"
+// MFS3-NOT: "-target-cpu" "sm_70"{{.*}}"-fsplit-machine-functions"

diff  --git a/clang/test/Driver/fsplit-machine-functions.c b/clang/test/Driver/fsplit-machine-functions.c
index 4ba4e52fb79484..189689f4097656 100644
--- a/clang/test/Driver/fsplit-machine-functions.c
+++ b/clang/test/Driver/fsplit-machine-functions.c
@@ -1,10 +1,5 @@
-// REQUIRES: arm-registered-target
+// RUN: %clang -### --target=x86_64 -fsplit-machine-functions %s -c 2>&1 | FileCheck -check-prefix=CHECK_OPT %s
+// RUN: %clang -### --target=x86_64 -fprofile-use=default.profdata -fsplit-machine-functions -fno-split-machine-functions %s -c 2>&1 | FileCheck -check-prefix=CHECK_NOOPT %s
 
-// RUN: %clang -### -target x86_64 -fprofile-use=default.profdata -fsplit-machine-functions %s -c -o %t.o 2>&1 | FileCheck -check-prefix=CHECK-OPT %s
-// RUN: %clang -### -target x86_64 -fsplit-machine-functions %s -c -o %t.o 2>&1 | FileCheck -check-prefix=CHECK-OPT %s
-// RUN: %clang -### -target x86_64 -fprofile-use=default.profdata -fsplit-machine-functions -fno-split-machine-functions %s -c -o %t.o 2>&1 | FileCheck -check-prefix=CHECK-NOOPT %s
-// RUN: %clang -c -target arm-unknown-linux-gnueabi -fsplit-machine-functions %s -o %t.o 2>&1 | FileCheck -check-prefix=CHECK-TRIPLE %s
-
-// CHECK-OPT:       "-fsplit-machine-functions"
-// CHECK-NOOPT-NOT: "-fsplit-machine-functions"
-// CHECK-TRIPLE:    warning: -fsplit-machine-functions is not valid for arm
+// CHECK_OPT:        "-fsplit-machine-functions"
+// CHECK_NOOPT-NOT:  "-fsplit-machine-functions"

diff  --git a/llvm/test/CodeGen/Generic/machine-function-splitter.ll b/llvm/test/CodeGen/Generic/machine-function-splitter.ll
index 03934434f3ceb7..3003240c373ea0 100644
--- a/llvm/test/CodeGen/Generic/machine-function-splitter.ll
+++ b/llvm/test/CodeGen/Generic/machine-function-splitter.ll
@@ -16,10 +16,10 @@
 
 ;; Check that MFS is on for X86 targets.
 ; MFS_ON: Machine Function Splitter Transformation
-; MFS_ON_NO: warning: -fsplit-machine-functions is not valid for
+; MFS_ON-NOT: warning:
 ;; Check that MFS is not on for non-X86 targets.
 ; MFS_OFF: warning: -fsplit-machine-functions is not valid for
-; MFS_OFF_NO: Machine Function Splitter Transformation
+; MFS_OFF-NOT: Machine Function Splitter Transformation
 
 define void @foo1(i1 zeroext %0) nounwind !prof !14 !section_prefix !15 {
 ;; Check that cold block is moved to .text.split.


        


More information about the llvm-commits mailing list