Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonDepArch.h
35269 views
1
//===----------------------------------------------------------------------===//
2
//
3
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
// See https://llvm.org/LICENSE.txt for license information.
5
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
//
7
//===----------------------------------------------------------------------===//
8
9
#ifndef LLVM_LIB_TARGET_HEXAGON_HEXAGONDEPARCH_H
10
#define LLVM_LIB_TARGET_HEXAGON_HEXAGONDEPARCH_H
11
12
#include "llvm/ADT/StringSwitch.h"
13
#include <optional>
14
15
namespace llvm {
16
namespace Hexagon {
17
enum class ArchEnum {
18
NoArch,
19
Generic,
20
V5,
21
V55,
22
V60,
23
V62,
24
V65,
25
V66,
26
V67,
27
V68,
28
V69,
29
V71,
30
V73
31
};
32
33
inline std::optional<Hexagon::ArchEnum> getCpu(StringRef CPU) {
34
return StringSwitch<std::optional<Hexagon::ArchEnum>>(CPU)
35
.Case("generic", Hexagon::ArchEnum::V5)
36
.Case("hexagonv5", Hexagon::ArchEnum::V5)
37
.Case("hexagonv55", Hexagon::ArchEnum::V55)
38
.Case("hexagonv60", Hexagon::ArchEnum::V60)
39
.Case("hexagonv62", Hexagon::ArchEnum::V62)
40
.Case("hexagonv65", Hexagon::ArchEnum::V65)
41
.Case("hexagonv66", Hexagon::ArchEnum::V66)
42
.Case("hexagonv67", Hexagon::ArchEnum::V67)
43
.Case("hexagonv67t", Hexagon::ArchEnum::V67)
44
.Case("hexagonv68", Hexagon::ArchEnum::V68)
45
.Case("hexagonv69", Hexagon::ArchEnum::V69)
46
.Case("hexagonv71", Hexagon::ArchEnum::V71)
47
.Case("hexagonv71t", Hexagon::ArchEnum::V71)
48
.Case("hexagonv73", Hexagon::ArchEnum::V73)
49
.Default(std::nullopt);
50
}
51
} // namespace Hexagon
52
} // namespace llvm
53
54
#endif // LLVM_LIB_TARGET_HEXAGON_HEXAGONDEPARCH_H
55
56