LLVM 19.0.0git
Namespaces | Macros | Enumerations | Functions
X86TargetParser.h File Reference
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/StringMap.h"
#include <array>
#include "llvm/TargetParser/X86TargetParser.def"

Go to the source code of this file.

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
 
namespace  llvm::X86
 Define some predicates that are used for node matching.
 

Macros

#define X86_VENDOR(ENUM, STRING)    ENUM,
 
#define X86_CPU_TYPE(ENUM, STRING)    ENUM,
 
#define X86_CPU_SUBTYPE(ENUM, STRING)    ENUM,
 
#define X86_FEATURE(ENUM, STRING)   FEATURE_##ENUM,
 
#define X86_MICROARCH_LEVEL(ENUM, STRING, PRIORITY)   FEATURE_##ENUM = PRIORITY,
 

Enumerations

enum  llvm::X86::ProcessorVendors : unsigned { llvm::X86::VENDOR_DUMMY , llvm::X86::VENDOR_OTHER }
 
enum  llvm::X86::ProcessorTypes : unsigned { llvm::X86::CPU_TYPE_DUMMY , llvm::X86::CPU_TYPE_MAX }
 
enum  llvm::X86::ProcessorSubtypes : unsigned { llvm::X86::CPU_SUBTYPE_DUMMY , llvm::X86::CPU_SUBTYPE_MAX }
 
enum  llvm::X86::ProcessorFeatures { llvm::X86::CPU_FEATURE_MAX }
 
enum  llvm::X86::CPUKind {
  llvm::X86::CK_None , llvm::X86::CK_i386 , llvm::X86::CK_i486 , llvm::X86::CK_WinChipC6 ,
  llvm::X86::CK_WinChip2 , llvm::X86::CK_C3 , llvm::X86::CK_i586 , llvm::X86::CK_Pentium ,
  llvm::X86::CK_PentiumMMX , llvm::X86::CK_PentiumPro , llvm::X86::CK_i686 , llvm::X86::CK_Pentium2 ,
  llvm::X86::CK_Pentium3 , llvm::X86::CK_PentiumM , llvm::X86::CK_C3_2 , llvm::X86::CK_Yonah ,
  llvm::X86::CK_Pentium4 , llvm::X86::CK_Prescott , llvm::X86::CK_Nocona , llvm::X86::CK_Core2 ,
  llvm::X86::CK_Penryn , llvm::X86::CK_Bonnell , llvm::X86::CK_Silvermont , llvm::X86::CK_Goldmont ,
  llvm::X86::CK_GoldmontPlus , llvm::X86::CK_Tremont , llvm::X86::CK_Gracemont , llvm::X86::CK_Nehalem ,
  llvm::X86::CK_Westmere , llvm::X86::CK_SandyBridge , llvm::X86::CK_IvyBridge , llvm::X86::CK_Haswell ,
  llvm::X86::CK_Broadwell , llvm::X86::CK_SkylakeClient , llvm::X86::CK_SkylakeServer , llvm::X86::CK_Cascadelake ,
  llvm::X86::CK_Cooperlake , llvm::X86::CK_Cannonlake , llvm::X86::CK_IcelakeClient , llvm::X86::CK_Rocketlake ,
  llvm::X86::CK_IcelakeServer , llvm::X86::CK_Tigerlake , llvm::X86::CK_SapphireRapids , llvm::X86::CK_Alderlake ,
  llvm::X86::CK_Raptorlake , llvm::X86::CK_Meteorlake , llvm::X86::CK_Arrowlake , llvm::X86::CK_ArrowlakeS ,
  llvm::X86::CK_Lunarlake , llvm::X86::CK_Pantherlake , llvm::X86::CK_Sierraforest , llvm::X86::CK_Grandridge ,
  llvm::X86::CK_Graniterapids , llvm::X86::CK_GraniterapidsD , llvm::X86::CK_Emeraldrapids , llvm::X86::CK_Clearwaterforest ,
  llvm::X86::CK_KNL , llvm::X86::CK_KNM , llvm::X86::CK_Lakemont , llvm::X86::CK_K6 ,
  llvm::X86::CK_K6_2 , llvm::X86::CK_K6_3 , llvm::X86::CK_Athlon , llvm::X86::CK_AthlonXP ,
  llvm::X86::CK_K8 , llvm::X86::CK_K8SSE3 , llvm::X86::CK_AMDFAM10 , llvm::X86::CK_BTVER1 ,
  llvm::X86::CK_BTVER2 , llvm::X86::CK_BDVER1 , llvm::X86::CK_BDVER2 , llvm::X86::CK_BDVER3 ,
  llvm::X86::CK_BDVER4 , llvm::X86::CK_ZNVER1 , llvm::X86::CK_ZNVER2 , llvm::X86::CK_ZNVER3 ,
  llvm::X86::CK_ZNVER4 , llvm::X86::CK_x86_64 , llvm::X86::CK_x86_64_v2 , llvm::X86::CK_x86_64_v3 ,
  llvm::X86::CK_x86_64_v4 , llvm::X86::CK_Geode
}
 

Functions

CPUKind llvm::X86::parseArchX86 (StringRef CPU, bool Only64Bit=false)
 Parse CPU string into a CPUKind.
 
CPUKind llvm::X86::parseTuneCPU (StringRef CPU, bool Only64Bit=false)
 
void llvm::X86::fillValidCPUArchList (SmallVectorImpl< StringRef > &Values, bool Only64Bit=false)
 Provide a list of valid CPU names.
 
void llvm::X86::fillValidTuneCPUList (SmallVectorImpl< StringRef > &Values, bool Only64Bit=false)
 Provide a list of valid -mtune names.
 
ProcessorFeatures llvm::X86::getKeyFeature (CPUKind Kind)
 Get the key feature prioritizing target multiversioning.
 
void llvm::X86::getFeaturesForCPU (StringRef CPU, SmallVectorImpl< StringRef > &Features, bool NeedPlus=false)
 Fill in the features that CPU supports into Features.
 
void llvm::X86::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.
 
char llvm::X86::getCPUDispatchMangling (StringRef Name)
 
bool llvm::X86::validateCPUSpecificCPUDispatch (StringRef Name)
 
std::array< uint32_t, 4 > llvm::X86::getCpuSupportsMask (ArrayRef< StringRef > FeatureStrs)
 
unsigned llvm::X86::getFeaturePriority (ProcessorFeatures Feat)
 

Macro Definition Documentation

◆ X86_CPU_SUBTYPE

#define X86_CPU_SUBTYPE (   ENUM,
  STRING 
)     ENUM,

Definition at line 50 of file X86TargetParser.h.

◆ X86_CPU_TYPE

#define X86_CPU_TYPE (   ENUM,
  STRING 
)     ENUM,

Definition at line 40 of file X86TargetParser.h.

◆ X86_FEATURE

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

Definition at line 59 of file X86TargetParser.h.

◆ X86_MICROARCH_LEVEL

#define X86_MICROARCH_LEVEL (   ENUM,
  STRING,
  PRIORITY 
)    FEATURE_##ENUM = PRIORITY,

Definition at line 63 of file X86TargetParser.h.

◆ X86_VENDOR

#define X86_VENDOR (   ENUM,
  STRING 
)     ENUM,

Definition at line 30 of file X86TargetParser.h.