|
1 |
| -// KEEP-ALL: "-mdisable-fp-elim" |
2 |
| -// KEEP-ALL-NOT: "-momit-leaf-frame-pointer" |
| 1 | +// For these next two tests when optimized we should omit the leaf frame |
| 2 | +// pointer, for unoptimized we should have a leaf frame pointer. |
| 3 | +// RUN: %clang -### -target i386-pc-linux-gnu -S -O1 %s 2>&1 | \ |
| 4 | +// RUN: FileCheck --check-prefix=LINUX-OPT %s |
| 5 | +// LINUX-OPT: "-momit-leaf-frame-pointer" |
3 | 6 |
|
4 |
| -// KEEP-NON-LEAF: "-mdisable-fp-elim" |
5 |
| -// KEEP-NON-LEAF: "-momit-leaf-frame-pointer" |
6 |
| - |
7 |
| -// KEEP-NONE-NOT: "-mdisable-fp-elim" |
8 |
| -// KEEP-NONE-NOT: "-momit-leaf-frame-pointer" |
9 |
| - |
10 |
| -// On Linux x86, omit frame pointer when optimization is enabled. |
11 |
| -// RUN: %clang -### -target i386-linux -S -fomit-frame-pointer %s 2>&1 | \ |
12 |
| -// RUN: FileCheck --check-prefix=KEEP-NONE %s |
13 |
| -// RUN: %clang -### -target i386-linux -S -O1 %s 2>&1 | \ |
14 |
| -// RUN: FileCheck --check-prefix=KEEP-NONE %s |
15 |
| - |
16 |
| -// -fno-omit-frame-pointer or -pg disables frame pointer omission. |
17 |
| -// RUN: %clang -### -target i386-linux -S %s 2>&1 | \ |
18 |
| -// RUN: FileCheck --check-prefix=KEEP-ALL %s |
19 |
| -// RUN: %clang -### -target i386-linux -S -O1 -fno-omit-frame-pointer %s 2>&1 | \ |
20 |
| -// RUN: FileCheck --check-prefix=KEEP-ALL %s |
21 |
| -// RUN: %clang -### -target i386-linux -S -O1 -pg %s 2>&1 | \ |
22 |
| -// RUN: FileCheck --check-prefix=KEEP-ALL %s |
23 |
| - |
24 |
| -// -momit-leaf-frame-pointer omits leaf frame pointer. |
25 |
| -// -fno-omit-frame-pointer loses out to -momit-leaf-frame-pointer. |
26 |
| -// RUN: %clang -### -target i386 -S -momit-leaf-frame-pointer %s 2>&1 | \ |
27 |
| -// RUN: FileCheck --check-prefix=KEEP-NON-LEAF %s |
28 |
| -// RUN: %clang -### -target i386-linux -S -O1 -fno-omit-frame-pointer -momit-leaf-frame-pointer %s 2>&1 | \ |
29 |
| -// RUN: FileCheck --check-prefix=KEEP-NON-LEAF %s |
30 |
| -// RUN: %clang -### -target i386-linux -S -O1 -momit-leaf-frame-pointer %s 2>&1 | \ |
31 |
| -// RUN: FileCheck --check-prefix=KEEP-NONE %s |
32 |
| - |
33 |
| -// Explicit or default -fomit-frame-pointer wins over -mno-omit-leaf-frame-pointer. |
34 |
| -// RUN: %clang -### -target i386 -S %s -fomit-frame-pointer -mno-omit-leaf-frame-pointer 2>&1 | \ |
35 |
| -// RUN: FileCheck --check-prefix=KEEP-NONE %s |
36 |
| -// RUN: %clang -### -target i386-linux -S %s -O1 -mno-omit-leaf-frame-pointer 2>&1 | \ |
37 |
| -// RUN: FileCheck --check-prefix=KEEP-NONE %s |
38 |
| - |
39 |
| -// -pg -fomit-frame-pointer => error. |
40 |
| -// RUN: %clang -### -S -fomit-frame-pointer -pg %s 2>&1 | FileCheck -check-prefix=CHECK-NO-MIX-OMIT-FP-PG %s |
41 |
| -// RUN: %clang -### -S -fomit-frame-pointer -fno-omit-frame-pointer -pg %s 2>&1 | FileCheck -check-prefix=CHECK-MIX-NO-OMIT-FP-PG %s |
42 |
| -// CHECK-NO-MIX-OMIT-FP-PG: '-fomit-frame-pointer' not allowed with '-pg' |
43 |
| -// CHECK-MIX-NO-OMIT-FP-PG-NOT: '-fomit-frame-pointer' not allowed with '-pg' |
| 7 | +// RUN: %clang -### -target i386-pc-linux-gnu -S %s 2>&1 | \ |
| 8 | +// RUN: FileCheck --check-prefix=LINUX %s |
| 9 | +// LINUX-NOT: "-momit-leaf-frame-pointer" |
44 | 10 |
|
45 | 11 | // CloudABI follows the same rules as Linux.
|
46 | 12 | // RUN: %clang -### -target x86_64-unknown-cloudabi -S -O1 %s 2>&1 | \
|
47 |
| -// RUN: FileCheck --check-prefix=KEEP-NONE %s |
| 13 | +// RUN: FileCheck --check-prefix=CLOUDABI-OPT %s |
| 14 | +// CLOUDABI-OPT: "-momit-leaf-frame-pointer" |
48 | 15 |
|
49 | 16 | // RUN: %clang -### -target x86_64-unknown-cloudabi -S %s 2>&1 | \
|
50 |
| -// RUN: FileCheck --check-prefix=KEEP-ALL %s |
| 17 | +// RUN: FileCheck --check-prefix=CLOUDABI %s |
| 18 | +// CLOUDABI-NOT: "-momit-leaf-frame-pointer" |
51 | 19 |
|
52 | 20 | // NetBSD follows the same rules as Linux.
|
53 | 21 | // RUN: %clang -### -target x86_64-unknown-netbsd -S -O1 %s 2>&1 | \
|
54 |
| -// RUN: FileCheck --check-prefix=KEEP-NONE %s |
| 22 | +// RUN: FileCheck --check-prefix=NETBSD-OPT %s |
| 23 | +// NETBSD-OPT: "-momit-leaf-frame-pointer" |
55 | 24 |
|
56 | 25 | // RUN: %clang -### -target x86_64-unknown-netbsd -S %s 2>&1 | \
|
57 |
| -// RUN: FileCheck --check-prefix=KEEP-ALL %s |
| 26 | +// RUN: FileCheck --check-prefix=NETBSD %s |
| 27 | +// NETBSD-NOT: "-momit-leaf-frame-pointer" |
58 | 28 |
|
59 | 29 | // Darwin disables omitting the leaf frame pointer even under optimization
|
60 | 30 | // unless the command lines are given.
|
61 | 31 | // RUN: %clang -### -target i386-apple-darwin -S %s 2>&1 | \
|
62 |
| -// RUN: FileCheck --check-prefix=KEEP-ALL %s |
| 32 | +// RUN: FileCheck --check-prefix=DARWIN %s |
| 33 | +// DARWIN: "-mdisable-fp-elim" |
63 | 34 |
|
64 | 35 | // RUN: %clang -### -target i386-apple-darwin -S -O1 %s 2>&1 | \
|
65 |
| -// RUN: FileCheck --check-prefix=KEEP-ALL %s |
| 36 | +// RUN: FileCheck --check-prefix=DARWIN-OPT %s |
| 37 | +// DARWIN-OPT-NOT: "-momit-leaf-frame-pointer" |
66 | 38 |
|
67 | 39 | // RUN: %clang -### -target i386-darwin -S -fomit-frame-pointer %s 2>&1 | \
|
68 |
| -// RUN: FileCheck --check-prefix=KEEP-NONE %s |
| 40 | +// RUN: FileCheck --check-prefix=OMIT_ALL %s |
| 41 | +// OMIT_ALL-NOT: "-mdisable-fp-elim" |
69 | 42 |
|
70 | 43 | // RUN: %clang -### -target i386-darwin -S -momit-leaf-frame-pointer %s 2>&1 | \
|
71 |
| -// RUN: FileCheck --check-prefix=KEEP-NON-LEAF %s |
| 44 | +// RUN: FileCheck --check-prefix=OMIT_LEAF %s |
| 45 | +// OMIT_LEAF: "-momit-leaf-frame-pointer" |
72 | 46 |
|
73 | 47 | // RUN: %clang -### -target armv7s-apple-ios -fomit-frame-pointer %s 2>&1 | \
|
74 | 48 | // RUN: FileCheck --check-prefix=WARN-OMIT-7S %s
|
|
89 | 63 | // WARN-OMIT-LEAF-7S: "-momit-leaf-frame-pointer"
|
90 | 64 |
|
91 | 65 | // On the PS4, we default to omitting the frame pointer on leaf functions
|
| 66 | +// (OMIT_LEAF check line is above) |
92 | 67 | // RUN: %clang -### -target x86_64-scei-ps4 -S %s 2>&1 | \
|
93 |
| -// RUN: FileCheck --check-prefix=KEEP-NON-LEAF %s |
| 68 | +// RUN: FileCheck --check-prefix=OMIT_LEAF %s |
94 | 69 | // RUN: %clang -### -target x86_64-scei-ps4 -S -O2 %s 2>&1 | \
|
95 |
| -// RUN: FileCheck --check-prefix=KEEP-NON-LEAF %s |
| 70 | +// RUN: FileCheck --check-prefix=OMIT_LEAF %s |
96 | 71 |
|
97 | 72 | // RUN: %clang -### -target powerpc64 -S %s 2>&1 | \
|
98 |
| -// RUN: FileCheck --check-prefix=KEEP-ALL %s |
| 73 | +// RUN: FileCheck --check-prefix=KEEP_ALL %s |
| 74 | +// KEEP_ALL: "-mdisable-fp-elim" |
99 | 75 | // RUN: %clang -### -target powerpc64 -S -O1 %s 2>&1 | \
|
100 |
| -// RUN: FileCheck --check-prefix=KEEP-NONE %s |
| 76 | +// RUN: FileCheck --check-prefix=OMIT_ALL %s |
101 | 77 |
|
102 | 78 | void f0() {}
|
103 | 79 | void f1() { f0(); }
|
0 commit comments