LLVM: lib/TargetParser/XtensaTargetParser.cpp Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
16#include
17
18namespace llvm {
19
26
34
36#define XTENSA_FEATURE(ID, NAME) {ID, "+" NAME, sizeof(NAME)},
37#include "llvm/TargetParser/XtensaTargetParser.def"
38};
39
41#define XTENSA_CPU(ENUM, NAME, FEATURES) {NAME, CK_##ENUM, FEATURES},
42#include "llvm/TargetParser/XtensaTargetParser.def"
43};
44
47#define XTENSA_CPU_ALIAS(NAME, ANAME) .Case(ANAME, NAME)
48#include "llvm/TargetParser/XtensaTargetParser.def"
50}
51
54#define XTENSA_CPU_ALIAS(NAME, ANAME) .Case(NAME, ANAME)
55#include "llvm/TargetParser/XtensaTargetParser.def"
57}
58
62#define XTENSA_CPU(ENUM, NAME, FEATURES) .Case(NAME, CK_##ENUM)
63#include "llvm/TargetParser/XtensaTargetParser.def"
65}
66
67
71 [&](const CPUInfo &CI) { return CI.Name == CPU; });
74
77 Features.push_back(F.getName());
78 }
79}
80
81
84 if (C.Kind != CK_INVALID) {
85 Values.emplace_back(C.Name);
87 if (Name != C.Name)
88 Values.emplace_back(Name);
89 }
90 }
91}
92
93}
94}
assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")
This file implements the StringSwitch template, which mimics a switch() statement whose cases are str...
This file implements a target parser to recognise Xtensa hardware features.
A wrapper around a string literal that serves as a proxy for constructing global tables of StringRefs...
StringRef - Represent a constant reference to a string, i.e.
A switch()-like statement whose cases are string literals.
@ C
The default llvm calling convention, compatible with C.
void getCPUFeatures(StringRef CPU, SmallVectorImpl< StringRef > &Features)
StringRef getBaseName(StringRef CPU)
Definition XtensaTargetParser.cpp:45
const FeatureName XtensaFeatureNames[]
Definition XtensaTargetParser.cpp:35
StringRef getAliasName(StringRef CPU)
Definition XtensaTargetParser.cpp:52
constexpr CPUInfo XtensaCPUInfo[]
Definition XtensaTargetParser.cpp:40
void fillValidCPUList(SmallVectorImpl< StringRef > &Values)
CPUKind parseCPUKind(StringRef CPU)
Definition XtensaTargetParser.cpp:59
This is an optimization pass for GlobalISel generic memory operations.
auto find_if(R &&Range, UnaryPredicate P)
Provide wrappers to std::find_if which take ranges instead of having to pass begin/end explicitly.
StringLiteral Name
Definition XtensaTargetParser.cpp:22
CPUKind Kind
Definition XtensaTargetParser.cpp:23
uint64_t Features
Definition XtensaTargetParser.cpp:24
size_t NameLength
Definition XtensaTargetParser.cpp:30
StringRef getName() const
Definition XtensaTargetParser.cpp:32
uint64_t ID
Definition XtensaTargetParser.cpp:28
const char * NameCStr
Definition XtensaTargetParser.cpp:29