LLVM
22.0.0git
lib
Target
Hexagon
HexagonDepArch.h
Go to the documentation of this file.
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
V75
,
32
V79
33
};
34
35
inline
std::optional<Hexagon::ArchEnum>
getCpu
(
StringRef
CPU) {
36
return
StringSwitch<std::optional<Hexagon::ArchEnum>
>(CPU)
37
.Case(
"generic"
,
Hexagon::ArchEnum::V5
)
38
.
Case
(
"hexagonv5"
,
Hexagon::ArchEnum::V5
)
39
.
Case
(
"hexagonv55"
,
Hexagon::ArchEnum::V55
)
40
.
Case
(
"hexagonv60"
,
Hexagon::ArchEnum::V60
)
41
.
Case
(
"hexagonv62"
,
Hexagon::ArchEnum::V62
)
42
.
Case
(
"hexagonv65"
,
Hexagon::ArchEnum::V65
)
43
.
Case
(
"hexagonv66"
,
Hexagon::ArchEnum::V66
)
44
.
Case
(
"hexagonv67"
,
Hexagon::ArchEnum::V67
)
45
.
Case
(
"hexagonv67t"
,
Hexagon::ArchEnum::V67
)
46
.
Case
(
"hexagonv68"
,
Hexagon::ArchEnum::V68
)
47
.
Case
(
"hexagonv69"
,
Hexagon::ArchEnum::V69
)
48
.
Case
(
"hexagonv71"
,
Hexagon::ArchEnum::V71
)
49
.
Case
(
"hexagonv71t"
,
Hexagon::ArchEnum::V71
)
50
.
Case
(
"hexagonv73"
,
Hexagon::ArchEnum::V73
)
51
.
Case
(
"hexagonv75"
,
Hexagon::ArchEnum::V75
)
52
.
Case
(
"hexagonv79"
,
Hexagon::ArchEnum::V79
)
53
.
Default
(std::nullopt);
54
}
55
}
// namespace Hexagon
56
}
// namespace llvm
57
58
#endif
// LLVM_LIB_TARGET_HEXAGON_HEXAGONDEPARCH_H
StringSwitch.h
This file implements the StringSwitch template, which mimics a switch() statement whose cases are str...
llvm::StringRef
StringRef - Represent a constant reference to a string, i.e.
Definition
StringRef.h:55
llvm::StringSwitch
A switch()-like statement whose cases are string literals.
Definition
StringSwitch.h:43
llvm::StringSwitch::Case
StringSwitch & Case(StringLiteral S, T Value)
Definition
StringSwitch.h:68
llvm::StringSwitch::Default
R Default(T Value)
Definition
StringSwitch.h:177
llvm::Hexagon
Definition
HexagonDepArch.h:16
llvm::Hexagon::ArchEnum
ArchEnum
Definition
HexagonDepArch.h:17
llvm::Hexagon::ArchEnum::V69
@ V69
Definition
HexagonDepArch.h:28
llvm::Hexagon::ArchEnum::V67
@ V67
Definition
HexagonDepArch.h:26
llvm::Hexagon::ArchEnum::V62
@ V62
Definition
HexagonDepArch.h:23
llvm::Hexagon::ArchEnum::V71
@ V71
Definition
HexagonDepArch.h:29
llvm::Hexagon::ArchEnum::V66
@ V66
Definition
HexagonDepArch.h:25
llvm::Hexagon::ArchEnum::NoArch
@ NoArch
Definition
HexagonDepArch.h:18
llvm::Hexagon::ArchEnum::V73
@ V73
Definition
HexagonDepArch.h:30
llvm::Hexagon::ArchEnum::V68
@ V68
Definition
HexagonDepArch.h:27
llvm::Hexagon::ArchEnum::V55
@ V55
Definition
HexagonDepArch.h:21
llvm::Hexagon::ArchEnum::Generic
@ Generic
Definition
HexagonDepArch.h:19
llvm::Hexagon::ArchEnum::V60
@ V60
Definition
HexagonDepArch.h:22
llvm::Hexagon::ArchEnum::V5
@ V5
Definition
HexagonDepArch.h:20
llvm::Hexagon::ArchEnum::V79
@ V79
Definition
HexagonDepArch.h:32
llvm::Hexagon::ArchEnum::V65
@ V65
Definition
HexagonDepArch.h:24
llvm::Hexagon::ArchEnum::V75
@ V75
Definition
HexagonDepArch.h:31
llvm::Hexagon::getCpu
std::optional< Hexagon::ArchEnum > getCpu(StringRef CPU)
Definition
HexagonDepArch.h:35
llvm
This is an optimization pass for GlobalISel generic memory operations.
Definition
AddressRanges.h:18
Generated on
for LLVM by
1.14.0