35#define XTENSA_FEATURE(ID, NAME) {ID, "+" NAME, sizeof(NAME)},
36#include "llvm/TargetParser/XtensaTargetParser.def"
40#define XTENSA_CPU(ENUM, NAME, FEATURES) {NAME, CK_##ENUM, FEATURES},
41#include "llvm/TargetParser/XtensaTargetParser.def"
46#define XTENSA_CPU_ALIAS(NAME, ANAME) .Case(ANAME, NAME)
47#include "llvm/TargetParser/XtensaTargetParser.def"
53#define XTENSA_CPU_ALIAS(NAME, ANAME) .Case(NAME, ANAME)
54#include "llvm/TargetParser/XtensaTargetParser.def"
61#define XTENSA_CPU(ENUM, NAME, FEATURES) .Case(NAME, CK_##ENUM)
62#include "llvm/TargetParser/XtensaTargetParser.def"
75 if ((Bits &
F.ID) ==
F.ID)
76 Features.push_back(
F.getName());
83 if (
C.Kind != CK_INVALID) {
84 Values.emplace_back(
C.Name);
87 Values.emplace_back(
Name);
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)
const FeatureName XtensaFeatureNames[]
StringRef getAliasName(StringRef CPU)
constexpr CPUInfo XtensaCPUInfo[]
void fillValidCPUList(SmallVectorImpl< StringRef > &Values)
CPUKind parseCPUKind(StringRef CPU)
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.
StringRef getName() const