-
Notifications
You must be signed in to change notification settings - Fork 734
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[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
- Loading branch information
1 parent
acc8a33
commit b9d079d
Showing
4 changed files
with
40 additions
and
60 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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; | ||
} |
58 changes: 9 additions & 49 deletions
58
clang/test/Driver/fsplit-machine-functions-with-cuda-nvptx.c
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters