LLVM 23.0.0git
TargetParser.cpp File Reference
#include "llvm/TargetParser/TargetParser.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/StringSwitch.h"
#include "llvm/TargetParser/Triple.h"
#include "llvm/TargetParser/AMDGPUTargetParser.def"

Go to the source code of this file.

Macros

#define AMDGCN_GPU(NAME, ENUM, ISAVERSION, FEATURES)
#define R600_GPU(NAME, ENUM, FEATURES)
#define AMDGCN_GPU(NAME, ENUM, ISAVERSION, FEATURES)
#define AMDGCN_GPU_ALIAS(NAME, ENUM)
#define R600_GPU(NAME, ENUM, FEATURES)
#define R600_GPU_ALIAS(NAME, ENUM)
#define AMDGCN_GPU(NAME, ENUM, ISAVERSION, FEATURES)
#define R600_GPU(NAME, ENUM, FEATURES)
#define AMDGCN_GPU(NAME, ENUM, ISAVERSION, FEATURES)
#define AMDGCN_GPU_ALIAS(NAME, ENUM)
#define R600_GPU(NAME, ENUM, FEATURES)
#define R600_GPU_ALIAS(NAME, ENUM)
#define MAKE_ISAVERSION(A, B, C)
#define AMDGCN_GPU(NAME, ENUM, ISAVERSION, FEATURES)

Functions

static const BasicSubtargetSubTypeKVfind (StringRef S, ArrayRef< BasicSubtargetSubTypeKV > A)
 Find KV in array using binary search.
static void setImpliedBits (FeatureBitset &Bits, const FeatureBitset &Implies, ArrayRef< BasicSubtargetFeatureKV > FeatureTable)
 For each feature that is (transitively) implied by this feature, set it.
static std::pair< FeatureError, StringRefinsertWaveSizeFeature (StringRef GPU, const Triple &T, const StringMap< bool > &DefaultFeatures, StringMap< bool > &Features)
static void fillAMDGCNFeatureMap (StringRef GPU, const Triple &T, StringMap< bool > &Features)
 Fills Features map with default values for given target GPU.

Macro Definition Documentation

◆ AMDGCN_GPU [1/5]

#define AMDGCN_GPU ( NAME,
ENUM,
ISAVERSION,
FEATURES )
Value:
case ENUM: \
return NAME;
#define ENUM(Name,...)
Definition ClauseT.h:60

◆ AMDGCN_GPU [2/5]

#define AMDGCN_GPU ( NAME,
ENUM,
ISAVERSION,
FEATURES )
Value:
.Case(NAME, ENUM)

◆ AMDGCN_GPU [3/5]

#define AMDGCN_GPU ( NAME,
ENUM,
ISAVERSION,
FEATURES )
Value:
case ENUM: \
return FEATURES;

◆ AMDGCN_GPU [4/5]

#define AMDGCN_GPU ( NAME,
ENUM,
ISAVERSION,
FEATURES )
Value:
NAME,

◆ AMDGCN_GPU [5/5]

#define AMDGCN_GPU ( NAME,
ENUM,
ISAVERSION,
FEATURES )
Value:
case ENUM: \
return MAKE_ISAVERSION ISAVERSION;
#define MAKE_ISAVERSION(A, B, C)

◆ AMDGCN_GPU_ALIAS [1/2]

#define AMDGCN_GPU_ALIAS ( NAME,
ENUM )
Value:
.Case(NAME, ENUM)

◆ AMDGCN_GPU_ALIAS [2/2]

#define AMDGCN_GPU_ALIAS ( NAME,
ENUM )
Value:
NAME,

◆ MAKE_ISAVERSION

#define MAKE_ISAVERSION ( A,
B,
C )
Value:
{A, B, C}
static GCRegistry::Add< ErlangGC > A("erlang", "erlang-compatible garbage collector")
static GCRegistry::Add< OcamlGC > B("ocaml", "ocaml 3.10-compatible GC")
@ C
The default llvm calling convention, compatible with C.
Definition CallingConv.h:34

◆ R600_GPU [1/4]

#define R600_GPU ( NAME,
ENUM,
FEATURES )
Value:
case ENUM: \
return NAME;

◆ R600_GPU [2/4]

#define R600_GPU ( NAME,
ENUM,
FEATURES )
Value:
.Case(NAME, ENUM)

◆ R600_GPU [3/4]

#define R600_GPU ( NAME,
ENUM,
FEATURES )
Value:
case ENUM: \
return FEATURES;

◆ R600_GPU [4/4]

#define R600_GPU ( NAME,
ENUM,
FEATURES )
Value:
NAME,

◆ R600_GPU_ALIAS [1/2]

#define R600_GPU_ALIAS ( NAME,
ENUM )
Value:
.Case(NAME, ENUM)

◆ R600_GPU_ALIAS [2/2]

#define R600_GPU_ALIAS ( NAME,
ENUM )
Value:
NAME,

Function Documentation

◆ fillAMDGCNFeatureMap()

void fillAMDGCNFeatureMap ( StringRef GPU,
const Triple & T,
StringMap< bool > & Features )
static

Fills Features map with default values for given target GPU.

Features contains overriding target features and this function returns default target features with entries overridden by Features.

Definition at line 248 of file TargetParser.cpp.

References llvm::AMDGPU::GK_NONE, llvm_unreachable, llvm::AMDGPU::parseArchAMDGCN(), and T.

Referenced by llvm::AMDGPU::fillAMDGPUFeatureMap().

◆ find()

◆ insertWaveSizeFeature()

◆ setImpliedBits()

void setImpliedBits ( FeatureBitset & Bits,
const FeatureBitset & Implies,
ArrayRef< BasicSubtargetFeatureKV > FeatureTable )
static

For each feature that is (transitively) implied by this feature, set it.

Definition at line 35 of file TargetParser.cpp.

References setImpliedBits(), and llvm::FeatureBitset::test().

Referenced by llvm::getCPUDefaultTargetFeatures(), and setImpliedBits().