summaryrefslogtreecommitdiff
path: root/llvm/lib/TargetParser/LoongArchTargetParser.cpp
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2023-07-26 19:11:12 +0000
committerDimitry Andric <dim@FreeBSD.org>2023-07-26 19:11:12 +0000
commit2d22c9abbd20fdc3d3a469075bd151ca1bd02ee4 (patch)
treebc941261e4067c56d7da297e4f3e606bad5695c1 /llvm/lib/TargetParser/LoongArchTargetParser.cpp
parent7fa27ce4a07f19b07799a767fc29416f3b625afb (diff)
Diffstat (limited to 'llvm/lib/TargetParser/LoongArchTargetParser.cpp')
-rw-r--r--llvm/lib/TargetParser/LoongArchTargetParser.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/llvm/lib/TargetParser/LoongArchTargetParser.cpp b/llvm/lib/TargetParser/LoongArchTargetParser.cpp
index 18b04600dbc6..72781513ff12 100644
--- a/llvm/lib/TargetParser/LoongArchTargetParser.cpp
+++ b/llvm/lib/TargetParser/LoongArchTargetParser.cpp
@@ -16,6 +16,9 @@
using namespace llvm;
using namespace llvm::LoongArch;
+StringRef Arch;
+StringRef TuneCPU;
+
const FeatureInfo AllFeatures[] = {
#define LOONGARCH_FEATURE(NAME, KIND) {NAME, KIND},
#include "llvm/TargetParser/LoongArchTargetParser.def"
@@ -46,3 +49,25 @@ bool LoongArch::getArchFeatures(StringRef Arch,
}
return false;
}
+
+bool LoongArch::isValidTuneCPUName(StringRef TuneCPU) {
+ return isValidArchName(TuneCPU);
+}
+
+void LoongArch::fillValidTuneCPUList(SmallVectorImpl<StringRef> &Values) {
+ for (const auto A : AllArchs)
+ Values.emplace_back(A.Name);
+}
+
+StringRef LoongArch::getDefaultArch(bool Is64Bit) {
+ // TODO: use a real 32-bit arch name.
+ return Is64Bit ? "loongarch64" : "";
+}
+
+void LoongArch::setArch(StringRef Name) { Arch = Name; }
+
+StringRef LoongArch::getArch() { return Arch; }
+
+void LoongArch::setTuneCPU(StringRef Name) { TuneCPU = Name; }
+
+StringRef LoongArch::getTuneCPU() { return TuneCPU; }