author | Stefan Teleman <stefan.teleman@oracle.com> |
Thu, 18 Aug 2016 12:56:39 -0700 | |
changeset 6637 | 22d5f6c97e6f |
parent 6512 | 92717ce71105 |
child 6976 | f62b30352410 |
permissions | -rw-r--r-- |
6512
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
1 |
# 23701635 clang produces amd64 opcodes, but calls 32-bit assembler by default |
6637
22d5f6c97e6f
24378340 clang -fopenmp must include the path to the omp.h header file
Stefan Teleman <stefan.teleman@oracle.com>
parents:
6512
diff
changeset
|
2 |
# 24378340 clang -fopenmp must include the path to the omp.h header file |
22d5f6c97e6f
24378340 clang -fopenmp must include the path to the omp.h header file
Stefan Teleman <stefan.teleman@oracle.com>
parents:
6512
diff
changeset
|
3 |
# 24378393 clang -fopenmp must define _OPENMP to 201307 |
6512
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
4 |
# 3.9.X for upstream. |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
5 |
--- tools/clang/include/clang/Basic/LangOptions.def 2016-01-06 08:42:12.000000000 -0500 |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
6 |
+++ tools/clang/include/clang/Basic/LangOptions.def 2016-05-08 23:19:20.551431215 -0400 |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
7 |
@@ -140,6 +140,8 @@ |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
8 |
"default struct packing maximum alignment") |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
9 |
VALUE_LANGOPT(MaxTypeAlign , 32, 0, |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
10 |
"default maximum alignment for types") |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
11 |
+VALUE_LANGOPT(GXXABIVersion , 32, 0, |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
12 |
+ "Use specified GNU C++ Standard Library ABI version") |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
13 |
VALUE_LANGOPT(PICLevel , 2, 0, "__PIC__ level") |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
14 |
VALUE_LANGOPT(PIELevel , 2, 0, "__PIE__ level") |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
15 |
LANGOPT(GNUInline , 1, 0, "GNU inline semantics") |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
16 |
### |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
17 |
--- tools/clang/include/clang/Basic/Version.inc.in 2010-06-25 13:33:46.000000000 -0400 |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
18 |
+++ tools/clang/include/clang/Basic/Version.inc.in 2016-05-08 23:19:20.552431239 -0400 |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
19 |
@@ -4,3 +4,4 @@ |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
20 |
#if @CLANG_HAS_VERSION_PATCHLEVEL@ |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
21 |
#define CLANG_VERSION_PATCHLEVEL @CLANG_VERSION_PATCHLEVEL@ |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
22 |
#endif |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
23 |
+#define CLANG_VERSION_TAGGED_STRING @CLANG_VERSION_TAGGED_STRING@ |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
24 |
### |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
25 |
--- tools/clang/include/clang/Basic/TargetInfo.h 2015-11-17 16:15:28.000000000 -0800 |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
26 |
+++ tools/clang/include/clang/Basic/TargetInfo.h 2016-05-13 19:02:00.975115645 -0700 |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
27 |
@@ -86,11 +86,11 @@ |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
28 |
mutable StringRef PlatformName; |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
29 |
mutable VersionTuple PlatformMinVersion; |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
30 |
|
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
31 |
- unsigned HasAlignMac68kSupport : 1; |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
32 |
- unsigned RealTypeUsesObjCFPRet : 3; |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
33 |
- unsigned ComplexLongDoubleUsesFP2Ret : 1; |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
34 |
+ bool HasAlignMac68kSupport; |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
35 |
+ unsigned RealTypeUsesObjCFPRet; |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
36 |
+ bool ComplexLongDoubleUsesFP2Ret; |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
37 |
|
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
38 |
- unsigned HasBuiltinMSVaList : 1; |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
39 |
+ bool HasBuiltinMSVaList; |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
40 |
|
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
41 |
// TargetInfo Constructor. Default initializes all fields. |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
42 |
TargetInfo(const llvm::Triple &T); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
43 |
### |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
44 |
--- tools/clang/lib/Basic/IdentifierTable.cpp 2015-10-21 23:52:15.000000000 -0400 |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
45 |
+++ tools/clang/lib/Basic/IdentifierTable.cpp 2016-05-08 23:19:20.562431482 -0400 |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
46 |
@@ -393,6 +393,11 @@ |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
47 |
Profile(ID, keyword_begin(), getNumArgs()); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
48 |
} |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
49 |
}; |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
50 |
+static_assert( |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
51 |
+ llvm::AlignOf<MultiKeywordSelector>::Alignment >= |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
52 |
+ llvm::AlignOf<IdentifierInfo *>::Alignment, |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
53 |
+ "Insufficient alignment for objects appended to MultiKeywordSelector"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
54 |
+ |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
55 |
} // end namespace clang. |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
56 |
|
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
57 |
unsigned Selector::getNumArgs() const { |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
58 |
### |
6637
22d5f6c97e6f
24378340 clang -fopenmp must include the path to the omp.h header file
Stefan Teleman <stefan.teleman@oracle.com>
parents:
6512
diff
changeset
|
59 |
--- tools/clang/lib/Basic/Targets.cpp 2016-05-24 12:36:54.000000000 -0700 |
22d5f6c97e6f
24378340 clang -fopenmp must include the path to the omp.h header file
Stefan Teleman <stefan.teleman@oracle.com>
parents:
6512
diff
changeset
|
60 |
+++ tools/clang/lib/Basic/Targets.cpp 2016-08-08 08:06:27.116982930 -0700 |
6512
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
61 |
@@ -29,10 +29,11 @@ |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
62 |
#include "llvm/MC/MCSectionMachO.h" |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
63 |
#include "llvm/Support/ErrorHandling.h" |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
64 |
#include "llvm/Support/TargetParser.h" |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
65 |
+using namespace clang; |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
66 |
+ |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
67 |
#include <algorithm> |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
68 |
#include <memory> |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
69 |
- |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
70 |
-using namespace clang; |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
71 |
+#include <string> |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
72 |
|
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
73 |
//===----------------------------------------------------------------------===// |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
74 |
// Common code shared among targets. |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
75 |
@@ -618,34 +619,206 @@ |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
76 |
// Solaris target |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
77 |
template<typename Target> |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
78 |
class SolarisTargetInfo : public OSTargetInfo<Target> { |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
79 |
+private: |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
80 |
+ std::string ABI; |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
81 |
+ std::string CPU; |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
82 |
+ |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
83 |
protected: |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
84 |
- void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
85 |
- MacroBuilder &Builder) const override { |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
86 |
+ virtual void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
87 |
+ MacroBuilder &Builder) const override { |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
88 |
DefineStd(Builder, "sun", Opts); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
89 |
DefineStd(Builder, "unix", Opts); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
90 |
Builder.defineMacro("__ELF__"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
91 |
Builder.defineMacro("__svr4__"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
92 |
Builder.defineMacro("__SVR4"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
93 |
- // Solaris headers require _XOPEN_SOURCE to be set to 600 for C99 and |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
94 |
- // newer, but to 500 for everything else. feature_test.h has a check to |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
95 |
- // ensure that you are not using C99 with an old version of X/Open or C89 |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
96 |
- // with a new version. |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
97 |
- if (Opts.C99) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
98 |
+ Builder.defineMacro("__SunOS", "1"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
99 |
+ |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
100 |
+ Builder.defineMacro("__EXTENSIONS__", "1"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
101 |
+ |
6637
22d5f6c97e6f
24378340 clang -fopenmp must include the path to the omp.h header file
Stefan Teleman <stefan.teleman@oracle.com>
parents:
6512
diff
changeset
|
102 |
+ if (Opts.POSIXThreads || Opts.OpenMP) { |
6512
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
103 |
+ Builder.defineMacro("_REENTRANT"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
104 |
+ Builder.defineMacro("__GTHREADS", "1"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
105 |
+ } |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
106 |
+ |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
107 |
+ if (Opts.C99) { |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
108 |
Builder.defineMacro("_XOPEN_SOURCE", "600"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
109 |
- else |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
110 |
+ Builder.defineMacro("_XPG6", "1"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
111 |
+ Builder.defineMacro("__STDC_VERSION__", "199901L"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
112 |
+ Builder.defineMacro("_STDC_C99", "1"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
113 |
+ Builder.defineMacro("__C99FEATURES__", "1"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
114 |
+ } |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
115 |
+ |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
116 |
+ if (Opts.CPlusPlus11) { |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
117 |
+ Builder.defineMacro("__cplusplus", "201103L"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
118 |
+ Builder.defineMacro("_XOPEN_SOURCE", "600"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
119 |
+ Builder.defineMacro("_XPG6", "1"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
120 |
+ } else if (Opts.CPlusPlus14) { |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
121 |
+ Builder.defineMacro("__cplusplus", "201402L"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
122 |
+ Builder.defineMacro("_XOPEN_SOURCE", "700"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
123 |
+ Builder.defineMacro("_XPG7", "1"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
124 |
+ } |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
125 |
+ |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
126 |
+ if (Opts.CPlusPlus || Opts.CPlusPlus11 || Opts.CPlusPlus14 || |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
127 |
+ Opts.CPlusPlus1z) { |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
128 |
+ Builder.defineMacro("__STDCPP_STRICT_POINTER_SAFETY__", "1"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
129 |
+ Builder.defineMacro("__STDCPP_THREADS__", "1"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
130 |
+ } |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
131 |
+ |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
132 |
+ if (Opts.CPlusPlus11) { |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
133 |
+ Builder.defineMacro("_STDC_C99", "1"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
134 |
+ Builder.defineMacro("__STDC_VERSION__", "199901L"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
135 |
+ Builder.defineMacro("__C99FEATURES__", "1"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
136 |
+ Builder.defineMacro("__STDC_ISO_10646__", "201011L"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
137 |
+ Builder.defineMacro("__STDC_MB_MIGHT_NEQ_WC__", "1"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
138 |
+ Builder.defineMacro("__STDC_LIB_EXT1__", "201112L"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
139 |
+ } else if (Opts.C11 || Opts.CPlusPlus14) { |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
140 |
+ Builder.defineMacro("__STDC_HOSTED__", "1"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
141 |
+ Builder.defineMacro("__STDC_VERSION__", "201112L"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
142 |
+ Builder.defineMacro("_STDC_C11", "1"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
143 |
+ Builder.defineMacro("_STDC_C11_BCI", "1"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
144 |
+ Builder.defineMacro("__STDC_ISO_10646__", "201011L"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
145 |
+ Builder.defineMacro("__STDC_MB_MIGHT_NEQ_WC__", "1"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
146 |
+ Builder.defineMacro("__STDC_LIB_EXT1__", "201112L"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
147 |
+ Builder.defineMacro("__STDC_UTF_16__", "1"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
148 |
+ Builder.defineMacro("__STDC_UTF_32__", "1"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
149 |
+ Builder.defineMacro("__XPG7_THREAD_MODEL__", "1"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
150 |
+ |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
151 |
+ if (Opts.C11) { |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
152 |
+ Builder.defineMacro("__STDC_ANALYZABLE", "1"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
153 |
+ Builder.defineMacro("__STDC_IEC_559__", "1"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
154 |
+ Builder.defineMacro("__STDC_IEC_559_COMPLEX__", "1"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
155 |
+ } |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
156 |
+ } else if (Opts.CPlusPlus1z) { |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
157 |
+ // This is bogus until C++17 is actually ratified, |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
158 |
+ // but we need something to identify C++17 for now. |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
159 |
+ Builder.defineMacro("__cplusplus", "20171231L"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
160 |
+ Builder.defineMacro("__STDC_VERSION__", "201112L"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
161 |
+ Builder.defineMacro("_STDC_C11", "1"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
162 |
+ Builder.defineMacro("_STDC_C11_BCI", "1"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
163 |
+ Builder.defineMacro("__XPG7_THREAD_MODEL__", "1"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
164 |
+ Builder.defineMacro("_XOPEN_SOURCE", "700"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
165 |
+ Builder.defineMacro("_XPG7", "1"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
166 |
+ } else if ((!Opts.C99 && !Opts.C11) || |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
167 |
+ (!Opts.CPlusPlus && !Opts.CPlusPlus11 && |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
168 |
+ !Opts.CPlusPlus14 && !Opts.CPlusPlus1z)) { |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
169 |
Builder.defineMacro("_XOPEN_SOURCE", "500"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
170 |
- if (Opts.CPlusPlus) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
171 |
- Builder.defineMacro("__C99FEATURES__"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
172 |
+ Builder.defineMacro("__STDC_VERSION__", "199409L"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
173 |
+ if (Opts.CPlusPlus && !Opts.CPlusPlus11 && !Opts.CPlusPlus14 && |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
174 |
+ !Opts.CPlusPlus1z) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
175 |
+ Builder.defineMacro("__cplusplus", "199711L"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
176 |
+ } |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
177 |
+ |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
178 |
+ if ((Triple.getArchName() == "i386") || (Triple.getArchName() == "sparc")) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
179 |
Builder.defineMacro("_LARGEFILE_SOURCE"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
180 |
+ else if ((Triple.getArchName() == "x86_64") || |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
181 |
+ (Triple.getArchName() == "sparcv9")) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
182 |
Builder.defineMacro("_LARGEFILE64_SOURCE"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
183 |
- Builder.defineMacro("__EXTENSIONS__"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
184 |
- Builder.defineMacro("_REENTRANT"); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
185 |
} |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
186 |
+ |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
187 |
public: |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
188 |
- SolarisTargetInfo(const llvm::Triple &Triple) : OSTargetInfo<Target>(Triple) { |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
189 |
+ SolarisTargetInfo(const llvm::Triple &Triple) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
190 |
+ : OSTargetInfo<Target>(Triple), |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
191 |
+ ABI(""), CPU("") { |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
192 |
this->UserLabelPrefix = ""; |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
193 |
+ |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
194 |
+ llvm::Triple::ArchType Arch = Triple.getArch(); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
195 |
+ switch (Arch) { |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
196 |
+ case llvm::Triple::x86: |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
197 |
+ case llvm::Triple::sparc: |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
198 |
+ this->WCharType = this->SignedLong; |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
199 |
+ break; |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
200 |
+ case llvm::Triple::x86_64: |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
201 |
+ case llvm::Triple::sparcv9: |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
202 |
this->WCharType = this->SignedInt; |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
203 |
- // FIXME: WIntType should be SignedLong |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
204 |
+ break; |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
205 |
+ default: |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
206 |
+ this->WCharType = this->SignedInt; |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
207 |
+ break; |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
208 |
+ } |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
209 |
+ } |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
210 |
+ |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
211 |
+ virtual const char *getStaticInitSectionSpecifier() const override { |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
212 |
+ return ".init"; |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
213 |
+ } |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
214 |
+ |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
215 |
+ virtual bool setCPU(const std::string &Name) { |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
216 |
+ CPU = Name; |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
217 |
+ std::transform(CPU.begin(), CPU.end(), CPU.begin(), ::tolower); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
218 |
+ |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
219 |
+ bool K = llvm::StringSwitch<bool>(Name) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
220 |
+ .Case("generic", true) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
221 |
+ .Case("native", true) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
222 |
+ .Case("sparc4", true) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
223 |
+ .Case("sparc5", true) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
224 |
+ .Case("v8plus", true) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
225 |
+ .Case("v8plusa", true) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
226 |
+ .Case("v8plusb", true) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
227 |
+ .Case("v8plusc", true) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
228 |
+ .Case("v8plusd", true) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
229 |
+ .Case("v8pluse", true) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
230 |
+ .Case("v8plusv", true) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
231 |
+ .Case("v8plusm", true) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
232 |
+ .Case("v9", true) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
233 |
+ .Case("v9a", true) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
234 |
+ .Case("v9b", true) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
235 |
+ .Case("v9c", true) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
236 |
+ .Case("v9d", true) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
237 |
+ .Case("v9e", true) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
238 |
+ .Case("v9v", true) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
239 |
+ .Case("v9m", true) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
240 |
+ .Case("ultrasparc", true) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
241 |
+ .Case("ultrasparc2", true) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
242 |
+ .Case("ultrasparc3", true) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
243 |
+ .Case("ultrasparc4", true) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
244 |
+ .Case("generic32", true) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
245 |
+ .Case("generic64", true) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
246 |
+ .Case("i386", true) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
247 |
+ .Case("i486", true) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
248 |
+ .Case("i586", true) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
249 |
+ .Case("i686", true) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
250 |
+ .Case("pentium", true) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
251 |
+ .Case("pentiumpro", true) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
252 |
+ .Case("pentium2", true) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
253 |
+ .Case("pentiumii", true) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
254 |
+ .Case("pentium3", true) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
255 |
+ .Case("pentiumiii", true) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
256 |
+ .Case("pentium4", true) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
257 |
+ .Case("pentiumiv", true) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
258 |
+ .Case("prescott", true) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
259 |
+ .Case("nocona", true) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
260 |
+ .Case("core", true) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
261 |
+ .Case("core2", true) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
262 |
+ .Case("corei7", true) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
263 |
+ .Case("l1om", true) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
264 |
+ .Case("k1om", true) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
265 |
+ .Case("k6", true) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
266 |
+ .Case("k6_2", true) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
267 |
+ .Case("athlon", true) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
268 |
+ .Case("opteron", true) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
269 |
+ .Case("x86-64", true) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
270 |
+ .Case("X86-64", true) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
271 |
+ .Case("x86_64", true) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
272 |
+ .Case("X86_64", true) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
273 |
+ .Case("k8", true) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
274 |
+ .Case("amdfam10", true) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
275 |
+ .Case("bdver1", true) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
276 |
+ .Case("bdver2", true) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
277 |
+ .Case("bdver3", true) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
278 |
+ .Case("bdver4", true) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
279 |
+ .Case("btver1", true) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
280 |
+ .Case("btver2", true) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
281 |
+ .Default(false); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
282 |
+ |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
283 |
+ return K; |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
284 |
+ } |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
285 |
+ |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
286 |
+ virtual bool setABI(const std::string &Name) { |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
287 |
+ ABI = Name; |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
288 |
+ std::transform(ABI.begin(), ABI.end(), ABI.begin(), ::tolower); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
289 |
+ if (ABI.find("itanium") != std::string::npos) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
290 |
+ return true; |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
291 |
+ |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
292 |
+ return false; |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
293 |
} |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
294 |
}; |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
295 |
|
6637
22d5f6c97e6f
24378340 clang -fopenmp must include the path to the omp.h header file
Stefan Teleman <stefan.teleman@oracle.com>
parents:
6512
diff
changeset
|
296 |
@@ -5899,6 +6072,10 @@ |
6512
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
297 |
case 'N': // Same as 'K' but zext (required for SIMode) |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
298 |
case 'O': // The constant 4096 |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
299 |
return true; |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
300 |
+ |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
301 |
+ case 'f': |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
302 |
+ info.setAllowsRegister(); |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
303 |
+ return true; |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
304 |
} |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
305 |
return false; |
92717ce71105
24326140 upgrade LLVM to 3.8.1
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
306 |
} |