1 Pull in r202177 from upstream clang trunk (by Roman Divacky):
3 Give sparcv9 the ability to set the target cpu. Change it from accepting
4 -march which doesnt exist on sparc gcc to -mcpu. While here adjust a
5 few tests to not write an unused temporary file.
7 Introduced here: http://svnweb.freebsd.org/changeset/base/262535
9 Index: tools/clang/lib/Basic/Targets.cpp
10 ===================================================================
11 --- tools/clang/lib/Basic/Targets.cpp
12 +++ tools/clang/lib/Basic/Targets.cpp
13 @@ -4552,6 +4552,22 @@ class SparcV9TargetInfo : public SparcTargetInfo {
14 Builder.defineMacro("__sparcv9__");
18 + virtual bool setCPU(const std::string &Name) {
19 + bool CPUKnown = llvm::StringSwitch<bool>(Name)
21 + .Case("ultrasparc", true)
22 + .Case("ultrasparc3", true)
23 + .Case("niagara", true)
24 + .Case("niagara2", true)
25 + .Case("niagara3", true)
26 + .Case("niagara4", true)
29 + // No need to store the CPU yet. There aren't any CPU-specific
30 + // macros to define.
35 } // end anonymous namespace.
36 Index: tools/clang/lib/Driver/Tools.cpp
37 ===================================================================
38 --- tools/clang/lib/Driver/Tools.cpp
39 +++ tools/clang/lib/Driver/Tools.cpp
40 @@ -1373,7 +1373,8 @@ static std::string getCPUName(const ArgList &Args,
43 case llvm::Triple::sparc:
44 - if (const Arg *A = Args.getLastArg(options::OPT_march_EQ))
45 + case llvm::Triple::sparcv9:
46 + if (const Arg *A = Args.getLastArg(options::OPT_mcpu_EQ))
50 Index: tools/clang/test/Driver/freebsd.c
51 ===================================================================
52 --- tools/clang/test/Driver/freebsd.c
53 +++ tools/clang/test/Driver/freebsd.c
55 // CHECK-MIPSEL: "{{[^" ]*}}ld{{[^" ]*}}"
56 // CHECK-MIPSEL: "-dynamic-linker" "{{.*}}/libexec/ld-elf.so.1"
57 // CHECK-MIPSEL-NOT: "--hash-style={{gnu|both}}"
58 -// RUN: %clang %s -### -o %t.o 2>&1 \
59 +// RUN: %clang %s -### 2>&1 \
60 // RUN: -target mips64-unknown-freebsd10.0 \
61 // RUN: | FileCheck --check-prefix=CHECK-MIPS64 %s
62 // CHECK-MIPS64: "{{[^" ]*}}ld{{[^" ]*}}"
63 // CHECK-MIPS64: "-dynamic-linker" "{{.*}}/libexec/ld-elf.so.1"
64 // CHECK-MIPS64-NOT: "--hash-style={{gnu|both}}"
65 -// RUN: %clang %s -### -o %t.o 2>&1 \
66 +// RUN: %clang %s -### 2>&1 \
67 // RUN: -target mips64el-unknown-freebsd10.0 \
68 // RUN: | FileCheck --check-prefix=CHECK-MIPS64EL %s
69 // CHECK-MIPS64EL: "{{[^" ]*}}ld{{[^" ]*}}"
71 // CHECK-NORMAL: crt1.o
72 // CHECK-NORMAL: crtbegin.o
74 -// RUN: %clang %s -### -o %t.o -target arm-unknown-freebsd10.0 2>&1 \
75 +// RUN: %clang %s -### -target arm-unknown-freebsd10.0 2>&1 \
76 // RUN: | FileCheck --check-prefix=CHECK-ARM %s
77 // CHECK-ARM: clang{{.*}}" "-cc1"{{.*}}" "-fsjlj-exceptions"
78 // CHECK-ARM: as{{.*}}" "-mfpu=softvfp"{{.*}}"-matpcs"
80 -// RUN: %clang %s -### -o %t.o -target arm-gnueabi-freebsd10.0 2>&1 \
81 +// RUN: %clang %s -### -target arm-gnueabi-freebsd10.0 2>&1 \
82 // RUN: | FileCheck --check-prefix=CHECK-ARM-EABI %s
83 // CHECK-ARM-EABI-NOT: clang{{.*}}" "-cc1"{{.*}}" "-fsjlj-exceptions"
84 // CHECK-ARM-EABI: as{{.*}}" "-mfpu=softvfp" "-meabi=5"