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.