LLVM: include/llvm/TargetParser/X86TargetParser.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13#ifndef LLVM_TARGETPARSER_X86TARGETPARSER_H

14#define LLVM_TARGETPARSER_X86TARGETPARSER_H

15

19#include

20

21namespace llvm {

24

26

27

28

31#define X86_VENDOR(ENUM, STRING) \

32 ENUM,

33#include "llvm/TargetParser/X86TargetParser.def"

35};

36

37

38

41#define X86_CPU_TYPE(ENUM, STRING) \

42 ENUM,

43#include "llvm/TargetParser/X86TargetParser.def"

45};

46

47

48

51#define X86_CPU_SUBTYPE(ENUM, STRING) \

52 ENUM,

53#include "llvm/TargetParser/X86TargetParser.def"

55};

56

57

58

60#define X86_FEATURE(ENUM, STRING) FEATURE_##ENUM,

61#include "llvm/TargetParser/X86TargetParser.def"

63#define X86_MICROARCH_LEVEL(ENUM, STR, PRIORITY, ABI_VALUE) FEATURE_##ENUM,

64#include "llvm/TargetParser/X86TargetParser.def"

65};

66

155

156

157

160

161

162

164 bool Only64Bit = false);

165

167 bool Only64Bit = false);

168

169

171

172

173

176 bool NeedPlus = false);

177

178

179

182

185LLVM_ABI std::array<uint32_t, 4>

188

189}

190}

191

192#endif

This file defines the StringMap class.

ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...

This class consists of common code factored out of the SmallVector class to reduce code duplication b...

StringMap - This is an unconventional map that is specialized for handling keys that are "strings",...

StringRef - Represent a constant reference to a string, i.e.

Define some predicates that are used for node matching.

Definition X86TargetParser.h:25

ProcessorVendors

Definition X86TargetParser.h:29

@ VENDOR_OTHER

Definition X86TargetParser.h:34

@ VENDOR_DUMMY

Definition X86TargetParser.h:30

LLVM_ABI std::array< uint32_t, 4 > getCpuSupportsMask(ArrayRef< StringRef > FeatureStrs)

LLVM_ABI char getCPUDispatchMangling(StringRef Name)

LLVM_ABI CPUKind parseTuneCPU(StringRef CPU, bool Only64Bit=false)

LLVM_ABI void updateImpliedFeatures(StringRef Feature, bool Enabled, StringMap< bool > &Features)

Set or clear entries in Features that are implied to be enabled/disabled by the provided Feature.

LLVM_ABI CPUKind parseArchX86(StringRef CPU, bool Only64Bit=false)

Parse CPU string into a CPUKind.

LLVM_ABI void fillValidTuneCPUList(SmallVectorImpl< StringRef > &Values, bool Only64Bit=false)

Provide a list of valid -mtune names.

LLVM_ABI void getFeaturesForCPU(StringRef CPU, SmallVectorImpl< StringRef > &Features, bool NeedPlus=false)

Fill in the features that CPU supports into Features.

CPUKind

Definition X86TargetParser.h:67

@ CK_ZNVER3

Definition X86TargetParser.h:146

@ CK_WinChipC6

Definition X86TargetParser.h:71

@ CK_PentiumMMX

Definition X86TargetParser.h:76

@ CK_Nehalem

Definition X86TargetParser.h:95

@ CK_BTVER1

Definition X86TargetParser.h:138

@ CK_BDVER1

Definition X86TargetParser.h:140

@ CK_Pentium4

Definition X86TargetParser.h:84

@ CK_Lakemont

Definition X86TargetParser.h:129

@ CK_K6_3

Definition X86TargetParser.h:132

@ CK_Cannonlake

Definition X86TargetParser.h:105

@ CK_IvyBridge

Definition X86TargetParser.h:98

@ CK_SapphireRapids

Definition X86TargetParser.h:110

@ CK_Athlon

Definition X86TargetParser.h:133

@ CK_PentiumPro

Definition X86TargetParser.h:77

@ CK_Goldmont

Definition X86TargetParser.h:91

@ CK_Tremont

Definition X86TargetParser.h:93

@ CK_i486

Definition X86TargetParser.h:70

@ CK_Core2

Definition X86TargetParser.h:87

@ CK_ZNVER1

Definition X86TargetParser.h:144

@ CK_ArrowlakeS

Definition X86TargetParser.h:115

@ CK_Graniterapids

Definition X86TargetParser.h:122

@ CK_Lunarlake

Definition X86TargetParser.h:116

@ CK_Pentium3

Definition X86TargetParser.h:80

@ CK_PentiumM

Definition X86TargetParser.h:81

@ CK_Diamondrapids

Definition X86TargetParser.h:126

@ CK_Tigerlake

Definition X86TargetParser.h:109

@ CK_Sierraforest

Definition X86TargetParser.h:120

@ CK_Gracemont

Definition X86TargetParser.h:94

@ CK_SkylakeClient

Definition X86TargetParser.h:101

@ CK_GraniterapidsD

Definition X86TargetParser.h:123

@ CK_Broadwell

Definition X86TargetParser.h:100

@ CK_C3

Definition X86TargetParser.h:73

@ CK_SandyBridge

Definition X86TargetParser.h:97

@ CK_K6

Definition X86TargetParser.h:130

@ CK_x86_64_v3

Definition X86TargetParser.h:151

@ CK_Silvermont

Definition X86TargetParser.h:90

@ CK_Raptorlake

Definition X86TargetParser.h:112

@ CK_ZNVER4

Definition X86TargetParser.h:147

@ CK_C3_2

Definition X86TargetParser.h:82

@ CK_Pentium2

Definition X86TargetParser.h:79

@ CK_Geode

Definition X86TargetParser.h:153

@ CK_BTVER2

Definition X86TargetParser.h:139

@ CK_IcelakeClient

Definition X86TargetParser.h:106

@ CK_Cooperlake

Definition X86TargetParser.h:104

@ CK_Wildcatlake

Definition X86TargetParser.h:118

@ CK_SkylakeServer

Definition X86TargetParser.h:102

@ CK_BDVER2

Definition X86TargetParser.h:141

@ CK_AMDFAM10

Definition X86TargetParser.h:137

@ CK_Pentium

Definition X86TargetParser.h:75

@ CK_Grandridge

Definition X86TargetParser.h:121

@ CK_K6_2

Definition X86TargetParser.h:131

@ CK_KNL

Definition X86TargetParser.h:127

@ CK_Arrowlake

Definition X86TargetParser.h:114

@ CK_i386

Definition X86TargetParser.h:69

@ CK_Novalake

Definition X86TargetParser.h:119

@ CK_Yonah

Definition X86TargetParser.h:83

@ CK_Cascadelake

Definition X86TargetParser.h:103

@ CK_x86_64

Definition X86TargetParser.h:149

@ CK_K8SSE3

Definition X86TargetParser.h:136

@ CK_BDVER4

Definition X86TargetParser.h:143

@ CK_IcelakeServer

Definition X86TargetParser.h:108

@ CK_Prescott

Definition X86TargetParser.h:85

@ CK_None

Definition X86TargetParser.h:68

@ CK_Penryn

Definition X86TargetParser.h:88

@ CK_Rocketlake

Definition X86TargetParser.h:107

@ CK_GoldmontPlus

Definition X86TargetParser.h:92

@ CK_KNM

Definition X86TargetParser.h:128

@ CK_x86_64_v4

Definition X86TargetParser.h:152

@ CK_i686

Definition X86TargetParser.h:78

@ CK_i586

Definition X86TargetParser.h:74

@ CK_Bonnell

Definition X86TargetParser.h:89

@ CK_Meteorlake

Definition X86TargetParser.h:113

@ CK_Haswell

Definition X86TargetParser.h:99

@ CK_Emeraldrapids

Definition X86TargetParser.h:124

@ CK_ZNVER5

Definition X86TargetParser.h:148

@ CK_Pantherlake

Definition X86TargetParser.h:117

@ CK_Alderlake

Definition X86TargetParser.h:111

@ CK_K8

Definition X86TargetParser.h:135

@ CK_ZNVER2

Definition X86TargetParser.h:145

@ CK_AthlonXP

Definition X86TargetParser.h:134

@ CK_Clearwaterforest

Definition X86TargetParser.h:125

@ CK_x86_64_v2

Definition X86TargetParser.h:150

@ CK_Nocona

Definition X86TargetParser.h:86

@ CK_Westmere

Definition X86TargetParser.h:96

@ CK_BDVER3

Definition X86TargetParser.h:142

@ CK_WinChip2

Definition X86TargetParser.h:72

ProcessorFeatures

Definition X86TargetParser.h:59

@ CPU_FEATURE_MAX

Definition X86TargetParser.h:62

ProcessorSubtypes

Definition X86TargetParser.h:49

@ CPU_SUBTYPE_MAX

Definition X86TargetParser.h:54

@ CPU_SUBTYPE_DUMMY

Definition X86TargetParser.h:50

LLVM_ABI unsigned getFeaturePriority(ProcessorFeatures Feat)

ProcessorTypes

Definition X86TargetParser.h:39

@ CPU_TYPE_DUMMY

Definition X86TargetParser.h:40

@ CPU_TYPE_MAX

Definition X86TargetParser.h:44

LLVM_ABI void fillValidCPUArchList(SmallVectorImpl< StringRef > &Values, bool Only64Bit=false)

Provide a list of valid CPU names.

LLVM_ABI bool validateCPUSpecificCPUDispatch(StringRef Name)

LLVM_ABI ProcessorFeatures getKeyFeature(CPUKind Kind)

Get the key feature prioritizing target multiversioning.

This is an optimization pass for GlobalISel generic memory operations.

@ Enabled

Convert any .debug_str_offsets tables to DWARF64 if needed.