shenhan updated this revision to Diff 551630.
shenhan marked 3 inline comments as done.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D158231/new/
https://reviews.llvm.org/D158231
Files:
clang/test/CodeGen/fsplit-machine-functions.c
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
Index: llvm/test/CodeGen/Generic/machine-function-splitter.ll
===================================================================
--- llvm/test/CodeGen/Generic/machine-function-splitter.ll
+++ llvm/test/CodeGen/Generic/machine-function-splitter.ll
@@ -16,10 +16,11 @@
;; 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: -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.
Index: clang/test/Driver/fsplit-machine-functions.c
===================================================================
--- clang/test/Driver/fsplit-machine-functions.c
+++ 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"
Index: clang/test/Driver/fsplit-machine-functions-with-cuda-nvptx.c
===================================================================
--- clang/test/Driver/fsplit-machine-functions-with-cuda-nvptx.c
+++ clang/test/Driver/fsplit-machine-functions-with-cuda-nvptx.c
@@ -1,68 +1,29 @@
// 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"
Index: clang/test/CodeGen/fsplit-machine-functions.c
===================================================================
--- /dev/null
+++ 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;
+}
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits