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

76 if ((Bits & F.ID) == F.ID)

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