forked from sabottenda/llvm-sample-target
-
Notifications
You must be signed in to change notification settings - Fork 0
/
config.patch
114 lines (104 loc) · 3.49 KB
/
config.patch
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
diff --git a/llvm/CMakeLists.txt b/llvm/CMakeLists.txt
index a02c2a5a23f1..9a0470266409 100644
--- a/llvm/CMakeLists.txt
+++ b/llvm/CMakeLists.txt
@@ -302,6 +302,7 @@ set(LLVM_ALL_TARGETS
WebAssembly
X86
XCore
+ Sample
)
# List of targets with JIT support:
diff --git a/llvm/include/llvm/ADT/Triple.h b/llvm/include/llvm/ADT/Triple.h
index 76a754d671fb..e54ab6b616f0 100644
--- a/llvm/include/llvm/ADT/Triple.h
+++ b/llvm/include/llvm/ADT/Triple.h
@@ -96,7 +96,8 @@ public:
renderscript32, // 32-bit RenderScript
renderscript64, // 64-bit RenderScript
ve, // NEC SX-Aurora Vector Engine
- LastArchType = ve
+ sample, // Sample: sample
+ LastArchType = sample
};
enum SubArchType {
NoSubArch,
diff --git a/llvm/lib/Support/Triple.cpp b/llvm/lib/Support/Triple.cpp
index 2c480c1094a5..4de873d68302 100644
--- a/llvm/lib/Support/Triple.cpp
+++ b/llvm/lib/Support/Triple.cpp
@@ -71,6 +71,7 @@ StringRef Triple::getArchTypeName(ArchType Kind) {
case x86: return "i386";
case x86_64: return "x86_64";
case xcore: return "xcore";
+ case sample: return "sample";
}
llvm_unreachable("Invalid ArchType!");
@@ -317,6 +318,7 @@ Triple::ArchType Triple::getArchTypeForLLVMName(StringRef Name) {
.Case("renderscript32", renderscript32)
.Case("renderscript64", renderscript64)
.Case("ve", ve)
+ .Case("sample", sample)
.Default(UnknownArch);
}
@@ -446,6 +448,7 @@ static Triple::ArchType parseArch(StringRef ArchName) {
.Case("ve", Triple::ve)
.Case("wasm32", Triple::wasm32)
.Case("wasm64", Triple::wasm64)
+ .Case("sample", Triple::sample)
.Default(Triple::UnknownArch);
// Some architectures require special parsing logic just to compute the
@@ -706,6 +709,7 @@ static Triple::ObjectFormatType getDefaultFormat(const Triple &T) {
case Triple::thumbeb:
case Triple::ve:
case Triple::xcore:
+ case Triple::sample:
return Triple::ELF;
case Triple::ppc64:
@@ -1267,6 +1271,7 @@ static unsigned getArchPointerBitWidth(llvm::Triple::ArchType Arch) {
case llvm::Triple::wasm32:
case llvm::Triple::x86:
case llvm::Triple::xcore:
+ case llvm::Triple::sample:
return 32;
case llvm::Triple::aarch64:
@@ -1350,6 +1355,7 @@ Triple Triple::get32BitArchVariant() const {
case Triple::wasm32:
case Triple::x86:
case Triple::xcore:
+ case Triple::sample:
// Already 32-bit.
break;
@@ -1388,6 +1394,7 @@ Triple Triple::get64BitArchVariant() const {
case Triple::tce:
case Triple::tcele:
case Triple::xcore:
+ case Triple::sample:
T.setArch(UnknownArch);
break;
@@ -1471,6 +1478,7 @@ Triple Triple::getBigEndianArchVariant() const {
case Triple::x86_64:
case Triple::xcore:
case Triple::ve:
+ case Triple::sample:
// ARM is intentionally unsupported here, changing the architecture would
// drop any arch suffixes.
@@ -1563,6 +1571,7 @@ bool Triple::isLittleEndian() const {
case Triple::x86:
case Triple::x86_64:
case Triple::xcore:
+ case Triple::sample:
return true;
default:
return false;
diff --git a/llvm/lib/Target/LLVMBuild.txt b/llvm/lib/Target/LLVMBuild.txt
index 7403f7713a9f..a60297660941 100644
--- a/llvm/lib/Target/LLVMBuild.txt
+++ b/llvm/lib/Target/LLVMBuild.txt
@@ -37,6 +37,7 @@ subdirectories =
X86
XCore
VE
+ Sample
; This is a special group whose required libraries are extended (by llvm-build)
; with the best execution engine (the native JIT, if available, or the